我想克隆GitLab仓库没有提示我的自动化脚本,通过使用我的私人令牌从我的GitLab帐户。
有人能给我一个样品吗?
我知道我可以这样做的用户和密码:
git clone https://" + user + ":" + password + "@" + gitlaburl;
我知道这是可能的ssh密钥
但是,这两种选择都不够。
我想克隆GitLab仓库没有提示我的自动化脚本,通过使用我的私人令牌从我的GitLab帐户。
有人能给我一个样品吗?
我知道我可以这样做的用户和密码:
git clone https://" + user + ":" + password + "@" + gitlaburl;
我知道这是可能的ssh密钥
但是,这两种选择都不够。
当前回答
不需要定制URL。只需为gitlab令牌使用git配置,例如
git config --global gitlab.accesstoken {TOKEN_VALUE}
此处扩展描述
其他回答
从8.12开始,不再支持使用HTTPS +运行令牌进行克隆,如下所述:
在8.12中,我们改进了构建权限。从现在开始不支持使用runner令牌克隆项目(它实际上是巧合,从来都不是一个完整的功能,所以我们在8.12中改变了这一点)。您应该使用构建令牌代替。 这是广泛记录在这里- https://docs.gitlab.com/ce/user/project/new_ci_build_permissions_model.html。
为了让我的未来我快乐:RTFM -不要使用gitlab-ci-令牌,而是使用.netrc文件。
这里有几个要点:
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc . 不要忘记用你的URL替换“gitlab.com”! 不要试图聪明,直接创建.netrc文件- gitlab不会替换文件中的$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像我想象的那样工作时。现在它起作用了。
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
但是私有令牌似乎不能工作。
一种可能的方法是使用部署令牌 (https://docs.gitlab.com/ee/user/project/deploy_tokens)。创建令牌后,使用:
git clone https://<username>:<deploy_token>@gitlab.example.com/tanuki/awesome_project.git
如上面的链接所述。
使用令牌而不是密码(令牌需要有“api”范围才能允许克隆):
git clone https://username:token@gitlab.com/user/repo.git
在11.0.0-ee上测试。