我想克隆GitLab仓库没有提示我的自动化脚本,通过使用我的私人令牌从我的GitLab帐户。
有人能给我一个样品吗?
我知道我可以这样做的用户和密码:
git clone https://" + user + ":" + password + "@" + gitlaburl;
我知道这是可能的ssh密钥
但是,这两种选择都不够。
我想克隆GitLab仓库没有提示我的自动化脚本,通过使用我的私人令牌从我的GitLab帐户。
有人能给我一个样品吗?
我知道我可以这样做的用户和密码:
git clone https://" + user + ":" + password + "@" + gitlaburl;
我知道这是可能的ssh密钥
但是,这两种选择都不够。
当前回答
在GitLab CI管道中,CI_JOB_TOKEN环境变量为我工作:
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
来源:Gitlab Docs
顺便说一下,在.gitlab-ci中设置这个变量。Yml有助于调试错误。
variables:
CI_DEBUG_TRACE: "true"
其他回答
gitlab有很多令牌:
私人的令牌 个人访问令牌 CI/CD运行令牌
我只测试了个人访问令牌使用GitLab社区版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
但是私有令牌似乎不能工作。
我去SSH使用每个项目部署键设置(只读)
你可以这样做:
git clone https://gitlab-ci-token:<private token>@git.example.com/myuser/myrepo.git
在本例中,我只提供了令牌而不是密码(第二个输入字段)。
我第一次从命令行推送本地回购。
从头开始,这些是我输入的命令(记得先移动到回购文件夹内)。
$ git init
$ git status
$ git add .
$ git status
$ git commit -m 'Shinra Tensei.'
$ git push --set-upstream https://gitlab.com/userName/my-repo.git master
然后,您可以在图片中看到的弹出消息出现。提供用户名和令牌。
现在(2020年10月),你可以只使用以下内容
git clone $CI_REPOSITORY_URL
它将扩展为如下内容:
git clone https://gitlab-ci-token:[MASKED]@gitlab.com/gitlab-examples/ci-debug-trace.git
其中“令牌”密码是临时令牌(它将在构建完成后自动撤销)。