事件 API 可以返回 GitHub 上的活动触发的不同类型事件。 每个事件响应都包含共享属性,但具有由其事件类型确定的唯一 payload 对象。 事件对象公共属性描述所有事件共享的属性,而每个事件类型描述特定事件唯一的 payload 属性。
事件对象公共属性
从事件 API 端点返回的事件对象具有相同的结构。
| 事件 API 属性名称 | 类型 | 说明 | 
|---|---|---|
id | integer | 事件的唯一标识符。 | 
type | string | 事件的类型。 事件使用 PascalCase 作为名称。 | 
actor | object | 触发事件的用户。 | 
actor.id | integer | 执行者的唯一标识符。 | 
actor.login | string | 执行者的用户名。 | 
actor.display_login | string | 用户名的特定显示格式。 | 
actor.gravatar_id | string | 执行者的 Gravatar 个人资料的唯一标识符。 | 
actor.url | string | 用于检索用户对象的 REST API URL,其中包括更多用户信息。 | 
actor.avatar_url | string | 执行者个人资料图像的 URL。 | 
repo | object | 发生事件的仓库对象。 | 
repo.id | integer | 仓库的唯一标识符。 | 
repo.name | string | 仓库名称,包括所有者和仓库的名称。 例如,octocat/hello-world 是 octocat 个人帐户拥有的 hello-world 存储库的名称。 | 
repo.url | string | 用于检索仓库对象的 REST API URL,其中包括更多仓库信息。 | 
payload | object | 事件有效负载对象对于事件类型是唯一的。 有关事件 API payload 对象,请参阅下面的事件类型。 | 
public | boolean | 事件是否对所有用户可见。 | 
created_at | string | 触发事件的日期和时间。 它根据 ISO 8601 设置格式。 | 
org | object | 由行动者选择的组织来执行触发事件的操作。 该属性仅在适用时才会显示在事件对象中。  | 
org.id | integer | 组织的唯一标识符。 | 
org.login | string | 组织名称。 | 
org.gravatar_id | string | 组织的 Gravatar 配置文件的唯一标识符。 | 
org.url | string | 用于检索组织对象的 REST API URL,其中包括更多组织信息。 | 
org.avatar_url | string | 组织的配置文件图像的 URL。 | 
WatchEvent 事件对象示例
此示例显示了使用事件 API 时 WatchEvent 响应的格式。
HTTP/2 200
Link: <https://api.github.com/resource?page=2>; rel="next",
      <https://api.github.com/resource?page=5>; rel="last"
