【问题标题】:Create Pull Request on Git Push在 Git Push 上创建拉取请求
【发布时间】:2020-09-22 03:51:17
【问题描述】:

我的 GitHub 存储库有 2 个分支:“master”和“develop”。

我们的工作流程是,任何代码都应该提交到“develop”分支,然后推送到 GitHub,然后应该创建一个 Pull Request 将提交合并到“master”分支。

我正在尝试编写一个操作,一旦开发人员将提交推送到“开发”分支并具有以下脚本,它将创建一个拉取请求:

name: Create pull request
on:
  push:
    branches:
      - develop
jobs:
  prForMasterBranch:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          ref: master
      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v2
        with:
          commit-message: update master branch
          title: Update master branch
          branch: develop

我可以看到这个动作已经在“develop”分支的“Push”事件上成功执行了,但是我看不到任何新的Pull Requests!

我检查了该操作的日志,并在拉取请求创建结束时发现了这些行:

将拉取请求分支推送到“origin/develop”
分支“开发”不再与基本分支“主”不同
关闭拉取请求并删除分支“开发”

我似乎遗漏了什么,但无法弄清楚。

感谢任何帮助。

【问题讨论】:

  • 感谢您的评论,但是如果我删除了“with: ref: master”,那么创建拉取请求将如何知道我需要将“开发”分支与哪个分支合并?我的意思是我认为我们应该在某处提及“master”分支,对吧?
  • 你是对的,我误解了它

标签: github github-actions


【解决方案1】:

如果您查看 create-pull-request 操作的 documentation,它会提到

创建拉取请求操作将:

  • 检查操作工作区中的存储库更改。这包括:
    • 未跟踪的(新)文件
    • 跟踪(修改)文件
    • 在工作流中进行但尚未推送的提交
  • 将所有更改提交到新分支, 或更新现有的拉取请求分支。
  • 创建拉取请求以 将新分支合并到基础中——在 工作流程。

它总是需要一个可以提交更改的中间分支。

因此,如果您如下修改工作流配置,添加Reset master branch 步骤以从远程develop 分支获取最新更改并重置master 分支,并为操作指定branch: temp,工作流将创建一个 temp 分支,其提交与您推送到 develop 分支的提交相同,并打开一个从 tempmaster 分支的 PR。在后续的开发提交中,它将继续对temp 分支进行相同的更改,并类似地打开一个 PR 或更新现有的 PR。

name: Create pull request
on:
  push:
    branches:
      - develop
jobs:
  prForMasterBranch:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          ref: master
      - name: Reset master branch
        run: |
          git fetch origin develop:develop
          git reset --hard develop
      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v2
        with:
          commit-message: update master branch
          title: Update master branch
          branch: temp

请注意,temp 分支将具有推送到 develop 分支的确切提交。

【讨论】:

  • 完美运行,谢谢!
  • @user13602154 为什么需要临时分支?为什么不能直接从develop到master创建PR?
  • 这是同一个问题。您是否发现无论如何都可以在没有任何中间分支的情况下做到这一点?
猜你喜欢
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
  • 2014-04-30
  • 2015-10-17
相关资源
最近更新 更多