GitLab 中的自动合并请求

Anj*_*jan 5 git jenkins gitlab gitlab-ci

我的 GitLab 安装在其中一台服务器上。多个开发人员在他们的分支中开发源代码,并将源代码从他们的本地计算机推送到 GitLab。稍后开发人员将登录 GitLab 帐户并向默认分支创建合并请求。

现在,当开发人员将代码从本地计算机推送到 GitLab 时,我如何实现创建到默认分支的自动合并请求。

And*_*jos 6

您可以使用推送选项在 GitLab 中自动创建合并请求,如下所示:

$ git push -o merge_request.create ...
Run Code Online (Sandbox Code Playgroud)

~/.gitconfig我设法通过向我的状态添加别名来进一步自动化此操作:

mr = push -o merge_request.create -o merge_request.remove_source_branch --set-upstream origin HEAD
Run Code Online (Sandbox Code Playgroud)

然后,我所要做的就是切换到我想要从中创建新合并请求的分支并运行:

mr = push -o merge_request.create -o merge_request.remove_source_branch --set-upstream origin HEAD
Run Code Online (Sandbox Code Playgroud)

当前分支将被推送,它将在本地跟踪,将创建基于该分支的合并请求,并在 GitLab 上检查合并后“删除源分支”的选项。您可以探索更多选项来根据您的喜好进行配置。


DV8*_*2XL 5

不幸的是,GitLab 上没有自动创建合并请求的功能。例如,您必须使用 bash 或 python 脚本自己创建它们。我通常只是在每个管道开始时运行的阶段create_merge_request中调用作业。setup步骤如下:

  1. 读取所有打开的合并请求的列表
  2. 计算有多少个开放的 MR 映射到源分支
  3. 如果没有打开的 MR,请使用所需的默认设置创建一个

正如 @mnestorov 提到的,这里有一个开源版本,可以在 bash 脚本中执行这些步骤。我认为您需要在 GitLab 变量部分创建的唯一变量是GITLAB_PRIVATE_TOKEN输入您的Personal Access Token

或者,您可以使用 GitLab API 编写 Python 脚本,但您可能必须自己编写。您可以在如何在 Gitlab 中成功管道的末尾创建合并请求?找到一些信息。。