S'authentifier avec GitHub à l'aide d'un jeton
Je suis en train d'essayer de s'authentifier avec GitHub à l'aide d'un jeton d'accès. Dans les fichiers d'aide sur github, il déclare utiliser la méthode cURL pour authentifier (https://help.github.com/articles/creating-an-access-token-for-command-line-use). J'ai essayé ceci, mais je ne peux toujours pas pousser à GitHub. Veuillez noter que je suis en train de les pousser à partir d'un serveur 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:
à distance: accès Anonyme à scuzzlebuzzle/ol3-1.git refusé.
fatale: l'Authentification a échoué pour"https://github.com/scuzzlebuzzle/ol3-1.git/'"
Vous devez vous connecter pour publier un commentaire.
Votre
curl
de commande est entièrement faux. Vous devriez être en utilisant les suivantesCela de côté, qui n'a pas l'autoriser votre ordinateur à cloner le dépôt, en fait, si elle est privée. (Prenant un coup d'oeil, cependant, indique qu'il ne l'est pas.) Ce que vous faire est la suivante:
Qui permettra d'ajouter vos informations d'identification de la télécommande créé lors du clonage du référentiel. Malheureusement, cependant, vous n'avez aucun contrôle sur la façon dont Travis clones de votre dépôt, vous devez modifier la distance comme si.
Qui permettra de régler votre projet pour utiliser une télécommande avec des informations qui se construit dans.
git remote set-url origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
git clone https://<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
. Le client Windows enregistrer le jeton à l'origine de la télécommande (qui est ajouté automatiquement sur le clonage), de sorte que les futures commandes de travail, MAIS j'ai découvert que le client Linux ne sera pas, sauf si vous ajoutez le nom d'utilisateur avant de le jeton. Cette réponse m'a donné l'idée d'essayer avec le nom d'utilisateur également. Merci!Pour éviter de remettre "les clés du château"...
Noter que sigmavirus24 la réponse nécessite de vous donner Travis un jeton avec assez large autorisations, depuis GitHub propose uniquement des jetons avec de larges étendues comme "écrire tout mon public repos" ou "écrire tout mon repos".
Si vous voulez serrer accès (avec un peu plus de travail!) vous pouvez utiliser GitHub déploiement des touches associées à Travis chiffré yaml champs.
Voici une esquisse de comment fonctionne la technique...
Tout d'abord générer un RSA déployer clé (via
ssh-keygen
) appelémy_key
et ajoutez-la à déployer clé dans votre dépôt github paramètres.Alors...
Puis utilisez le
$password
fichier à déchiffrer votre déployer touche à l'intégration en temps, en ajoutant à votre fichier yaml:Remarque: la dernière ligne pré-remplit de github de clés RSA, ce qui évite la nécessité d'accepter manuellement au moment de la connexion.
Tout d'abord, vous devez créer un jeton d'accès (PAT). Ce qui est décrit ici: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
Laughably, l'article vous indique comment le créer, mais ne donne absolument aucune idée de quoi faire avec elle. Après environ une heure de chalutage de la documentation et de la Pile Overflow, j'ai enfin trouvé la réponse:
En fait j'ai été forcé de permettre l'authentification à deux facteurs par la politique de l'entreprise, tandis que je travaillais à distance et avait encore des modifications locales, de sorte en fait, il n'était pas
clone
j'avais besoin, maispush
. J'ai lu dans beaucoup d'endroits que j'avais besoin de supprimer et recréer la distance, mais en fait mon normalpush
commande a fonctionné exactement le même que leclone
ci-dessus, et la distance n'a pas changé:(@YMHuang me mettre sur la bonne voie avec la documentation lien).
Automatisation /Git d'automatisation avec OAuth jetons
Il travaille également dans le
git push
commande.De référence:
https://help.github.com/articles/git-automation-with-oauth-tokens/
Cela a fonctionné pour moi à l'aide de ssh:
Paramètres → paramètres de Développeur → Générer un nouveau jeton.
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
Par avoir de la difficulté beaucoup d'heures sur l'application de GitHub jeton enfin, il travaille en tant que ci-dessous:
%d%H%M
de match word'-123456-whatever'
Voici le code complet:
De sortie...