Github的动作“pull_request_review”针对特定目标分支。

3
我们正在尝试设置一个 Github 行动,该行动仅在针对特定基础分支模式 release/* 的拉取请求上触发 pull_request_review
这样做是为了让 GH 行动能够检查审核是否来自特定的发布门禁组。
像这样做似乎不能只针对 release/* 分支的 PR 生效。它似乎会触发针对所有基础分支的 PR 审核。
on:
  pull_request_review:
    branches:
      - release/*

在我们看来,似乎不能像这样链式地链接基础分支


顺便提一下 - 你可以通过code owners来解决这个问题,并将分支保护规则设置为 release/*,以 "Require review from Code Owners" - Benjamin W.
2个回答

1
你可以通过设置条件使它正常工作,例如:


on:
pull_request_review:
    branches:
        - release/**

jobs:
  release-job:
    if: startsWith(github.event.pull_request.base.ref, 'release/')

这基本上是检查文本的基础引用(不区分大小写)。
如果条件为假,则wf仍将显示在其他wf中,但将显示为已跳过(0s执行时间)。
请注意,您需要为工作流中的每个工作设置此条件。
我认为您不再需要分支筛选器。

是的,看起来这是正确的方法。我不喜欢的是,这个操作仍然会触发,但是会“跳过”任务。 - Kevin Vella

1
您可以在任务级别执行过滤。
示例:
name: Filtering PR Reviews

on:
  pull_request_review:
    branches:
      - 'releases/**'

jobs:
  Releases:
    name: Releases
    runs-on: ubuntu-latest
    if: ${{ startsWith( github.event.pull_request.base.ref, 'releases/' )}}
    steps:
      - name: trigger
        run: echo "we are in releases/**"
    
  ReleasesNext:
    name: ReleasesNext
    runs-on: ubuntu-latest
    if: ${{ startsWith( github.event.pull_request.base.ref, 'releases/next' )}}
    steps:
      - name: trigger
        run: echo "we are in releases/next"    

是的,看起来这是正确的方法。我不喜欢的是,该操作仍将触发但会“跳过”作业。 - Kevin Vella
没错。 您可以创建一个次要工作流来触发适当的操作。 虽然这个虚拟任务仍然会被触发。 这样您可能会更好地组织您的管道。 - Bamdad Sabbagh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接