使用gitlab cicd自动合并分支

Posted

技术标签:

【中文标题】使用gitlab cicd自动合并分支【英文标题】:Using gitlab cicd to automatically merge branches 【发布时间】:2020-02-04 00:14:46 【问题描述】:

gitlab 具有此功能,您可以使用管道在您将代码推送到项目时执行代码。 这是通过他们的 .gitlab-ci.yml 文件格式完成的

我正在尝试以某种方式使管道合并所有带有前缀“ready/”的分支 我已经编写了一个 python 程序来在本地执行它,但它不会在 gitlab docker 远程机器上执行。这是因为它只将“* 和 master”列为带有“git branch -a”的分支。

我已经尝试结帐到master,但是那个dosent工作。

这甚至可以在 gitlab 管道上实现吗?我将如何前进?

【问题讨论】:

【参考方案1】: 推荐的答案 GitLab

有几种方法可以实现这一点,具体取决于您要使用什么凭据、您喜欢什么以及更适合您的用例。

    使用SSH in CI/CD(带有 SSH 密钥)使用标准 git 命令来拉取、执行任何操作,然后作为管道作业的一部分推送到存储库。 使用需要personal access token 的merge requests API。 API 允许您创建、接受和合并合并请求。

如果你有很多分支,那么你可能想使用第一种方法。

【讨论】:

我希望这会自动发生。 ssh 选项需要外部计算机在 ssh 连接内运行命令?并且 dosent api 选项需要所有分支的合并请求? 如果您查看文档链接,我链接到的链接专门介绍了如何在 CI/CD 中使用 SSH,以便您可以在脚本中运行所需的任何 git 命令。我已经编辑了我的答案,希望它更清楚。至于 MR 选项,是的,它确实如此,这就是为什么我注意到如果你有很多分支,你最好使用 SSH 方法。

以上是关于使用gitlab cicd自动合并分支的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab 无法将恢复的分支与另一个分支合并

如何限制将特定分支合并到 Gitlab 中的其他分支?

Jenkins+Gitlab自动打TAG

gitlab 添加 CI CD

如何防止 Gitlab 在分支合并上创建额外的合并提交

通过 gitlab(或 git)合并分支的最快方法?