Je souhaite cloner le référentiel gitlab sans demander mon script d'automatisation, en utilisant mon jeton privé de mon compte gitlab.
Quelqu'un peut-il me fournir un échantillon?
Je sais que je peux le faire avec un utilisateur et un 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 suffisantes
git clone https://<token-name>:<token>@gitlaburl
Réponses:
Je sais que c'est vieux mais voici comment vous le faites:
git clone https://oauth2:[email protected]/vendor/package.git
la source
api
jeton. Aread_user
ne peut lire que les dépôts sous/users
ssh
?Vous pouvez le faire comme ceci:
la source
Le gitlab a beaucoup de jetons:
J'ai testé uniquement le jeton d'accès personnel à l'aide de GitLab Community Edition 10.1.2 , l'exemple:
ou en utilisant un nom d'utilisateur et un mot de passe:
ou en saisissant votre mot de passe:
Mais le jeton privé semble ne pas fonctionner.
la source
Utilisez le jeton au lieu du mot de passe (le jeton doit avoir une portée "api" pour que le clonage soit autorisé):
Testé avec 11.0.0-ee.
la source
Vous pouvez utiliser le jeton runners pour les pipelines CI / CD de votre dépôt GitLab.
Où
<runners token>
peut être obtenu de:ou en cliquant sur
Settings icon -> CI/CD Pipeline
et recherchez le jeton de coureurs sur la pageCapture d'écran de l'emplacement du jeton des coureurs:
la source
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
Si vous avez déjà un référentiel et que vous venez de changer la façon dont vous effectuez l'authentification à MFA, vous pouvez modifier votre
remote origin
URI HTTP pour utiliser votre nouveau jeton 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 du tout besoin de recloner le référentiel.
la source
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
a également travaillé pour moi, merci !! Je répondrai à ce fil avec ma solution correcte.Une manière possible consiste à utiliser un jeton de déploiement ( https://docs.gitlab.com/ee/user/project/deploy_tokens ). Après avoir créé le jeton, utilisez:
comme mentionné dans le lien ci-dessus.
la source
Depuis
8.12
, le clonage à l'aide duHTTPS
jeton + runner n'est plus pris en charge, comme mentionné ici :la source
Dans un pipeline GitLab CI, la
CI_JOB_TOKEN
variable d'environnement fonctionne pour moi:Source: Docs Gitlab
BTW, définir cette variable dans
.gitlab-ci.yml
aide à déboguer les erreurs.la source
Je suis allé SSH en utilisant le paramètre de clé de déploiement par projet (lecture seule)
la source
Pour rendre mon avenir heureux: RTFM - n'utilisez pas du tout le gitlab-ci-token, mais le
.netrc
fichier.Il y a quelques 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://
, nongit+https://
. Vous n'avez pas non plus besoin d'éléments CI-TOKEN dans l'URL.git clone [url from step 4]
Contexte: j'ai
quand j'ai essayé de faire fonctionner Ansible + Gitlab + Docker comme je l'imagine. Maintenant ça marche.
la source
La personnalisation de l'URL n'est pas nécessaire. Utilisez simplement une configuration git pour les jetons gitlab tels que
description détaillée ici
la source
beaucoup de réponses ci-dessus sont proches, mais elles obtiennent une
username
syntaxe ~ pour lesdeploy
jetons incorrecte. Il existe d'autres types de jetons, maisdeploy token
c'est ce que propose gitlab (au moins vers 2020+) par dépôt pour permettre un accès personnalisé, y compris en lecture seule.à partir de a
repository
(ougroup
), recherchez lesettings
->repository
->deploy tokens
. Créez-en un nouveau. Un champusername
ettoken
sont créés. Leusername
n'est PAS une valeur fixe par défaut; c'est unique à ce jeton.git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
testé sur gitlab.com compte public et gratuit.
la source