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

如何用GitHub API获取ropensci/drake指定标签的全部Issue(含已关闭)

解决GitHub API获取指定标签+全状态Issue的问题

别担心,我一步步教你怎么修改查询,完全适合初学者复用~

首先,GitHub API获取仓库Issue的核心端点是 /repos/{owner}/{repo}/issues,你需要在这个URL后面添加两个关键参数:labels(指定你要的标签)和state(指定Issue状态),参数之间用&分隔。

直接可用的API请求示例

用curl命令(复制就能跑)

curl "https://api.github.com/repos/ropensci/drake/issues?labels=Frequently%20Asked%20Question&state=all"

用Python requests库(适合脚本调用)

import requests

# 基础API地址
url = "https://api.github.com/repos/ropensci/drake/issues"
# 定义查询参数
params = {
    "labels": "Frequently Asked Question",  # 标签名称直接写带空格的就行,requests会自动处理URL编码
    "state": "all"  # 可选值:open(默认)、closed、all,选all就包含已关闭的Issue
}

# 发送请求
response = requests.get(url, params=params)
# 解析返回的JSON数据
issues = response.json()

# 可以打印第一条Issue的标题验证结果
if issues:
    print(issues[0]["title"])

参数位置的详细说明

你之前的查询应该只加了labels参数,比如:

https://api.github.com/repos/ropensci/drake/issues?labels=Frequently%20Asked%20Question

要添加state参数,只需要在**第一个参数后面加&,然后跟上state=all**就行。这里的规则很简单:

  • URL中?是参数的起始标记
  • 多个参数用&分隔
  • state=all就是告诉API返回所有状态的Issue(开放+已关闭)

几个新手注意点

  • 标签名称要完全匹配:比如如果仓库里的标签是缩写或者大小写不同(比如FAQ),要改成对应的名称,否则会查不到结果
  • 速率限制:未登录状态下GitHub API每小时只能请求60次,如果遇到403错误,可以考虑生成一个个人访问令牌(PAT)放在请求头里,提升请求限额
  • 分页处理:如果符合条件的Issue超过30条,API会自动分页,你需要根据返回头里的Link字段获取下一页的地址,继续请求才能拿到全部数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:57:44