使用GitHub API筛选Issue:日期范围查询失败,请求排查原因
GitHub API 日期筛选命令错误分析及修正
两个命令的问题点
第一个命令的问题
- API域名路径错误:GitHub API的正确域名是
api.github.com,你写的https://github.com/api/v3/...路径不正确,会导致请求无法正确到达API服务。 - 若目标是筛选open状态Issue,
state=all应改为state=open,不过这属于测试阶段的次要问题,核心错误是路径不对。
第二个命令的问题
- API域名路径错误:同样犯了域名路径错误,需改为
api.github.com开头的路径。 - 查询参数格式错误:GitHub API的日期范围参数需用
=而非:,正确格式是created=2023-06-02..2023-07-13,冒号会被当作路径的一部分,导致参数无法被API识别。
修正后的日期筛选命令
方法一:API参数筛选(推荐,减少本地处理)
直接通过GitHub API的查询参数完成日期和状态筛选,无需jq二次处理:
curl \ -H "Accept: application/vnd.github.v3+json" \ -H "Authorization: Bearer ${GHE_TOKEN}" \ "https://api.github.com/repos/alchemy/storage/issues?state=open&created=2023-06-01..2023-07-13"
方法二:jq本地筛选(修正路径后)
如果坚持用jq处理,先确保API请求正确拿到数据:
curl \ -H "Accept: application/vnd.github.v3+json" \ -H "Authorization: Bearer ${GHE_TOKEN}" \ https://api.github.com/repos/alchemy/storage/issues?state=open | jq '.[] | select(.created_at >= "2023-06-01" and .created_at <= "2023-07-13")'
满足所有条件的完整命令
结合你需要的open状态、日期范围、sss标签、标题含指定关键词,可以用GitHub API的搜索接口组合所有筛选条件:
curl \ -H "Accept: application/vnd.github.v3+json" \ -H "Authorization: Bearer ${GHE_TOKEN}" \ "https://api.github.com/search/issues?q=repo:alchemy/storage+state:open+created:2023-06-01..2023-07-13+label:sss+title:指定关键词"
注意:将指定关键词替换为你实际要匹配的标题关键词,如果关键词包含空格,需用%20编码或用引号包裹整个URL。
内容的提问来源于stack exchange,提问作者ambikanair
相关产品推荐
相关产品推荐

