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

如何在GitHub Actions中获取Pull Request评论内容?

问题分析与解决办法

你遇到的核心问题是workflow_dispatch事件本身不携带评论上下文,同时权限和Action使用细节也可能影响结果,具体原因和解决方向如下:

1. 为什么直接取github.event.comment.body为空

workflow_dispatch是手动触发的事件,其上下文(github.event)里根本不存在comment相关字段——只有当工作流由issue_comment或pull_request_review_comment这类评论触发的事件启动时,github.event.comment才会有数据。所以你用${{ github.event.comment.body }}自然取不到内容。

2. find-comment Action无输出的可能原因

  • 权限不足:虽然配置了read-all,但部分场景下明确指定权限更稳妥,建议把权限改为:
    permissions:
      pull-requests: read
      issues: read
    
    确保工作流有读取PR/issue评论的权限。
  • 参数匹配问题:检查issue-number: 1对应的PR确实存在包含bla的评论,若评论内容或编号不对,Action自然找不到匹配项。
  • Token权限:触发工作流用的sometoken需要有仓库的repo权限,否则无法通过API读取评论数据。

3. 可行的解决方案

方案一:改用评论触发事件(推荐,若业务允许)

如果你的需求是有新评论时自动获取内容,把工作流触发条件改成issue_comment:

on:
  issue_comment:
    types: [created]

这时github.event.comment.body就能直接拿到评论内容,无需额外调用Action。

方案二:在workflow_dispatch中主动获取评论(适合手动触发场景)

像你后来用Python脚本的思路,直接调用GitHub API获取指定PR的评论,示例步骤:

steps:
  - name: 获取PR第一条评论
    env:
      GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      PR_NUMBER: 1
    run: |
      # 获取第一条issue评论(PR属于特殊issue)
      curl -H "Authorization: token $GH_TOKEN" \
           "https://api.github.com/repos/org/repo/issues/$PR_NUMBER/comments?per_page=1"

这样不受事件上下文限制,只要token有权限就能拿到数据。

补充:关于checkout的疑问

你提到的“不先checkout无法实现”其实不准确——获取评论是通过GitHub API操作,和是否checkout仓库代码无关。只有当你需要从代码里读取PR编号等关联信息时,才需要checkout代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:27:19