如何使用GitLab Releases API?

时间:2019-06-07 10:14:26

标签: gitlab

GitLab现在具有称为“ Releases”的好功能。您可以将“发布”定义为“标签+一些描述+一些URL”的组合,它会显示在项目的“发布”和“标签”页面上。 GitLab doc说:

  

我们建议您将此操作作为CI / CD发行流程中的最后一步之一

但是,等等!默认情况下,CI / CD作业无法访问API调用或写入git存储库。我们可以配置“部署令牌”或“部署密钥”以访问存储库,并在构建脚本中使用它们(通过“秘密变量”)。但是“部署令牌”和“部署密钥”都无法访问API。

因此,我们无法使用其环境变量从CI / CD作业创建发布,我们无法使用部署令牌,我们无法使用部署密钥。因此,当GitLab说“我们建议将其作为CI / CD发行流程中的最后步骤之一”时,建议我们做什么?

1 个答案:

答案 0 :(得分:2)

previous question突出显示了相同的问题,指出您需要在CI / CD发布管道中访问(from doc

  
      
  • 两个OAuth2令牌
  •   
  • 个人访问令牌
  •   
  • 会话cookie
  •   

这是not limited to release
gitlab-ce issue 61108所示:“允许使用CI_JOB_TOKEN管理标签”

  

但是,事实证明,仅使用CI_JOB_TOKEN无法删除标签。
  相反,我需要创建访问令牌并将其作为CI变量传递,以便能够从CI作业中调用此API。

其他示例:

  

但是,事实证明,此REST API的调用不适用于JOB_TOKEN标头,而仅适用于PRIVATE_TOKEN
  是否有此限制?

     

我不想仅为了操纵发行版资产而维护额外的私有令牌。

这意味着目前(2019年6月),维护一个额外的Private令牌并将其作为CI变量传递可能是唯一可用的解决方法,以待解决这些问题。
我认为,这将使用masked variable(GitLab 11.0 +)