在受保护的分支上使用
semantic-release
插件 @semantic-release/git
时(master 受到保护,维护者允许合并,任何人都不允许推送和合并)
我有
remote: GitLab: You are not allowed to push code to protected branches on this project
我也尝试过允许强制启用推送,但它没有任何改变。
解决办法是什么?
编辑
如果我取消保护分支,它正在工作。
访问令牌拥有所有权限(我选中了所有框)。
但我不确定我是否可以将某些内容推送到不允许任何人推送和合并的分支,即使使用任何令牌也是如此。
我尝试使用 CI_JOB_TOKEN 值设置 GITLAB_TOKEN 。但它不起作用。它告诉我令牌无效。
当不允许任何人推送和合并时,意味着只允许合并提交,而不能推送普通(直接)提交。
不幸的是,这就是
@sematic-release/git
所需要的——它将创建一个带有更新的 package.json
以及其他更改(变更日志等)的直接提交,并且这个直接提交也将被标记为 的版本号@sematic-release
插件已生成。
就我个人而言,我不喜欢这种方法,并且更喜欢避免对代码本身没有影响的额外提交。
我们没有找到一种方法来解决这个问题而不取消对分支的保护或至少允许推送。最终我们迁移到自定义版本控制工作流程,它不需要额外的提交并使用标签。