如何解决如何在运行程序中设置具有写入存储库权限的gitlab CI令牌
我想标记一个构建,当尝试推送标记时,我在CI中收到以下错误
如何创建CI令牌并在构建环境中进行设置,以将标签推送到存储库中。
[01:59:14]: Exit status of command 'git push origin --tags' was 128 instead of 0.
remote: You are not allowed to upload code.
fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gxx.yy.zz.git/': The requested URL returned error: 403
解决方法
您可以执行以下两种选择:
-
使用具有
write_repository
权限的personal access token。- 将其另存为custom CI/CD Variable,并确保它为
masked
。 - 在
.gitlab-ci.yml
文件中使用自定义CI / CD变量:
script: - git remote add https-origin https://gitlab-ci-token:${YOUR_PERSONAL_TOKEN}@gitlab.com/group/sub-group/project.git - git tag <some tag> - git push https-origin -o ci.skip refs/tags/<some tag>
- 将其另存为custom CI/CD Variable,并确保它为
请注意-o ci.skip
不要启动新管道,但这取决于您的情况。
如果您创建了一个僵尸程序帐户,此选项绝对更好,因此您可以更好地控制该僵尸程序帐户可以访问的存储库,否则,任何维护者或更高版本的维护者都可以轻松地从浏览器中检索该write_repository
密钥。设置。
-
如果您可以通过
tags
访问运行该构建程序的特定运行程序,则可以使用Deploy Keys,这样可以避免使用机器人帐户或您自己的个人访问令牌- 这需要在gitlab-runner计算机上创建一个SSH密钥,并将其复制到存储库
Settings -> Repository -> Deploy Keys
并在其中粘贴公共密钥(并勾选Write access allowed
)。 li>
- 然后,您应该可以像以前一样使用标准的
git push origin --tags
命令。
- 这需要在gitlab-runner计算机上创建一个SSH密钥,并将其复制到存储库
GitLab希望改善Epic中的权限问题:
使用管道标记的write_repository
的特定问题是:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。