Skip to content
On this page

GitHub REST API 参考

参考来源:REST API

可以用来做项目架构文档的参考。 并包括了很多常见模块的说明:

还有很多内容,最好去看原文档。

Design

GitHub OpenAPI可用于在设计自己的 REST 接口时进行参考。

例如用户相关操作:

  • 获取用户订阅列表:GET /users/{username}/subscriptions
  • 获取用户收藏列表:GET /users/{username}/starred
  • 某组织(org)的黑名单内用户(被阻止的用户):GET /orgs/{org}/blocks
  • 用户所加入的组织:GET /users/{username}/orgs
  • 创建一个项目:POST /user/projects

更多请参考GitHub OpenAPI列出的接口。

可以看出其设计语义化来接口,操作主题在前,操作在中间,被操作者在最后。 并且疑似存在类似上下级结构关系,不同主体有着不同的上下级结构。 例如用户与项目,用户为主体时表现为用户加入的项目,项目为主体时表现为项目下的成员。

另外,其主体均使用了复数形式进行表示。有些特定的修饰词也可以作为路由的一部分,例如/branches为分支列表,/branches/protected表示“受保护的分支列表”。

Others

  1. 在翻阅这些API列表时,找到一个GET /repos/{owner}/{repo}/codespaces/new的API,其作用为「获取用户使用存储库创建的代码空间的默认属性」。也就是说,GitHub 设计了一个提供给前端界面创建代码空间使用的接口,其包含了该界面(或者说代码空间这个主体)用到的所有默认属性及其默认值。
  2. GET /gists/{gist_id}/star在 GitHub 里表示获取该主体是否被当前登录用户 star,而利用PUT /gists/{gist_id}/star来对主体进行 star 操作,DELETE 方法则是取消 star

Names

以下是一些从中吸纳的主体名称列表:

ResourceCommentDescription
users用户
orgs / organizations组织
permissions权限
groups群组
downloads可下载文件
secrets密钥
variables变量
owner拥有者
caches缓存
repositories / repos仓库/仓储
environments环境
workflows工作流
jobs作业,流程作业
events事件
feeds源摘要
subscribers订阅人
starred已收藏
installations安装
app应用
billing账单,计费
branches分支
teams团队
alerts警告/警报
instances实例
analyses分析
databases数据库
languages语言
collaborators协作者
invitations邀请在GitHub这里,表现为“可邀请的xxx”,xxx由 invitations 前的主体决定。
例如:/repos/{owner}/{repo}/invitations为「所有当前打开的存储库邀请」
comments注释,评论
statuses状态
snapshots快照
keys密钥
deployments部署
policies策略
emojisEmoji
blobs二进制大对象Git Blob(二进制大对象)是用于将每个文件的内容存储在仓库中的对象类型,文件的 SHA-1 哈希在 Blob 对象中计算和存储。
tags标记
refs引用
templates模板
interactions交互
assignees代理人类似管理员
contributors建设者有贡献的人
collaborators合作者
authors作者
issues问题、议题
labels标签
milestones里程碑
licenses许可证
versions版本
meta元数据
profile配置文件,资料
metrics指标
traffic趋势一般指24小时、一周内、14天内某统计指标的变化趋势
stats统计信息
views浏览、访问
blocks被阻止的人,黑名单,无权限的人
members成员
membership成员资格、成员状态
reviews审查
dismissals驳回
discussions讨论
assets资源,资产
releases发行,发布
dispatches事件分发
forks分叉
topics主题
followers粉丝
following正在关注的人
attempts重试
usage使用情况
logs日志
runners运行器
stargazers观星者,对当前主体标星的人
notifications通知
packages包,库
marketplace应用市场
deliveries交付