无法在GitHub V3 API中

时间:2016-01-29 20:28:26

标签: github github-api

我正在尝试使用他们的V3 API在GitHub上列出公共存储库的所有版本。这是我正在提出的要求:

curl -is -H 'Accept: application/vnd.github.v3+json' \
    https://api.github.com/repos/ffmpeg/ffmpeg/releases

我收到的回复标题是:

HTTP/1.1 200 OK
Server: GitHub.com
Date: Fri, 29 Jan 2016 20:23:15 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 29612
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 19
X-RateLimit-Reset: 1454099558
Cache-Control: public, max-age=60, s-maxage=60
ETag: "947039722a1073c5279a9fd39d00c0bf"
Vary: Accept
X-GitHub-Media-Type: github.v3; format=json
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
Vary: Accept-Encoding
X-Served-By: b0ef53392caa42315c6206737946d931
X-GitHub-Request-Id: XXXXXXXXXXXXXXXXXXXXXXXXXXXX

请注意缺少Link响应标头?在响应正文中,我只回过7个版本,我似乎无法通过手动指定?page=N查询参数来向前或向后分页。

对于某些背景,FFmpeg有大约226个版本in its GitHub repository,而我只有大约7个版本,无法通过它们进行分页。

我在这里做错了什么会限制我的回复来自GitHub v3 API?

1 个答案:

答案 0 :(得分:0)

GitHub将其专有的Releases功能与常规Git标签混合在一起。您在ffmpeg中看到的许多“版本”实际上只是标签。

这是example of a real release。请注意它包含的信息比a tag does多得多。尽管他们的网页用户界面显示标签与版本混合在一起,但GitHub的release API endpoint doesn't include regular tags

  

这将返回一个版本列表,其中不包含尚未与版本关联的常规Git标记。要获取Git标记列表,请使用Repository Tags API

使用tags endpoint作为GitHub建议会提供更多结果,并包含您期望的Link标题:

curl -is -H 'Accept: application/vnd.github.v3+json' \
    https://api.github.com/repos/ffmpeg/ffmpeg/tags