我试图使用GitHub上的V3 API列出公共存储库的所有版本。以下是我提出的要求:
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个版本的在它的GitHub存储库中,而我只得到其中的7个版本,无法分页通过它们。
我在这里做错了什么,会限制我从GitHub v3 API返回的响应吗?
发布于 2016-01-29 20:36:42
GitHub将其专有发布功能与常规Git标记合并在一起。你在ffmpeg上看到的许多“版本”实际上只是标签而已。
这是一个实际发布的示例。请注意,它包含的信息比标签可以多得多。尽管他们的web显示标记与版本混合在一起,但是GitHub的发布API端点不包括常规标记
这将返回一个版本列表,该列表不包括未与发布相关联的常规Git标记。要获取Git标记的列表,请使用存储库标记API。
使用标签端点就像GitHub建议的那样,会给出更多的结果,并如您所期望的包括一个Link头:
curl -is -H 'Accept: application/vnd.github.v3+json' \
https://api.github.com/repos/ffmpeg/ffmpeg/tagshttps://stackoverflow.com/questions/35093466
复制相似问题