[
  {
    "type": "WatchEvent",
    "public": false,
    "payload": {
    },
    "repo": {
      "id": 3,
      "name": "octocat/Hello-World",
      "url": "https://api.github.com/repos/octocat/Hello-World"
    },
    "actor": {
      "id": 1,
      "login": "octocat",
      "gravatar_id": "",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "url": "https://api.github.com/users/octocat"
    },
    "org": {
      "id": 1,
      "login": "github",
      "gravatar_id": "",
      "url": "https://api.github.com/orgs/github",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif"
    },
    "created_at": "2011-09-06T17:26:27Z",
    "id": "12345"
  }
]
CommitCommentEvent
提交评论已创建。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 适用于提交注释的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
CommitCommentEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 已执行的操作。 可以为 created。 | 
comment | object | 提交注释资源。 | 
CreateEvent
Git 分支或标签已创建。 有关详细信息,请参阅“Git 数据库的 REST API 终结点”。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
CreateEvent 的事件 payload 对象
| 密钥 | 类型 | 描述 | 
|---|---|---|
ref | string | git ref 资源,或者 null(如果 ref_type 是 repository)。 | 
ref_type | string | 在仓库中创建的 Git ref 对象的类型。 可以为 branch、tag 或 repository。 | 
master_branch | string | 存储库默认分支的名称(通常为 main)。 | 
description | string | 仓库的当前描述。 | 
pusher_type | string | 可以是 user 或部署密钥。 | 
DeleteEvent
Git 分支或标签已删除。 有关详细信息,请参阅“Git 数据库的 REST API 终结点”REST API。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
DeleteEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
ref | string | git ref 资源。 | 
ref_type | string | 在存储库中删除的 Git 引用对象的类型。 可以为 branch 或 tag。 | 
ForkEvent
用户复刻仓库。 有关详细信息,请参阅“存储库的 REST API 终结点”。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
ForkEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
forkee | object | 创建的 repository 资源。 | 
GollumEvent
创建或更新 wiki 页面。 有关详细信息,请参阅“关于 wikis”。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
GollumEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
pages | array | 已更新的页面。 | 
pages[][page_name] | string | 页的名称。 | 
pages[][title] | string | - 当前页标题。 | 
pages[][action] | string | - 在该页上执行的操作。 可以是 created 或 edited。 | 
pages[][sha] | string | 页面的最新提交 SHA。 | 
pages[][html_url] | string | 指向 HTML wiki 页面。 | 
IssueCommentEvent
与议题或拉取请求评论相关的活动。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 适用于问题的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
IssueCommentEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 在评论上执行的操作。 可以是 created、edited 或 deleted 之一。 | 
changes | object | 对注释的更改(如果操作为 edited)。 | 
changes[body][from] | string | 正文的先前版本(如果操作为 edited)。 | 
issue | object | 注释所属的议题。 | 
comment | object | 注释本身。 | 
IssuesEvent
与议题相关的活动。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 适用于问题的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
IssuesEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 执行的操作内容. 可以是 opened、edited、closed、reopened、assigned、unassigned、labeled 或 unlabeled 之一。 | 
issue | object | 问题本身。 | 
changes | object | 对问题的更改(如果操作为 edited)。 | 
changes[title][from] | string | 先前版本的标题(如果操作为 edited)。 | 
changes[body][from] | string | 先前版本的正文(如果操作为 edited)。 | 
assignee | object | 已分配或未分配问题的可选用户。 | 
label | object | 从问题中添加或删除的可选标签。 | 
MemberEvent
与仓库协作者相关的活动。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 协作者的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
MemberEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 执行的操作内容. 可以是 added 以指示用户接受了加入存储库的邀请。 | 
member | object | 已添加的用户。 | 
changes | object | 如果操作是 edited,则是对参与者权限的更改。 | 
changes[old_permission][from] | string | 如果操作是 edited,则为协作者以前的权限。 | 
PublicEvent
当私有仓库公开时。
PublicEvent 的事件 payload 对象
此事件返回一个空 payload 对象。
PullRequestEvent
与拉取请求相关的活动。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 用于拉取请求的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
PullRequestEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 执行的操作内容. 可以是 opened、edited、closed、reopened、assigned、unassigned、review_requested、review_request_removed、labeled、unlabeled 和 synchronize 其中之一。 | 
number | integer | 拉取请求号。 | 
changes | object | 对注释的更改(如果操作为 edited)。 | 
changes[title][from] | string | 先前版本的标题(如果操作为 edited)。 | 
changes[body][from] | string | 先前版本的正文(如果操作为 edited)。 | 
pull_request | object | 拉取请求 本身。 | 
PullRequestReviewEvent
与拉取请求审查相关的活动。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 用于拉取请求的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
PullRequestReviewEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 执行的操作内容. 可以为 created。 | 
pull_request | object | 与审查相关的拉取请求。 | 
review | object | 受影响的审查。 | 
PullRequestReviewCommentEvent
与拉取请求统一差异中的拉取请求审查评论相关的活动。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 用于拉取请求的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
PullRequestReviewCommentEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 在评论上执行的操作。 可以为 created。 | 
changes | object | 对注释的更改(如果操作为 edited)。 | 
changes[body][from] | string | 正文的先前版本(如果操作为 edited)。 | 
pull_request | object | 注释所属于的拉取请求。 | 
comment | object | 注释本身。 | 
PullRequestReviewThreadEvent
与拉取请求的批注线程相关的活动标记为已解决或未解决。 活动类型在有效负载对象的 action 属性中指定。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
PullRequestReviewThreadEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 执行的操作内容. 可以是以下选项之一:
  | 
pull_request | object | 与线程相关的拉取请求。 | 
thread | object | 受影响的线程。 | 
PushEvent
一个或多个提交被推送到仓库分支或标记。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
PushEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
push_id | integer | 推送的唯一标识符。 | 
size | integer | 推送中的提交数。 | 
distinct_size | integer | 推送中不同提交的数量。 | 
ref | string | 推送的完整 git ref。 示例:refs/heads/main。 | 
head | string | 推送之后在 ref 上最近提交的 SHA。 | 
before | string | 推送之前在 ref 上最近提交的 SHA。 | 
commits | array | 描述所推送提交的提交对象数组。 (该数组最多包含 20 个提交。 如有必要,可使用提交 API 获取更多提交。 此限制仅适用于时间表事件,而不适用于 web 挂钩递送。) | 
commits[][sha] | string | 提交的 SHA。 | 
commits[][message] | string | 提交消息。 | 
commits[][author] | object | 提交的 Git 作者。 | 
commits[][author][name] | string | Git 作者的名称。 | 
commits[][author][email] | string | Git 作者的电子邮件地址。 | 
commits[][url] | url | 指向提交 API 资源的 URL。 | 
commits[][distinct] | boolean | 此提交是否与之前推送的任何提交不同。 | 
ReleaseEvent
与发行版相关的活动。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 发布和发布资产的 REST API 终结点 REST API。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
ReleaseEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 执行的操作内容. 可以为 published。 | 
changes[body][from] | string | 如果操作是 edited,则为先前版本的正文。 | 
changes[name][from] | string | 如果操作是 edited,则为先前版本的名称。 | 
release | object | release 对象。 | 
WatchEvent
当有人标星仓库时。 活动类型在有效负载对象的 action 属性中指定。有关详细信息,请参阅 活动的 REST API 终结点。
事件对象包含所有事件的通用属性。 每个事件对象都包含 payload 属性,并且值对于每个事件类型而言都是唯一的。 此事件的 payload 对象描述如下。
WatchEvent 的事件 payload 对象
| 密钥 | 类型 | 说明 | 
|---|---|---|
action | string | 执行的操作内容. 目前只能是 started。 |