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

如何用GitHub v4 API(GraphQL)获取评论的各类型Reaction计数?

通过GitHub GraphQL API获取评论各类Reaction计数方案

没问题,我来帮你搞定这个需求!GitHub GraphQL API提供了非常直接的方式来获取评论的每种Reaction类型的用户计数,下面是具体实现方案:

核心思路

GitHub的IssueComment(针对Issue评论)或PullRequestReviewComment(针对PR评论)对象都包含reactions字段,我们可以通过groupBy: REACTION_TYPE来按反应类型分组,一次性获取所有8种类型的计数,不用逐个查询,效率很高。

针对Issue评论的查询示例

假设你要查询某个仓库中Issue的指定评论(比如你提到的#2190,这里的数字是评论的databaseId),可以用以下查询:

query GetCommentReactions {
  repository(owner: "你的仓库所有者", name: "仓库名称") {
    issue(number: 对应Issue的编号) {
      comment(databaseId: 2190) {
        body
        reactions(groupBy: REACTION_TYPE, orderBy: {field: CONTENT, direction: ASC}) {
          nodes {
            content
            users {
              totalCount
            }
          }
        }
      }
    }
  }
}

参数说明

  • owner: 替换为仓库的所有者用户名(比如facebook)
  • name: 替换为仓库名称(比如react)
  • number: 替换为该评论所属的Issue编号
  • databaseId: 替换为目标评论的编号(就是你看到的#2190里的2190)

针对PR评论的查询示例

如果目标评论是Pull Request里的评审评论,只需要调整查询路径即可:

query GetPRCommentReactions {
  repository(owner: "你的仓库所有者", name: "仓库名称") {
    pullRequest(number: 对应PR的编号) {
      comments(filter: {databaseId: 2190}) {
        nodes {
          body
          reactions(groupBy: REACTION_TYPE, orderBy: {field: CONTENT, direction: ASC}) {
            nodes {
              content
              users {
                totalCount
              }
            }
          }
        }
      }
    }
  }
}

注意事项

  • 权限要求: 你需要一个带有repo权限的GitHub个人访问令牌(PAT),请求时在HTTP头中添加Authorization: bearer <你的PAT>
  • 返回结果: 查询返回的reactions.nodes里,每个节点会包含content(比如THUMBS_UP)和users.totalCount(对应该反应的用户数量),正好对应你需要的8种类型的计数
  • 拓展查询: 要是你还想获取每个反应的具体用户信息,可以把users { totalCount }换成users { nodes { login } }来拿到用户登录名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 13:22:39