对于常用Github的用户来说,经常有一些自动化的需求。比如我的需求是定时备份Github的issues和comments到本地。以下为Github的API的使用参考
基本访问路径 (Root Endpoints)
首先!访问的链接最后不能有/。如https://api.github.com/users/solomonxie是可以访问到我个人信息的,但是https://api.github.com/users/solomonxie/就不行了,唯一不同是多了一个/.
其次!不同于一般URL访问,GIthub的API访问链接是区分大小写的!
个人主要信息。 https://api.github.com/users/用户名,得到数据如下图:
image
个人所有repo。https://api.github.com/users/用户名/repos。会得到一个repo的JSON格式列表。
repo详细信息。https://api.github.com/repos/用户名/仓库名。repo的路径就开始和个人信息不同了。
获取某个repo的内容列表。https://api.github.com/repos/solomonxie/gists/contents,注意这只会返回根目录的内容。
获取repo中子目录的内容列表。https://api.github.com/repos/solomonxie/gists/contents/目录名。一定要注意这里一定要完全遵循原文件名的大小写,否则无法获得信息。如果是更深层的内容,则在链接列按照顺序逐级写上目录名称。
获取repo中某文件信息(不包括内容)。https://api.github.com/repos/solomonxie/gists/contents/文件路径。文件路径是文件的完整路径,区分大小写。只会返回文件基本信息。
获取某文件的原始内容(Raw)。1. 通过上面的文件信息中提取download_url这条链接,就能获取它的原始内容了。2. 或者直接访问:https://raw.githubusercontent.com/用户名/仓库名/分支名/文件路径
repo中所有的commits列表。https://api.github.com/repos/用户名/仓库名/commits。
某一条commit详情。https://api.github.com/repos/用户名/仓库名/commits/某一条commit的SHA
issues列表。https://api.github.com/repos/用户名/仓库名/issues。
某条issue详情。https://api.github.com/repos/用户名/仓库名/issues/序号。issues都是以1,2,3这样的序列排号的。
某issue中的comments列表。https://api.github.com/repos/用户名/仓库名/issues/序号/comments。
某comment详情。https://api.github.com/repos/用户名/仓库名/issues/comments/评论详情的ID。其中评论ID是从issues列表中获得的。
查询参数 (Parameters)
如果在上面基本链接中加入查询条件,那么返回的数据就是filtered,过滤了的。比如要求只返回正在开放的issues,或者让列表数据分页显示。常用如下:
分页功能。格式是?page=页数&per_page=每页包含数量。
如https://api.github.com/users/solomonxie/repos?page=2&per_page=3
issues状态。格式是?state=状态。
如https://api.github.com/repos/solomonxie/solomonxie.github.io/issues?state=closed