从API中不清楚如何获取可用于克隆http存储库的令牌。
从这里的文档:
http://doc.gitlab.com/ee/ci/api/README.html
应该可以获取此网址:
http://gitlab.com/ci/api/v1/projects?private_token=QVy1PB7sTxfy4pqfZM1U&url=http://demo.gitlab.com/
我不确定url
参数取自哪里,但即使只使用我的私人令牌,它也会收到404错误页面。
我尝试使用ci
子域,但它只是将我重定向到gitlab.com。
那就是说,我会解释一下我需要它的原因。我有一个可以有多个项目的服务器。每个项目都将包含一个私有/公共存储库列表,每个项目都必须克隆/拉动,以及任何定期。与github不同,gitlab不提供站点范围内的oauth2令牌,而是为每个项目提供CI令牌。我可以确保用户为每个项目输入令牌,但这比输入私有令牌更复杂。
另一方面,我可以为每个用户生成SSH密钥并将公钥添加到他们的帐户,这样就可以使用ssh而不是http来获取/克隆。但是,除了获取令牌并使用基本身份验证网址进行克隆之外,我的工作还有点多
git clone https://gitlab-ci-token:[email protected]/project.git
检索令牌的网址位于以下路径/个人资料/帐户下。
或者您可以导航到个人资料设置 - >帐户
还要确保使用正确版本的api。在此响应时,当前是在v3 / api / v3 / projects上?private_token = {my_private_token}
我会说要检查你想要的令牌类型。
此外,您拥有Git的权限非常重要。
根据新的Gitlab CI Build Permissions Model,HTTPS现在是克隆所有来源的要求。因此排除了SSH选项。
现在克隆任何私人仓库你可以做:
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/<group_name>/<repo>.git
此外,您不需要指定CI_JOB_TOKEN的值。它是自动采取的。所以,只需填写<group_name>
和<repo>
。
此外,请记住,gitlab.com
可以被gitlab.xyz.cloud
(您的私人gitlab企业)取代,这仍然有效。
不用说,你永远不会真正需要CI_JOB_TOKEN
的价值
您可以通过gitlab.com执行以下操作来查找令牌
花了我10分钟才找到这个...没有记录在任何地方。