如何备份/导出Gitlab CI环境变量?

14
我们的当前项目中有一个不断增长的Gitlab CI变量集合,大约有40-50个。所有这些变量都在我们的CI/CD流水线中使用,并且对我们的生产环境至关重要。
我想定期生成备份以防止有人搞乱这些变量。
不幸的是,在“项目->设置->CI / CD->环境变量”中,我没有看到导出这些变量的选项。我只能查看/编辑/删除这些变量。
也许这些变量有隐藏的导出功能吗?我们自己托管Gitlab实例(GitLab Community Edition 11.8.1)。
3个回答

11

3

您可以通过 API 轻松实现此操作。我已在 14.8 上进行了测试。

# Instance-level CI/CD variables
curl --header "PRIVATE-TOKEN: your-priv-token" "https://gitlab.example.com/api/v4/admin/ci/variables" | jq -r '.[] | .key, .value, ""'

# Group-level Variables
curl --header "PRIVATE-TOKEN: your-priv-token" "https://gitlab.example.com/api/v4/groups/1/variables" | jq -r '.[] | .key, .value, ""'

# Project-level Variables
curl --header "PRIVATE-TOKEN: your-priv-token" "https://gitlab.example.com/api/v4/projects/1/variables" | jq -r '.[] | .key, .value, ""'

此 API 调用不会下载所有变量。 - bruvio

1

您可以使用this开源CLI工具,轻松将所有Gitlab CI变量以JSON格式导出。

glvars export -p <your_gitlab_project_id>

它也可以从JSON文件中将变量导入回Gitlab。

glvars import -p <your_gitlab_project_id> -f ./vars.json 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接