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

如何在GitHub API中获取仓库的已关闭问题数量及总问题数?

不用遍历所有问题,直接获取GitHub仓库的已关闭/总问题数的方法

嘿,这个问题我刚好研究过!其实不用遍历所有问题就能拿到已关闭问题数或总问题数,GitHub API有两个高效的方式可以实现,完全不用挨个拉取issue列表:

1. 使用GitHub Search API

Search API支持按仓库、issue状态等条件筛选,并且会直接返回匹配结果的总数,完美解决你的需求:

  • 要获取已关闭问题数,可以构造查询参数,指定仓库和issue状态为closed:
    curl -H "Accept: application/vnd.github.v3+json" "https://api.github.com/search/issues?q=repo:nodejs/node+is:issue+is:closed"
    
    返回结果里的total_count字段就是该仓库的已关闭问题总数。
  • 要获取总问题数,只需要去掉状态筛选,查询所有issue即可:
    curl -H "Accept: application/vnd.github.v3+json" "https://api.github.com/search/issues?q=repo:nodejs/node+is:issue"
    
    同样看total_count字段,就是仓库的总issue数量(开放+已关闭)。

2. 使用GitHub GraphQL API(更推荐)

GraphQL API可以一次性获取你需要的所有统计数据,不用多次调用接口,效率更高。比如针对nodejs/node仓库,你可以构造这样的查询:

query {
  repository(owner:"nodejs", name:"node") {
    openIssues: issues(states:OPEN) {
      totalCount
    }
    closedIssues: issues(states:CLOSED) {
      totalCount
    }
    totalIssues: issues {
      totalCount
    }
  }
}

执行这个查询后,你会直接得到三个数值:开放问题数、已关闭问题数、总问题数,完全满足需求,而且不用处理大量的issue列表数据。

补充一句:REST API的Repositories > Get接口确实只返回了open_issues_count(开放问题数),但这是因为它主要聚焦仓库的基础元数据,而issue的细分统计交给了更专门的Search和GraphQL接口来处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:51:52