从Github企业API

时间:2018-06-07 16:00:38

标签: github-api github-enterprise

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

issue search

我尝试过以下命令:curl -H "Authorization: token myToken" "https://github.mydomain.com/api/v3/repos/owner/repo/issues?state=all&since=2015-09-01" > issues.json但这并不能满足我的需要,因为根据Api docs的参数since被描述为:

  

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

因此,经过大量谷歌搜索和阅读Github API文档,我发现了它。我需要的是Github Search API。我做的第一件事是弄清楚this stackoverflow post中描述的企业API上可用的端点。所以我使用以下命令来做到这一点:

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),直到我得到所有这些。在我的情况下,我每次更改页码时都使用上面的URL做了7个请求。有关详细信息,请参阅Github docs on Pagination
  • &sort=created&order=asc:按创建日期按升序排序(最早的第一个)。请参阅Github Search APISearching Issues
  • q=repo:[Owner]/[RepoName]+is:issue+created:>=2015-09-01:形成一个搜索查询(q=),将搜索范围限制为从2015-09-01和(is:issue)创建的问题(created:>=2015-09-01)回购所有者/姓名(repo:[Owner]/[RepoName]

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