GitHub响应未创建状态检查的pull_request的措施?

时间:2019-10-07 18:57:01

标签: git github continuous-integration github-api pull-request

我正在尝试建立一个GitHub操作,如果PR处于可合并状态(通过所有检查等),它将自动合并PR。

我的设置看起来像这样:

name: Auto-Merge Pull Requests

on:
  pull_request:
    branches:
      - master
    types:
      - opened
      - reopened

jobs:
  auto_merge:
    name: auto_merge
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: ./.github/actions/auto_merge

在该操作中,我的基本计划是简单地轮询GitHub API,直到PR处于干净状态或发生一些超时。

但是,我发现这个GitHub动作本身就是在PR上创建一个待处理状态检查,只有在该动作停止运行时,它才会变为绿色。因此,从根本上我无法实现我想要的目标,因为操作本身会将PR置于不可合并的状态。

如何在不对PR创建新状态检查的情况下运行GitHub Action?我看了看所有文档,却找不到任何信息。

3 个答案:

答案 0 :(得分:1)

我还没有亲自尝试过,但是GitHub上的pascalgn/automerge-action可能值得使用,而不是推出自己的解决方案,因为它还支持许多额外的功能。

答案 1 :(得分:1)

您可以尝试在其他事件上运行您的工作流,例如仅在批准合并请求时才运行。这也不会添加status check

name: Auto-Merge Pull Requests

on:
  pull_request_review:
    types: [submitted]
    branches:
      - master

jobs:
  auto_merge:
    name: auto_merge
    if: github.event.review.state == 'approved'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: ./.github/actions/auto_merge

答案 2 :(得分:0)

我的猜测是,使用on: pull_request时无法避免状态检查。我建议尝试重新设计您的解决方案,以使用其他工作流触发器来执行合并本身。

在这种情况下,也许on: status会很好用。 https://help.github.com/en/articles/events-that-trigger-workflows#status-event-status

根据API参考:

  

状态API允许外部服务以errorfailurependingsuccess状态标记提交,然后在涉及那些提交的请求请求中反映出来

https://developer.github.com/v3/repos/statuses/

如果您的工作流基于status事件运行,并检查所涉及的提交是否处于成功状态并包含在PR中,则该PR可能会被合并。