with tag tab notes from delete create commits github github-pages

tag - Autentica con GitHub usando token



github create tag from commit (5)

Estoy intentando autenticarme con GitHub usando un token de acceso personal. En los archivos de ayuda de github, indica que 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 presionar a GitHub. Tenga en cuenta que estoy tratando de presionar 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 denied.

fatal: Error de autenticación para '' https://github.com/scuzzlebuzzle/ol3-1.git/ '' "

Gracias


Para evitar entregar "las llaves del castillo" ...

Tenga en cuenta que la respuesta de sigmavirus24 requiere que le proporcione a Travis un token con permisos bastante amplios, ya que GitHub solo ofrece tokens con amplios ámbitos como "escribir todos mis repos 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 boceto de cómo funciona la técnica ...

Primero genere una clave de implementación de RSA (a través de ssh-keygen ) llamada my_key y agréguela como una clave de implementación en la configuración de github repo.

Entonces...

$ password=`openssl rand -hex 32` $ cat my_key | openssl aes-256-cbc -k "$password" -a > my_key.enc $ travis encrypt --add password=$password -r my-github-user/my-repo

A continuación, utilice el archivo $password para descifrar su clave de despliegue en tiempo de integración, agregando a su archivo yaml:

before_script: - openssl aes-256-cbc -k "$password" -d -a -in my_key.enc -out my_deploy_key - echo -e "Host github.com/n IdentityFile /path/to/my_deploy_key" > ~/.ssh/config - echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" > ~/.ssh/known_hosts

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.


@YMHuang me puso en el camino correcto con el enlace de documentación.

En primer lugar, debe crear un token de acceso personal. Esto se describe aquí: https://help.github.com/articles/creating-an-access-token-for-command-line-use/

Laughably, el artículo te dice cómo crearlo, pero no da absolutamente ninguna pista de qué hacer con él. Después de aproximadamente una hora de pescar con arrastre y SO, finalmente encontré la respuesta:

$ git clone https://github.com/user-or-organisation/myrepo.git Username: <my-username> Password: <my-personal-access-token>

De hecho, me vi obligado a habilitar 2FA según la política de la compañía mientras trabajaba de forma remota y aún tenía cambios locales, por lo que en realidad no era clone que necesitaba, sino push . Leí en muchos lugares que necesitaba eliminar y volver a crear el control remoto, pero de hecho mi comando push normal funcionaba exactamente igual que el clone anterior, y el control remoto no cambiaba:

$ git push https://github.com/user-or-organisation/myrepo.git Username: <my-username> Password: <my-personal-access-token>



Esto funcionó para mí usando ssh :

Settings > Settings Developer settings > Generate new token

git remote rm origin git remote add origin https://[APPLICATION]:[NEW TOKEN]@github.com/[ORGANISATION]/[REPO].git


Tu comando curl es completamente incorrecto. Deberías estar usando lo siguiente

curl -H ''Authorization: token <MYTOKEN>'' ...

Aparte de eso, eso no autoriza a tu computadora a clonar el repositorio si, de hecho, es privado. (Sin embargo, echar un vistazo indica que no es así). Lo que normalmente haría es lo siguiente:

git clone https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git --branch=gh-pages gh-pages

Eso agregará sus credenciales al control remoto creado al clonar el repositorio. Desafortunadamente, sin embargo, no tienes control sobre cómo Travis clona tu repositorio, así que tienes que editar el control remoto de esa manera.

# After cloning cd gh-pages git remote rm origin git remote add origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git

Eso arreglará su proyecto para usar un control remoto con credenciales integradas.