Estoy intentando autenticarme con GitHub usando un token de acceso personal. En los archivos de ayuda en github, indica que se debe usar el método cURL para autenticarse ( https://help.github.com/articles/creating-an-access-token-for-command-line-use ). He intentado esto, pero todavía no puedo enviarlo a GitHub. Tenga en cuenta que estoy intentando enviar desde un servidor no autenticado (Travis-CI).
cd $HOME
git config --global user.email "[email protected]"
git config --global user.name "username"
curl -u "username:<MYTOKEN>" https://github.com/username/ol3-1.git
git clone --branch=gh-pages https://github.com/username/ol3-1.git gh-pages
cd gh-pages
mkdir buildtest
cd buildtest
touch asdf.asdf
git add -f .
git commit -m "Travis build $TRAVIS_BUILD_NUMBER pushed to gh-pages"
git push -fq origin gh-pages
Este código causa los errores:
remoto: acceso anónimo a scuzzlebuzzle / ol3-1.git denegado.
fatal: la autenticación falló para ' https://github.com/scuzzlebuzzle/ol3-1.git/ ' "
fuente
git remote set-url origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
Primero, debe crear un token de acceso personal (PAT). Esto se describe aquí: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
De manera risible, el artículo le dice cómo crearlo, pero no da absolutamente ninguna idea de qué hacer con él. Después de aproximadamente una hora de búsqueda de documentación y Stack Overflow, finalmente encontré la respuesta:
De hecho, me vi obligado a habilitar la autenticación de dos factores por política de la empresa mientras trabajaba de forma remota y todavía tenía cambios locales, por lo que, de hecho, no era lo
clone
que necesitaba, peropush
. Leí en muchos lugares que necesitaba eliminar y recrear el control remoto, pero de hecho mipush
comando normal funcionó exactamente igual que elclone
anterior y el control remoto no cambió:(@YMHuang me puso en el camino correcto con el enlace de documentación).
fuente
Para no entregar "las llaves del castillo" ...
Tenga en cuenta que la respuesta de sigmavirus24 requiere que le dé a Travis un token con permisos bastante amplios, ya que GitHub solo ofrece tokens con alcances amplios como "escribir todos mis repositorios públicos" o "escribir todos mis repositorios privados".
Si desea restringir el acceso (¡con un poco más de trabajo!), Puede usar las claves de implementación de GitHub combinadas con los campos yaml cifrados de Travis.
Aquí hay un bosquejo de cómo funciona la técnica ...
Primero genere una clave de implementación RSA (vía
ssh-keygen
) llamadamy_key
y agréguela como una clave de implementación en la configuración de su repositorio de github.Luego...
Luego use el
$password
archivo para descifrar su clave de implementación en el momento de la integración, agregando a su archivo yaml:Nota: la última línea rellena previamente la clave RSA de github, lo que evita la necesidad de aceptar manualmente en el momento de la conexión.
fuente
Automatización / automatización de Git con tokens OAuth
También funciona en el
git push
comando.Referencia: https://help.github.com/articles/git-automation-with-oauth-tokens/
fuente
Esto funcionó para mí usando ssh :
Configuración → Configuración de desarrollador → Generar nuevo token .
fuente
git remote add origin https://[USERNAME]:[NEW TOKEN]@github.com/[USERNAME]/[REPO].git
git remote add origin https://[USERNAME]:[TOKEN]@git.mycompany.com/[ORGANIZATION]/[REPO].git
git remote set-url origin https://[TOKEN]@git.mycompany.com/[ORGANIZATION]/[REPO].git> /dev/null 2>&1
para evitar el registro de salida git insegura. Almacene el token en una variable para evitar tenerlo en el registro. Pero debe almacenarse en algún lugar. Para asegurar aún más, puede almacenarlo cifrado. Este enfoque, por ejemplo, es compatible con Travis CI.Normalmente me gusta esto
El git_token está leyendo de la configuración de la variable en Azure DevOps.
Puedes leer mi blog completo aquí
fuente
Después de haber luchado con este problema durante casi un día completo de codificación dura en la sección ORG / REPO en nuestro script de compilación, obteniendo el temido error 'remoto no encontrado', finalmente encontré una solución funcional para usar el
TRAVIS_REPO_SLUG
. Cambiar esto por los atributos codificados funcionó de inmediato.fuente
Al haber luchado tantas horas para aplicar el token de GitHub, finalmente funciona de la siguiente manera:
%d%H%M
en la palabra coincidente'-123456-whatever'
A continuación se muestra el código completo:
Salida...
fuente
La contraseña que usa para iniciar sesión en el portal github.com no funciona en VS Code CLI / Shell. Debe copiar PAT Token de la URL https://github.com/settings/tokens generando un nuevo token y pegar esa cadena en CLI como contraseña.
fuente
Si está usando GitHub Enterprise y clonar el repositorio o presionar le da un error 403 en lugar de solicitar un nombre de usuario / token, puede usar esto:
fuente