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

如何通过自动化流程关联不同仓库中的PR?

问题描述

我有两个仓库A和B,已在仓库A的PR上配置了GitHub Action:它会触发仓库B中的工作流,创建一个与A的变更相关的PR。我希望将这两个PR关联起来,让发起A中PR的人能自动找到B中对应的PR(比如通过链接)。

已尝试方案
  • 通过工作流传递A的PR编号,自动在B的PR中发布格式为<org>/<repo>#<PR-number>的链接评论,同时变更的提交信息和PR描述中也包含该链接,使用的工具是add-pr-comment。但问题是,这种自动评论不会在A的PR中生成“此PR在此处被提及”的提示,和用户手动评论的效果不一样。
需求总结
  • A中的PR会生成B中的PR,希望A的相关人员能看到对应的B中PR,不管是通过A中的评论,还是B中的评论在A中生成引用都可以。
  • 尝试过通过B的评论触发A的引用但未成功,推测和自动评论与用户评论的差异有关。
可行实现方法

方法1:直接在仓库A的PR中添加B的PR链接评论

既然在B的PR中添加A的链接无法触发提及提示,反过来操作:当B的PR创建完成后,通过GitHub Action向A的对应PR发送一条包含B的PR链接的评论,让A的PR相关人员直接看到关联的B仓库PR。

具体操作步骤:

  1. 在仓库B的工作流中,成功创建PR后,获取B的PR编号并保存为环境变量。
  2. 使用跨仓库权限的GitHub Token(比如Personal Access Token,需要同时拥有A、B仓库的评论权限),调用评论工具向A的目标PR发送评论。
    示例代码片段:
    - name: 评论关联的B仓库PR到A的PR
      uses: mshick/add-pr-comment@v2
      with:
        repo-token: ${{ secrets.CROSS_REPO_PAT }}
        repo: <你的组织>/A
        number: ${{ env.A_PR_NUMBER }} # 从A的工作流传递过来的PR编号
        message: |
          对应的B仓库PR:<你的组织>/B#${{ env.B_PR_NUMBER }}
    

方法2:修正B仓库PR的引用规则,触发A仓库的提及提示

GitHub的PR提及提示需要满足几个关键条件,之前的自动评论未生效可能是这些条件没达标:

  1. 权限足够:自动评论使用的Token对应的账号必须拥有仓库A的读取权限(默认的GITHUB_TOKEN跨仓库权限不足,建议用PAT)。
  2. 引用格式正确:将A的PR引用放在普通文本中,不要放在代码块里,比如直接写对应的A仓库PR:<你的组织>/A#123,而非用```包裹。
  3. 扫描范围覆盖:除了评论,还可以在B的PR描述(body)中加入A的PR引用,GitHub会扫描PR描述内容,满足条件后会在A的PR中生成提及提示。

方法3:利用GitHub API手动触发提及

如果上述方法仍不生效,可以直接调用GitHub的Issues API,在A的PR中创建一条评论,或者在B的PR中创建评论后,通过API触发GitHub的引用扫描。不过这种方法相对复杂,一般前两种方法就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:05:01