到目前为止,我可以通过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功能是否也支持此功能。任何有关如何实现这一目标的建议都值得赞赏。
不幸的是,CI_JOB_TOKEN范围非常有限。截至今天(GitLab 11.0),您只能用它做两件事:
参考文献:
所以,你不能使用CI_JOB_TOKEN从另一个仓库,无论是通过原始端点(下载文件/raw/<ref>/<path>),也不是API。
不幸的是,部署密钥也无济于事-它们仅适用于SSH。
我想出的唯一可行的解决方案是使用一个单独的用户:
Reporter角色的新用户。/profile/personal_access_tokens为具有api和read_repository权限的该用户创建个人访问令牌()。BUILD_USER_TOKEN。$BUILD_USER_TOKEN你的CI脚本访问API或项目文件。这是一个巨大的黑客,我真的希望看到GitLab制作CI_JOB_TOKEN一个具有指定资源权限的一流的只读(?)令牌。
| 归档时间: |
|
| 查看次数: |
1387 次 |
| 最近记录: |