所以我正在尝试设置一个CI管道,我希望它做的一件事是更新我的一些xml文件中的版本号,然后将它们提交回分支 . 当代码提交(通常是通过合并请求)到我的'beta'分支时,会触发此CI管道 . 然后其中一个作业使用ruby脚本更新版本号 . 一旦一切都过去了,我想将这些版本号更新提交到'beta'分支,但似乎无法做到正确 . 这是我用来尝试提交更改的ruby脚本的迭代:

puts("# Commit changes to git")
system("git checkout beta")
system("git add #{@project_root}")
git_commit_msg = "[skip ci] beta version numbers updated"
system("git commit -m \"#{git_commit_msg}\"")
result = system("git push -f origin HEAD:beta") or raise "git push failed"

我的CI运行器工作的用户有一个repo的ssh密钥,可以在CI环境之外提交更改 . 但是当这部分运行时,我通常得到:

remote:HTTP Basic:访问被拒绝致命:'http:// gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@gitlabserver/owner/build-tools-sandbox.git/'/ Users / usr / builds / daf17119 / 0 /的身份验证失败owner / build-tools-sandbox / tools / build-scripts / commit_changes.rb:41:in':git push failed(RuntimeError)from / Users / usr / builds / daf17119 / 0 / owner / build-tools-sandbox / tools /build-scripts/commit_changes.rb:7:in'

任何反馈都会非常有帮助,因为我一直在努力解决它 . 谢谢!