You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions合并PR后如何找到对应PR并进行评论

解决方案

有可行的方法可以获取到合并提交对应的原PR信息,常用的有两种实现方案:

方法1:从合并提交信息直接提取PR号(无需调用API,实现最简单)

绝大多数GitHub仓库默认的合并提交、Squash合并提交信息末尾,都会自动携带(#<PR编号>)的格式后缀,你可以直接在Action中通过正则提取到PR编号,无需调用额外接口。
对应配置示例:

- name: 提取关联PR编号
  id: get_pr
  run: |
    # 获取当前触发Action的合并提交的提交信息
    COMMIT_MSG=$(git log -1 --pretty=%B ${{ github.sha }})
    # 提取提交信息末尾的PR编号
    PR_NUMBER=$(echo "$COMMIT_MSG" | grep -oE '#[0-9]+' | tail -n1 | tr -d '#')
    echo "pr_number=$PR_NUMBER" >> $GITHUB_OUTPUT

提取到PR编号后,就可以在检查不通过时给对应PR发布评论:

- name: 给合并PR发布检查失败评论
  # 替换为你自己的检查未通过判断条件
  if: ${{ failure() }}
  uses: actions/github-script@v7
  with:
    script: |
      github.rest.issues.createComment({
        owner: context.repo.owner,
        repo: context.repo.repo,
        issue_number: ${{ steps.get_pr.outputs.pr_number }},
        body: '本次PR合并后,main分支相关检查未通过,请排查变更内容'
      })
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

方法2:通过提交SHA调用GitHub API查询PR(兼容性更强)

如果你自定义了合并提交的信息格式,没有默认的PR编号后缀,可以直接用当前合并提交的SHA查询关联的PR信息,这种方案兼容性更强,还能获取PR标题、提交作者等完整信息。
对应配置示例:

- name: 查询关联PR全量信息
  id: get_pr
  uses: actions/github-script@v7
  with:
    script: |
      const pulls = await github.rest.repos.listPullRequestsAssociatedWithCommit({
        owner: context.repo.owner,
        repo: context.repo.repo,
        commit_sha: context.sha
      })
      if (pulls.data.length > 0) {
        const pr = pulls.data[0]
        // 输出你需要的PR字段供后续步骤使用
        core.setOutput('pr_number', pr.number)
        core.setOutput('pr_title', pr.title)
        core.setOutput('pr_author', pr.user.login)
      }
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

后续发布评论的步骤和方法1完全一致,直接使用输出的pr_number参数即可。

注意事项

  • 以上两种方案仅针对PR合并产生的提交生效,如果是用户直接推送代码到main分支的提交,关联PR查询结果为空,你可以自行添加判断逻辑跳过这类场景。
  • 配置中用到的secrets.GITHUB_TOKEN是GitHub Action默认提供的令牌,默认具备PR信息查询、评论发布权限,无需额外配置,除非你自行修改了Action的默认权限规则。

内容的提问来源于stack exchange,提问作者onkami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 19:45:01