à l'aide de gitlab jeton de clone sans authentification
Je veux cloner gitlab référentiel sans invite pour mon script d'automatisation, en utilisant mon jeton de mon gitlab compte.
Quelqu'un peut-il me donner un exemple?
Je sais que je peux le faire avec d'utilisateur et le mot de passe:
git clone https://" + user + ":" + password + "@" + gitlaburl;
et je sais que c'est possible avec la clé ssh
mais, les deux options ne sont pas assez
git clone https://<token-name>:<token>@gitlaburl
Vous devez vous connecter pour publier un commentaire.
Je sais c'est vieux mais c'est comment vous le faites:
git clone https://oauth2:[email protected]/vendor/package.git
api
jeton. Unread_user
ne peut lire que les pensions de titres en vertu de/users
submodule
à l'intérieur, qui a accueilli sous le même compte, leclone
sera toujours prompt à taper dans le nom d'utilisateur et mot de passe. Est-il une solution de contournement?oauth2
partie est sans doute arbitraire. J'ai mis le nom du jeton d'accès au lieu.ssh
?Vous pouvez le faire comme ceci:
Le gitlab a beaucoup de jetons:
J'ai testé uniquement le Personnel Jeton d'Accès en utilisant GitLab Community Edition 10.1.2, l'exemple:
ou en utilisant le nom d'utilisateur et le mot de passe:
ou par la saisie de votre mot de passe:
Mais la privé jeton semble ne peux pas travailler.
Utiliser le jeton à la place du mot de passe (le jeton doit avoir "api" portée pour clone pour être admis):
Testé contre 11.0.0-ee.
Vous pouvez utiliser les coureurs jeton pour la CI/CD Pipelines de votre GitLab repo.
Où
<runners token>
peuvent être obtenues auprès de:ou en cliquant sur le
Settings icon -> CI/CD Pipeline
et de regarder pour les Coureurs Jeton sur la pageCapture d'écran de l'coureurs jeton d'emplacement:
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
De
8.12
, le clonage à partir deHTTPS
+ jeton n'est pas pris en charge plus, comme mentionné ici:Si vous avez déjà un référentiel et juste changé la façon de faire de l'authentification de MFA, u peut changer votre
remote origin
HTTP URI pour l'utilisation de votre nouvelle clé api comme suit:git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
Et vous n'aurez pas besoin de re-cloner le dépôt à tous.
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
a également travaillé pour moi, merci!!!!! Je vais Répondre à cette discussion avec ma bonne solution.Une voie possible est d'utiliser un jeton de déployer
(https://docs.gitlab.com/ee/user/project/deploy_tokens). Après la création du jeton, utilisation:
comme indiqué dans le lien ci-dessus.
À l'intérieur d'un GitLab CI pipeline de la
CI_JOB_TOKEN
variable d'environnement qui fonctionne pour moi:Source: Gitlab Docs
BTW, la définition de cette variable dans
.gitlab-ci.yml
permet de déboguer les erreurs.Je suis allé SSH à l'aide de la par projet de déployer des touches de réglage (lecture seule)
De faire de mon avenir me fait plaisir: RTFM - ne pas utiliser le gitlab-ci-jeton à tous, mais l'
.netrc
fichier.Il ya un couple de points importants:
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
dans le fichier!https://gitlab.com/whatever/foobar.com
- passsh://git@foobar
, pasgit+ssh://
, pasgit+https://
. Vous n'avez pas besoin de tout CI-JETON de trucs dans l'URL.git clone [url from step 4]
Contexte: j'ai eu
quand j'ai essayé de faire Ansible + Gitlab + Docker travail comme je l'imagine. Maintenant, il fonctionne.