Dan*_*ton 6 merge gitlab merge-request
我相信这是一个愚蠢的问题,但我不明白我应该如何使用gitlab 合并请求推送选项
我有这样的场景:
git add .
git commit -m 'finish mr'
git push origin develop -o merge_request.merge_when_pipeline_succeeds
@user aborted the automatic merge because source branch was updated just now
@user added 1 commit just now
    8efdbde1 - finish mr
因此,推送似乎会将 MR 设置为允许成功后合并,并由于同一推送的提交而立即中止它。我还尝试使用 /merge 进行快速操作,但结果相同。我知道有gitlab API,但我不能使用它。有谁知道我做错了什么?
编辑:
作为接受的答案建议添加目标分支有帮助,但我还需要添加ci.skip:
git push origin $CI_COMMIT_REF_NAME \
-o ci.skip \
-o merge_request.target="$MASTER_BRANCH_NAME" \
-o merge_request.merge_when_pipeline_succeeds \
-o merge_request.create
您可以看到该错误消息在gitlab-foss提交 882e798中更新,作为最近 GitLab 12.1 的问题 63187和MR(合并请求)30249的一部分。
该merge_request.merge_when_pipeline_succeeds选项来自gitlab-foss MR 26752(GitLab 11.10,2019 年 4 月),问题 43263(发行说明)。
MR 包括:
要创建新的合并请求,请设置其目标分支,并在其管道成功时将其设置为合并:
Run Code Online (Sandbox Code Playgroud)git push -u origin -o merge_request.create \ -o merge_request.target=branch1 \ -o merge_request.merge_when_pipeline_succeeds更新现有合并请求
当推送具有现有开放合并请求的分支时,target可merge_when_pipeline_succeeds用于更新合并请求。
所以在你的情况下,也许添加目标:
git push origin develop -o merge_request.merge_when_pipeline_succeeds \
  -o merge_request.target=master