使用gitlab API获取gitlab-ci标记

Loï*_*oix 9 gitlab gitlab-ci

从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/
Run Code Online (Sandbox Code Playgroud)

我不确定url参数的来源,但即使只使用我的私人令牌,它也会收到404错误页面.

我尝试使用ci子域名,但它只是将我重定向到gitlab.com.

那就是说,我会解释一下我需要它的原因.我有一个可以有多个项目的服务器.每个项目都将包含一个私有/公共存储库列表,每个项目都必须克隆/拉动,以及任何定期.与github不同,gitlab不提供站点范围内的oauth2令牌,而是为每个项目提供CI令牌.我可以确保用户输入每个项目的令牌,但这比输入私人令牌更复杂.

另一方面,我可以为每个用户生成SSH密钥并将公钥添加到他们的帐户,这样就可以使用ssh而不是http来获取/克隆.但是,除了获取令牌并使用基本身份验证网址进行克隆之外,我的工作还有点多

git clone https://gitlab-ci-token:token@gitlab.com/project.git
Run Code Online (Sandbox Code Playgroud)

TOB*_*der 5

您可以通过从 gitlab.com 执行以下操作来找到令牌

  1. 从起始屏幕单击您正在处理的项目
  2. 点击左侧导航中的“设置”
  3. 向下滚动到底部,然后单击嵌套在“设置”中的“CI/CD”
  4. 在“跑步者”部分下,单击展开
  5. 令牌隐藏在这里。

我花了 10 分钟才找到这个……没有记录在任何地方。

  • 这是跑步者令牌,而不是 API 令牌。Gitlab 中有几种不同的令牌(至少是跑步者、CI/job 和个人)。 (4认同)

rah*_*311 5

根据新的Gitlab CI 构建权限模型,HTTPS 现在是克隆所有源的要求。所以这排除了 SSH 选项。

现在克隆任何私人回购,你可以这样做:

git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/<group_name>/<repo>.git
Run Code Online (Sandbox Code Playgroud)

此外,您DONT需要指定CI_JOB_TOKEN值。它是自动拍摄的。所以,只需填写<group_name><repo>

另外,请记住,gitlab.com可以用gitlab.xyz.cloud(您的私人 gitlab 企业)替换,这仍然有效。

不用说,您实际上永远不会需要 CI_JOB_TOKEN


小智 3

用于检索令牌的 URL 位于以下路径/profile/account下。

或者您可以导航至“个人资料设置” -> “帐户”

还要确保您使用的是正确版本的 api。截至此响应时,当前版本为 v3 /api/v3/projects?private_token={my_private_token}