我在gitlab ci管道中使用了预定义变量,例如$CI_COMMIT_REF_SLUG
,通过gitlab api访问这些变量将非常有用。
我已经阅读了文档,并遍历了所有与gitlab-ci相关的GET路径(分支/,作业/,管道/),但是只能找到每个作业和管道的原始分支名称/标签。
是否可以访问此变量?
编辑:
用例是在管道成功后我想查询网址。
在管道期间,将生成example.com/$_CI_COMMIT_REF_SLUG/
这样的网址。
我需要来自API的响应:
{
"ref_slug":"foo-12",
"ref":"-/foo_12-"
}
答案 0 :(得分:1)
我认为这样的API不存在。
但是,您可以并行使用根据其功能计算的自己的局部变量:https://gitlab.com/gitlab-org/gitlab-runner/-/blob/master/Makefile.build.mk#L25
BRANCH=$(git branch --show-current)
CI_COMMIT_REF_SLUG=$(echo $BRANCH | cut -c -63 | sed -E 's/[^a-z0-9-]+/-/g' | sed -E 's/^-*([a-z0-9-]+[a-z0-9])-*$$/\1/g')
我不认为它们的实现会很快改变(由于向后兼容的影响),需要您方面的同步。 如果您不希望因其实现方式的更改而遭受副作用,则可以在任何地方使用您的计算值。