답변:
나는 이것이 오래된 것을 알고 있지만 이것이 당신이하는 방법입니다.
git clone https://oauth2:ACCESS_TOKEN@somegitlab.com/vendor/package.git
api
토큰 을 만들어야합니다 . A는 read_user
단지 아래의 repos를 읽을 수 있습니다/users
ssh
합니까?
다음과 같이 할 수 있습니다 :
git clone https://gitlab-ci-token:<private token>@git.example.com/myuser/myrepo.git
gitlab에는 많은 토큰이 있습니다.
예를 들어 GitLab Community Edition 10.1.2를 사용하여 개인용 액세스 토큰 만 테스트했습니다 .
git clone https://gitlab-ci-token:${Personal Access Tokens}@gitlab.com/username/myrepo.git
git clone https://oauth2:${Personal Access Tokens}@gitlab.com/username/myrepo.git
또는 사용자 이름과 비밀번호를 사용하는 경우 :
git clone https://${username}:${password}@gitlab.com/username/myrepo.git
또는 비밀번호를 입력하여 :
git clone https://${username}@gitlab.com/username/myrepo.git
그러나 개인 토큰 이 작동하지 않는 것 같습니다.
암호 대신 토큰을 사용하십시오 (복제를 허용하려면 토큰에 "api"범위가 있어야 함).
git clone https://username:token@gitlab.com/user/repo.git
11.0.0-ee에 대해 테스트되었습니다.
GitLab 리포지토리의 CI / CD 파이프 라인에 러너 토큰을 사용할 수 있습니다.
git clone https://gitlab-ci-token:<runners token>@git.example.com/myuser/myrepo.git
어디서 <runners token>
구할 수 있습니까?
git.example.com/myuser/myrepo/pipelines/settings
Settings icon -> CI/CD Pipeline
또는를 클릭 하고 페이지에서 Runners Token을 찾으십시오.
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
이미 리포지토리가 있고 인증 방식을 MFA로 변경 remote origin
한 경우 다음과 같이 새 API 토큰을 사용하도록 HTTP URI를 변경할 수 있습니다 .
git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
그리고 리포지토리를 전혀 다시 복제 할 필요가 없습니다.
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
또한 나를 위해 일했다, 감사합니다 !! 올바른 해결책 으로이 스레드에 대답 할 것입니다.
가능한 한 가지 방법은 배포 토큰 ( https://docs.gitlab.com/ee/user/project/deploy_tokens )을 사용하는 것입니다 . 토큰을 만든 후 다음을 사용하십시오.
git clone https://<username>:<deploy_token>@gitlab.example.com/tanuki/awesome_project.git
위의 링크에서 언급했듯이.
현재로 8.12
사용하여 복제, HTTPS
언급 한 바와 같이, 더 이상 지원되지 않는 토큰 + 주자 여기를 :
8.12에서는 빌드 권한이 향상되었습니다. 러너 토큰을 사용하여 프로젝트를 복제 할 수 있었기 때문에 지금부터 지원되지 않습니다 (실제로 우연히 작동했으며 결코 본격적인 기능이 아니므로 8.12에서 변경했습니다). 대신 빌드 토큰을 사용해야합니다.
이것은 https://docs.gitlab.com/ce/user/project/new_ci_build_permissions_model.html에 널리 문서화되어 있습니다 .
GitLab CI 파이프 라인에서 CI_JOB_TOKEN
환경 변수가 저에게 효과적입니다.
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
출처 : Gitlab Docs
BTW,이 변수를 설정하면 .gitlab-ci.yml
오류를 디버그하는 데 도움 이 됩니다.
variables:
CI_DEBUG_TRACE: "true"
내 미래를 행복하게하려면 : RTFM -gitlab-ci-token을 사용하지 말고 .netrc
파일을 사용하십시오.
몇 가지 중요한 사항이 있습니다.
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
파일 내를 대체하지 않습니다 !https://gitlab.com/whatever/foobar.com
- 아니 ssh://git@foobar
, 아니 git+ssh://
, 아니git+https://
. 또한 URL에 CI-TOKEN 자료가 필요하지 않습니다.git clone [url from step 4]
배경 : 나는 얻었다
fatal: could not read Username for 'https://gitlab.mycompany.com': No such device or address
내가 상상하는대로 Ansible + Gitlab + Docker를 작동 시키려고했을 때. 이제 작동합니다.
URL을 사용자 정의 할 필요는 없습니다. gitlab 토큰에 git 구성을 사용하십시오.
git config --global gitlab.accesstoken {TOKEN_VALUE}
위의 많은 답변은 가깝지만 토큰에 username
대한 ~ 구문이 deploy
잘못되었습니다. 다른 유형의 토큰이 있지만 deploy token
gitlab이 리포 당 (2020 년 이상 이상) 제공하는 것 입니다 읽기 전용을 포함하여 하는 맞춤형 액세스를 허용합니다.
에서 repository
(나 group
)에서 찾을 settings
-> repository
-> deploy tokens
. 새로운 것을 만드십시오. username
및 token
필드가 만들어집니다. 는 username
기본적으로 고정 된 값이 아니다; 이 토큰에 고유합니다.
git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
gitlab.com 공개 무료 계정에서 테스트되었습니다.
git clone https://<token-name>:<token>@gitlaburl