到目前为止,我可以通过PAT和包含外部CI脚本进行身份验证,但更简洁的方法是使用$CI_JOB_TOKEN
进行访问,因为它更安全,限制。我正在研究是否可以这样做 -
include 'https://gitlab-ci-token:${CI_JOB_TOKEN}@raw-file-url'
我试图在虚拟脚本作业中以这种格式卷曲,但无法获取文件。
显然,可以使用文件API和$ CI_JOB_TOKEN(https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2346/diffs)导入外部脚本,但我正在研究include
功能是否也支持此功能。关于如何实现这一点的任何建议都表示赞赏。
答案 0 :(得分:4)
不幸的是,CI_JOB_TOKEN
的范围非常有限。截至今天(GitLab 11.0),您只能用它做两件事:
参考文献:
因此,您不能使用CI_JOB_TOKEN
既不通过原始端点(/raw/<ref>/<path>
)也不通过API从另一个存储库下载文件。
不幸的是,部署密钥也没有帮助-它们仅适用于SSH。
我想出的唯一可行的解决方案是使用单独的用户:
Reporter
角色的新用户。/profile/personal_access_tokens
)。BUILD_USER_TOKEN
。$BUILD_USER_TOKEN
访问API或项目文件。这是一个巨大的黑客,我真的希望看到GitLab使CI_JOB_TOKEN
成为具有指定资源权限的一流的只读(?)令牌。
答案 1 :(得分:0)
仍然不支持CI_JOB_TOKEN
具有有用的API访问权限。但他们正在为此https://gitlab.com/groups/gitlab-org/-/epics/3559