使用gitlab API获取gitlab-ci标记

时间:2016-01-18 05:14:04

标签: 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/

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

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

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

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

git clone https://gitlab-ci-token:token@gitlab.com/project.git

5 个答案:

答案 0 :(得分:3)

检索令牌的网址位于以下路径 /个人资料/帐户下。

您也可以导航至个人资料设置 - > 帐户

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

答案 1 :(得分:1)

我会说检查你想要的令牌类型。

  1. 私人代币? 导航到个人资料设置 - >帐户。

  2. 如果要触发新的CI / CD管道,可以生成令牌,这可以通过导航到项目设置 - >来完成。 CI / CD管道 - >创建令牌

  3. 此外,您拥有Git的正确权限非常重要。

答案 2 :(得分:0)

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

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

花10分钟时间找我...在任何地方都没有记录。

答案 3 :(得分:0)

根据新的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的值

答案 4 :(得分:0)

gitlab-ci-token**strong text**

gitlab-ci-token可以在[转到左侧面板->设置-> ci / cd->运行器]

中找到