GitLab CI是否使用API​​获得预定义变量?

时间:2018-07-03 19:49:40

标签: gitlab gitlab-ci gitlab-api

我在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-"
}

1 个答案:

答案 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')

我不认为它们的实现会很快改变(由于向后兼容的影响),需要您方面的同步。 如果您不希望因其实现方式的更改而遭受副作用,则可以在任何地方使用您的计算值。