J'essaie de m'authentifier avec GitHub en utilisant un jeton d'accès personnel. Dans les fichiers d'aide de github, il indique d'utiliser la méthode cURL pour s'authentifier ( https://help.github.com/articles/creating-an-access-token-for-command-line-use ). J'ai essayé cela, mais je ne peux toujours pas pousser vers GitHub. Veuillez noter que j'essaye de pousser à partir d'un serveur non authentifié (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
Ce code provoque les erreurs:
remote: accès anonyme à scuzzlebuzzle / ol3-1.git refusé.
fatal: échec de l'authentification pour ' https://github.com/scuzzlebuzzle/ol3-1.git/ ' "
la source
git remote set-url origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
Tout d'abord, vous devez créer un jeton d'accès personnel (PAT). Ceci est décrit ici: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
De manière risible, l'article vous explique comment le créer, mais ne donne absolument aucune idée de ce qu'il faut en faire. Après environ une heure de documentation sur le chalutage et Stack Overflow, j'ai finalement trouvé la réponse:
J'ai été en fait obligé d'activer l' authentification à deux facteurs par la politique de l'entreprise alors que je travaillais à distance et que j'avais encore des changements locaux, donc en fait ce n'était pas
clone
nécessaire, maispush
. J'ai lu dans de nombreux endroits dont j'avais besoin pour supprimer et recréer la télécommande, mais en fait, mapush
commande normale fonctionnait exactement de la même manière queclone
ci - dessus, et la télécommande n'a pas changé:(@YMHuang m'a mis sur la bonne voie avec le lien de documentation.)
la source
Pour éviter de remettre "les clés du château" ...
Notez que la réponse de sigmavirus24 vous oblige à donner à Travis un jeton avec des autorisations assez larges - puisque GitHub ne propose que des jetons avec de larges portées comme «écrire tous mes dépôts publics» ou «écrire tous mes dépôts privés».
Si vous souhaitez restreindre l'accès (avec un peu plus de travail!), Vous pouvez utiliser des clés de déploiement GitHub combinées avec des champs yaml chiffrés par Travis.
Voici un aperçu du fonctionnement de la technique ...
Commencez par générer une clé de déploiement RSA (via
ssh-keygen
) appeléemy_key
et ajoutez-la en tant que clé de déploiement dans vos paramètres de dépôt github.Ensuite...
Ensuite, utilisez le
$password
fichier pour décrypter votre clé de déploiement au moment de l'intégration, en ajoutant à votre fichier yaml:Remarque: la dernière ligne pré-remplit la clé RSA de github, ce qui évite d'avoir à accepter manuellement au moment d'une connexion.
la source
Automatisation / Automatisation Git avec des jetons OAuth
Cela fonctionne également dans la
git push
commande.Référence: https://help.github.com/articles/git-automation-with-oauth-tokens/
la source
Cela a fonctionné pour moi en utilisant ssh :
Paramètres → Paramètres du développeur → Générer un nouveau jeton .
la source
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
pour éviter la journalisation de la sortie git non sécurisée. Stockez le jeton dans une variable pour éviter de l'avoir dans le journal. Mais il doit être stocké quelque part. Pour sécuriser davantage, vous pouvez le stocker crypté. Cette approche est par exemple soutenue par Travis CI.Normalement j'aime ça
Le git_token lit à partir de la configuration de la variable dans azure devops.
Vous pouvez lire mon blog complet ici
la source
Après avoir lutté avec ce problème pendant à peu près une journée complète de codage en dur dans la section ORG / REPO de notre script de construction en obtenant l'erreur redoutée `` remote not found '', a finalement trouvé une solution de travail pour utiliser le
TRAVIS_REPO_SLUG
. Changer cela pour les attributs codés en dur a fonctionné immédiatement.la source
En ayant lutté pendant tant d'heures pour appliquer le jeton GitHub, cela fonctionne comme ci-dessous:
%d%H%M
sur le mot de correspondance'-123456-whatever'
Voici le code complet:
Production...
la source
Le mot de passe que vous utilisez pour vous connecter au portail github.com ne fonctionne pas dans VS Code CLI / Shell. Vous devez copier le jeton PAT à partir de l'URL https://github.com/settings/tokens en générant un nouveau jeton et collez cette chaîne dans la CLI comme mot de passe.
la source
Si vous utilisez GitHub Enterprise et que le clonage du dépôt ou le pushing vous donne une erreur 403 au lieu de demander un nom d'utilisateur / jeton, vous pouvez utiliser ceci:
la source