事件 API 可以返回 GitHub 上的活动触发的不同类型事件。 每个事件响应都包含共享属性,但具有由其事件类型确定的唯一 payload
对象。 事件对象公共属性描述所有事件共享的属性,而每个事件类型描述特定事件唯一的 payload
属性。
事件对象公共属性
从事件 API 端点返回的事件对象具有相同的结构。
事件 API 属性名称 | 类型 | 说明 |
---|---|---|
id | string | 事件的唯一标识符。 |
type | string | 事件的类型。 事件使用 PascalCase 作为名称。 |
actor | object | 触发事件的用户。 |
actor.id | string | 执行者的唯一标识符。 |
actor.login | string | 执行者的用户名。 |
actor.display_login | string | 用户名的特定显示格式。 |
actor.gravatar_id | string | 执行者的 Gravatar 个人资料的唯一标识符。 |
actor.url | string | 用于检索用户对象的 REST API URL,其中包括更多用户信息。 |
actor.avatar_url | string | 执行者个人资料图像的 URL。 |
repository | object | 发生事件的仓库对象。 |
repository.id | string | 仓库的唯一标识符。 |
repository.name | string | 仓库名称,包括所有者和仓库的名称。 例如,octocat/hello-world 是 octocat 个人帐户拥有的 hello-world 存储库的名称。 |
repository.url | string | 用于检索仓库对象的 REST API URL,其中包括更多仓库信息。 |
payload | object | 事件有效负载对象对于事件类型是唯一的。 有关事件 API payload 对象,请参阅下面的事件类型。 |
public | boolean | 事件是否对所有用户可见。 |
created_at | string | 触发事件的日期和时间。 它根据 ISO 8601 设置格式。 |
org | object | 由行动者选择的组织来执行触发事件的操作。 该属性仅在适用时才会显示在事件对象中。 |
org.id | string | 组织的唯一标识符。 |
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": {
},
"repository": {
"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
当私有仓库公开时。 毫无疑问:最好的 GitHub Enterprise Server 事件。
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 。 |