使用 Gitlab API 在项目上创建变量

问题描述

我正在尝试使用 cURL 命令为 GitLab 上的项目创建 GitLab 变量。

我正在关注 API 和相关段落 here
查看文档上的示例,我找不到任何关于 Gitlab 如何知道我要向哪个存储库添加变量的证据。

我尝试添加一个私有令牌并运行该命令,但最终得到 403。

有人可以解释一下如何使用 GitLab API 通过 cURL 命令向 repo 添加变量吗?

解决方法

查看文档中的示例,我找不到任何关于 Gitlab 如何知道我要向哪个存储库添加变量的证据

但是……“实例级”变量背后的所有想法都是“全局”的,而不是绑定到特定项目。

issue 14108

CI 构建的全局(实例级)变量

问题或多或少或功能/问题也许……在 CI 构建中支持全局变量会很好;经典用例是部署密钥/docker 注册表凭据。

要解决的问题

在不支持全局变量的情况下,用户在迁移到 GitLab 时必须手动为数十个项目重复输入相同的凭据以获取以下详细信息:

  • docker 私有注册表凭据
  • kubernetes 凭据)
  • 部署密钥

提案

通过以下方式实现对 CI 构建的全局(实例级)变量的支持:

  • 在项目/组设置中重新使用 CI 变量的重构/重新设计
  • 置于管理设置中的 CI/CD 部分下

更适合您的情况的 API 是:

Create variable (project

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
    "https://gitlab.example.com/api/v4/projects/1/variables" \ 
    --form "key=NEW_VARIABLE" --form "value=new value"