Ich möchte das Gitlab-Repository ohne Aufforderung zur Eingabe meines Automatisierungsskripts klonen, indem ich mein privates Token aus meinem Gitlab-Konto verwende.
Kann mir jemand eine Probe geben?
Ich weiß, dass ich dies mit Benutzer und Passwort tun kann:
git clone https://" + user + ":" + password + "@" + gitlaburl;
und ich weiß, dass es mit ssh key möglich ist
Beide Optionen reichen jedoch nicht aus
git clone https://<token-name>:<token>@gitlaburl
Antworten:
Ich weiß, das ist alt, aber so machst du es:
git clone https://oauth2:[email protected]/vendor/package.git
quelle
api
Token erstellen . Aread_user
kann nur Repos unter/users
ssh
?Sie können es so machen:
quelle
Das Gitlab hat viele Token:
Ich habe nur das Personal Access Token mit GitLab Community Edition 10.1.2 getestet . Beispiel:
oder mit Benutzername und Passwort:
oder indem Sie Ihr Passwort eingeben:
Aber das private Token scheint nicht funktionieren zu können.
quelle
Verwenden Sie das Token anstelle des Kennworts (das Token muss über einen API-Bereich verfügen, damit der Klon zugelassen wird):
Getestet gegen 11.0.0-ee.
quelle
Sie können das Runner-Token für CI / CD-Pipelines Ihres GitLab-Repos verwenden.
Wo
<runners token>
kann man bekommen von:oder indem Sie auf klicken
Settings icon -> CI/CD Pipeline
und auf der Seite nach Runners Token suchenScreenshot der Position des Läufer-Tokens:
quelle
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
Wenn Sie bereits über ein Repository verfügen und nur die Art und Weise geändert haben, wie Sie sich bei MFA authentifizieren, können Sie Ihren
remote origin
HTTP-URI so ändern , dass Ihr neues API-Token wie folgt verwendet wird:git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
Und Sie müssen das Repository überhaupt nicht neu klonen.
quelle
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
hat auch für mich gearbeitet, danke !! Ich werde diesen Thread mit meiner richtigen Lösung beantworten.Eine Möglichkeit ist die Verwendung eines Bereitstellungstokens ( https://docs.gitlab.com/ee/user/project/deploy_tokens ). Verwenden Sie nach dem Erstellen des Tokens:
wie im obigen Link erwähnt.
quelle
Ab hier
8.12
wird das Klonen mit demHTTPS
+ Runner-Token nicht mehr unterstützt, wie hier erwähnt :quelle
In einer GitLab CI-Pipeline
CI_JOB_TOKEN
funktioniert die Umgebungsvariable für mich:Quelle: Gitlab Docs
Übrigens
.gitlab-ci.yml
hilft das Setzen dieser Variablen beim Debuggen von Fehlern.quelle
Ich habe SSH mit der Einstellung für Projektbereitstellungsschlüssel verwendet (schreibgeschützt).
quelle
Um meine Zukunft glücklich zu machen: RTFM - benutze überhaupt nicht das Gitlab-Ci-Token, sondern die
.netrc
Datei.Es gibt einige wichtige Punkte:
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
in der Datei enthaltene!https://gitlab.com/whatever/foobar.com
- nichtssh://git@foobar
, nichtgit+ssh://
, nichtgit+https://
. Sie benötigen auch keine CI-TOKEN-Inhalte in der URL.git clone [url from step 4]
Hintergrund: Ich habe
als ich versuchte, Ansible + Gitlab + Docker so zu machen, wie ich es mir vorstelle. Jetzt gehts.
quelle
Das Anpassen der URL ist nicht erforderlich. Verwenden Sie einfach eine Git-Konfiguration für Gitlab-Token wie z
erweiterte Beschreibung hier
quelle
Viele der obigen Antworten sind nahe beieinander, aber sie erhalten eine ~
username
Syntax fürdeploy
Token, die falsch sind. Es gibt andere Arten von Token, aberdeploy token
genau das bietet gitlab (mindestens ab 2020) pro Repo , um einen benutzerdefinierten Zugriff zu ermöglichen, einschließlich schreibgeschütztem Zugriff.Finden Sie aus a
repository
(odergroup
) dassettings
->repository
->deploy tokens
. Erstellen Sie eine neue. Ausername
undtoken
Feld werden erstellt. Dasusername
ist kein fester Wert standardmäßig; Es ist einzigartig für dieses Token.git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
getestet auf gitlab.com öffentliches, kostenloses Konto.
quelle