6

我想获取使用 Github 企业 api 在特定日期范围内创建的问题列表。我想要做的相当于在问题页面上进行搜索,如下图所示:

问题搜索

我尝试了以下命令:curl -H "Authorization: token myToken" "https://github.mydomain.com/api/v3/repos/owner/repo/issues?state=all&since=2015-09-01" > issues.json但这并没有给我我需要的东西,因为since根据Api 文档的参数描述为:

仅返回在此时间或之后更新的问题。这是 ISO 8601 格式的时间戳:YYYY-MM-DDTHH:MM:SSZ

提前致谢!

4

1 回答 1

7

因此,经过大量谷歌搜索和阅读 Github API 文档后,我想通了。我需要的是Github Search API。我做的第一件事是找出我的企业 API 上哪些端点可供我使用,如此 stackoverflow 帖子中所述。所以我使用以下命令来做到这一点:

curl -H "Authorization: token [myToken]" "https://github.mydomain.com/api/v3/"

响应中返回的端点之一是:

"issue_search_url": "https://github.mydomain.com/api/v3/search/issues?q={query}{&page,per_page,sort,order}"

使用该端点,我构建了以下命令,满足了我的需求:

curl -H "Authorization: token [myToken]" "https://github.mydomain.com/api/v3/search/issues?page=1&per_page=100&sort=created&order=asc&q=repo:[Owner]/[RepoName]+is:issue+created:>=2015-09-01"

让我们分解参数(在 ? 符号之后的任何内容):

  • page=1&per_page=100:此请求的默认结果数为每页 30 个。就我而言,我有 664 个结果。因此,我需要执行多个请求,指定哪个页面(page=1)以及我想要该请求()的多少结果,per_page=100直到我得到所有结果。就我而言,每次更改页码时,我都会使用上述网址进行 7 次请求。有关更多信息,请参阅Github 文档上的分页
  • &sort=created&order=asc: 按创建日期升序排序(最早的在前)。请参阅Github 搜索 API搜索问题
  • q=repo:[Owner]/[RepoName]+is:issue+created:>=2015-09-01:形成一个搜索查询 ( q=),将搜索限制为is:issue从 2015 年 9 月 1 日创建的问题 ( ) 和 ( created:>=2015-09-01) 在回购所有者/名称 ( repo:[Owner]/[RepoName])

希望这对其他人有所帮助,因为我发现 Github api 文档不是很清楚。

于 2018-06-07T20:10:01.570 回答