Chcę sklonować repozytorium gitlab bez pytania o mój skrypt automatyzacji, używając mojego prywatnego tokena z mojego konta gitlab.
Czy ktoś może dostarczyć mi próbkę?
Wiem, że mogę to zrobić za pomocą użytkownika i hasła:
git clone https://" + user + ":" + password + "@" + gitlaburl;
i wiem, że jest to możliwe z kluczem ssh
ale obie opcje nie są wystarczające
git clone https://<token-name>:<token>@gitlaburl
Odpowiedzi:
Wiem, że to jest stare, ale tak to się robi:
git clone https://oauth2:[email protected]/vendor/package.git
źródło
api
token. Aread_user
może czytać tylko repozytoria pod/users
ssh
?Gitlab ma wiele tokenów:
Testowałem tylko Personal Access Token przy użyciu GitLab Community Edition 10.1.2 , przykład:
lub używając nazwy użytkownika i hasła:
lub wpisując swoje hasło:
Ale prywatny token wydaje się nie działać.
źródło
Możesz to zrobić w ten sposób:
źródło
Użyj tokena zamiast hasła (token musi mieć zakres „api”, aby klon był dozwolony):
Testowany pod kątem 11.0.0-ee.
źródło
Możesz użyć tokena runners dla potoków CI / CD repozytorium GitLab.
Gdzie
<runners token>
można uzyskać:lub klikając na
Settings icon -> CI/CD Pipeline
i poszukaj Runners Token na stronieZrzut ekranu lokalizacji tokena biegaczy:
źródło
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
Jeśli masz już repozytorium i właśnie zmieniłeś sposób uwierzytelniania na MFA, możesz zmienić swój
remote origin
identyfikator URI HTTP, aby używał nowego tokenu API w następujący sposób:git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
W ogóle nie będziesz musiał ponownie klonować repozytorium.
źródło
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
też dla mnie pracował, dziękuję !! Odpowiem na ten wątek moim poprawnym rozwiązaniem.Jednym z możliwych sposobów jest użycie tokena wdrażania ( https://docs.gitlab.com/ee/user/project/deploy_tokens ). Po utworzeniu tokena użyj:
jak wspomniano w powyższym linku.
źródło
Od dnia
8.12
klonowanie za pomocąHTTPS
tokena + runner nie jest już obsługiwane, jak wspomniano tutaj :źródło
Wewnątrz potoku GitLab CI
CI_JOB_TOKEN
działa dla mnie zmienna środowiskowa:Źródło: Gitlab Docs
Przy okazji, ustawienie tej zmiennej w
.gitlab-ci.yml
pomaga debugować błędy.źródło
Poszedłem SSH, używając ustawienia kluczy wdrażania projektu (tylko do odczytu)
źródło
Aby uszczęśliwić moją przyszłość: RTFM - w ogóle nie używaj tokena gitlab-ci-token, ale
.netrc
plik.Jest kilka ważnych punktów:
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
pliku wewnątrz pliku!https://gitlab.com/whatever/foobar.com
- niessh://git@foobar
, niegit+ssh://
, niegit+https://
. Nie potrzebujesz też żadnych elementów CI-TOKEN w adresie URL.git clone [url from step 4]
Tło: mam
kiedy próbowałem sprawić, by Ansible + Gitlab + Docker działało tak, jak sobie wyobrażam. Teraz działa.
źródło
wiele odpowiedzi powyżej jest bliskich, ale
username
dladeploy
tokenów składnia ~ jest nieprawidłowa. Istnieją inne typy tokenów, aledeploy token
to właśnie oferuje gitlab (co najmniej około 2020+) na repozytorium, aby umożliwić dostosowany dostęp, w tym tylko do odczytu.z
repository
(lubgroup
), znajdźsettings
->repository
->deploy tokens
. Utwórz nowy.username
Itoken
pola są tworzone.username
Nie jest wartością stałą domyślnie; jest unikalny dla tego tokena.git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
przetestowano na publicznym, bezpłatnym koncie gitlab.com.
źródło
Dostosowywanie adresu URL nie jest potrzebne. Po prostu użyj konfiguracji git dla tokenów gitlab, takich jak
rozszerzony opis tutaj
źródło
gitlab.accesstoken
nic nie robi i na GitLabie nie ma żadnej dokumentacji odnoszącej się do tegoW dzisiejszych czasach (październik 2020) możesz używać tylko następujących
git clone $CI_REPOSITORY_URL
Który rozwinie się do czegoś takiego:
git clone https://gitlab-ci-token:[MASKED]@gitlab.com/gitlab-examples/ci-debug-trace.git
Jeśli hasło „tokena” jest tokenem efemerycznym, powinno zostać unieważnione po zakończeniu kompilacji.
źródło