事件 API 可以返回由 GitHub 上的活动触发的不同类型的事件。每个事件响应都包含共享属性,但具有由其事件类型确定的唯一 `payload` 对象。 事件对象通用属性 描述了所有事件共享的属性,并且每个事件类型都描述了特定事件的唯一 `payload` 属性。
事件对象通用属性
从事件 API 端点返回的事件对象具有相同的结构。
事件 API 属性名称 | 类型 | 描述 |
---|---|---|
id | 整数 | 事件的唯一标识符。 |
type | 字符串 | 事件的类型。事件使用 PascalCase 命名。 |
actor | 对象 | 触发事件的用户。 |
actor.id | 整数 | actor 的唯一标识符。 |
actor.login | 字符串 | actor 的用户名。 |
actor.display_login | 字符串 | 用户名的特定显示格式。 |
actor.gravatar_id | 字符串 | actor 的 Gravatar 个人资料的唯一标识符。 |
actor.url | 字符串 | 用于检索用户对象的 REST API URL,其中包含其他用户信息。 |
actor.avatar_url | 字符串 | actor 的个人资料图片的 URL。 |
repo | 对象 | 发生事件的仓库对象。 |
repo.id | 整数 | 仓库的唯一标识符。 |
repo.name | 字符串 | 仓库的名称,包括所有者和仓库名称。例如,`octocat/hello-world` 是 `octocat` 个人帐户拥有的 `hello-world` 仓库的名称。 |
repo.url | 字符串 | 用于检索仓库对象的 REST API URL,其中包含其他仓库信息。 |
payload | 对象 | 事件有效负载对象对于事件类型是唯一的。有关事件 API `payload` 对象,请参阅下面的事件类型。 |
public | 布尔值 | 事件是否对所有用户可见。 |
created_at | 字符串 | 触发事件的日期和时间。它根据 ISO 8601 格式化。 |
org | 对象 | actor 选择执行触发事件的操作的组织。 仅当该属性适用时,才会出现在事件对象中。 |
org.id | 整数 | 组织的唯一标识符。 |
org.login | 字符串 | 组织的名称。 |
org.gravatar_id | 字符串 | 组织的 Gravatar 个人资料的唯一标识符。 |
org.url | 字符串 | 用于检索组织对象的 REST API URL,其中包含其他组织信息。 |
org.avatar_url | 字符串 | 组织的个人资料图片的 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 | 字符串 | 执行的操作。可以是 `created`。 |
comment | 对象 | 提交评论 资源。 |
CreateEvent
创建 Git 分支或标签。有关更多信息,请参阅“Git 数据库的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
CreateEvent 的事件 `payload` 对象
键 | 类型 | 描述 |
---|---|---|
ref | 字符串 | `git ref` 资源,如果 `ref_type` 为 `repository`,则为 `null`。 |
ref_type | 字符串 | 在仓库中创建的 Git ref 对象的类型。可以是 `branch`、`tag` 或 `repository`。 |
master_branch | 字符串 | 仓库的默认分支名称(通常为 `main`)。 |
description | 字符串 | 仓库的当前描述。 |
pusher_type | 字符串 | 可以是 `user` 或部署密钥。 |
DeleteEvent
删除 Git 分支或标签。有关更多信息,请参阅“Git 数据库的 REST API 端点” REST API。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
DeleteEvent 的事件 `payload` 对象
键 | 类型 | 描述 |
---|---|---|
ref | 字符串 | `git ref` 资源。 |
ref_type | 字符串 | 在仓库中删除的 Git ref 对象的类型。可以是 `branch` 或 `tag`。 |
ForkEvent
用户为仓库创建分支。有关更多信息,请参阅“仓库的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
ForkEvent 的事件 `payload` 对象
键 | 类型 | 描述 |
---|---|---|
forkee | 对象 | 创建的 `repository` 资源。 |
GollumEvent
创建或更新 Wiki 页面。有关更多信息,请参阅“关于 Wiki”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
GollumEvent 的事件 `payload` 对象
键 | 类型 | 描述 |
---|---|---|
pages | 数组 | 已更新的页面。 |
pages[][page_name] | 字符串 | 页面的名称。 |
pages[][title] | 字符串 | 当前页面标题。 |
pages[][action] | 字符串 | 对页面执行的操作。可以是 `created` 或 `edited`。 |
pages[][sha] | 字符串 | 页面的最新提交 SHA。 |
pages[][html_url] | 字符串 | 指向 HTML Wiki 页面。 |
IssueCommentEvent
与问题或拉取请求评论相关的活动。活动类型在有效负载对象的 `action` 属性中指定。有关更多信息,请参阅“问题的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
IssueCommentEvent 的事件 `payload` 对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 对评论执行的操作。可以是 `created`、`edited` 或 `deleted` 之一。 |
changes | 对象 | 如果操作为 `edited`,则对评论进行的更改。 |
changes[body][from] | 字符串 | 如果操作为 `edited`,则正文的先前版本。 |
issue | 对象 | 评论所属的 问题。 |
comment | 对象 | 评论 本身。 |
IssuesEvent
与问题相关的活动。活动类型在有效负载对象的 `action` 属性中指定。有关更多信息,请参阅“问题的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
IssuesEvent 的事件 `payload` 对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。可以是 `opened`、`edited`、`closed`、`reopened`、`assigned`、`unassigned`、`labeled` 或 `unlabeled` 之一。 |
issue | 对象 | 问题 本身。 |
changes | 对象 | 如果操作为 `edited`,则对问题的更改。 |
changes[title][from] | 字符串 | 如果操作为edited ,则为操作标题的上一个版本。 |
changes[body][from] | 字符串 | 如果操作为 `edited`,则正文的先前版本。 |
指派者 | 对象 | 指派到或取消指派自问题的可选用户。 |
标签 | 对象 | 添加或删除自问题的可选标签。 |
MemberEvent
与仓库合作者相关的活动。活动类型在有效负载对象的action
属性中指定。有关更多信息,请参阅“合作者的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
MemberEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。可以是added ,表示用户接受了对仓库的邀请。 |
成员 | 对象 | 添加的用户。 |
changes | 对象 | 如果操作为edited ,则为合作者权限的更改。 |
changes[old_permission][from] | 字符串 | 如果操作为edited ,则为合作者的上一个权限。 |
PublicEvent
当私有仓库变为公开时。毫无疑问:这是最好的 GitHub 事件。
PublicEvent 的事件payload
对象
此事件返回一个空的payload
对象。
PullRequestEvent
与拉取请求相关的活动。活动类型在有效负载对象的action
属性中指定。有关更多信息,请参阅“拉取请求的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
PullRequestEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。可以是以下之一:opened 、edited 、closed 、reopened 、assigned 、unassigned 、review_requested 、review_request_removed 、labeled 、unlabeled 和 synchronize 。 |
编号 | 整数 | 拉取请求编号。 |
changes | 对象 | 如果操作为 `edited`,则对评论进行的更改。 |
changes[title][from] | 字符串 | 如果操作为edited ,则为操作标题的上一个版本。 |
changes[body][from] | 字符串 | 如果操作为 `edited`,则正文的先前版本。 |
pull_request | 对象 | 拉取请求本身。拉取请求 |
原因 | 字符串 | 如果操作为dequeued ,则拉取请求从合并队列中删除的原因。 |
PullRequestReviewEvent
与拉取请求审查相关的活动。活动类型在有效负载对象的action
属性中指定。有关更多信息,请参阅“拉取请求的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
PullRequestReviewEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。可以是created 。 |
pull_request | 对象 | 审查相关的拉取请求。 |
审查 | 对象 | 受影响的审查。 |
PullRequestReviewCommentEvent
与拉取请求中统一差异中的拉取请求审查评论相关的活动。活动类型在有效负载对象的action
属性中指定。有关更多信息,请参阅“拉取请求的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
PullRequestReviewCommentEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 对评论执行的操作。可以是created 。 |
changes | 对象 | 如果操作为 `edited`,则对评论进行的更改。 |
changes[body][from] | 字符串 | 如果操作为 `edited`,则正文的先前版本。 |
pull_request | 对象 | 评论所属的拉取请求。 |
comment | 对象 | 评论本身。评论 |
PullRequestReviewThreadEvent
与拉取请求上的评论线程被标记为已解决或未解决相关的活动。活动类型在action
属性中指定。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
PullRequestReviewThreadEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。可以是以下之一:
|
pull_request | 对象 | 线程相关的拉取请求。 |
线程 | 对象 | 受影响的线程。 |
PushEvent
一个或多个提交被推送到仓库分支或标签。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
PushEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
push_id | 整数 | 推送的唯一标识符。 |
大小 | 整数 | 推送中的提交数量。 |
distinct_size | 整数 | 推送中唯一提交的数量。 |
ref | 字符串 | 被推送的完整git ref 。例如:refs/heads/main 。 |
头部 | 字符串 | 推送后ref 上最新提交的 SHA。 |
之前 | 字符串 | 推送前ref 上最新提交的 SHA。 |
提交 | 数组 | 描述已推送提交的提交对象的数组。(该数组最多包含 20 个提交。如有必要,您可以使用提交 API来获取其他提交。此限制仅适用于时间线事件,不适用于 Webhook 传递。) |
commits[][sha] | 字符串 | 提交的 SHA。 |
commits[][message] | 字符串 | 提交消息。 |
commits[][author] | 对象 | 提交的 Git 作者。 |
commits[][author][name] | 字符串 | Git 作者的姓名。 |
commits[][author][email] | 字符串 | Git 作者的电子邮件地址。 |
commits[][url] | 网址 | 指向提交 API 资源的网址。 |
commits[][distinct] | 布尔值 | 此提交是否与之前推送的任何提交不同。 |
ReleaseEvent
与版本相关的活动。活动类型在有效负载对象的action
属性中指定。有关更多信息,请参阅“版本和版本资源的 REST API 端点”REST API。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
ReleaseEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。可以是published 。 |
changes[body][from] | 字符串 | 如果操作为 `edited`,则正文的先前版本。 |
changes[name][from] | 字符串 | 如果操作为edited ,则为名称的上一个版本。 |
发布 | 对象 | 版本对象。版本 |
SponsorshipEvent
与赞助列表相关的活动。活动类型在有效负载对象的action
属性中指定。有关更多信息,请参阅“关于 GitHub 赞助”。
SponsorshipEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。可以是created 。 |
生效日期 | 字符串 | pending_cancellation 和pending_tier_change 事件类型将包含取消或层级更改生效的日期。 |
changes[tier][from] | 对象 | tier_changed 和pending_tier_change 将包含更改或待定更改之前的原始层级。有关更多信息,请参阅待定层级更改有效负载。 |
changes[privacy_level][from] | 字符串 | edited 事件类型包含有关某人编辑赞助以更改隐私时更改的详细信息。 |
WatchEvent
当有人为仓库加星标时。活动类型在有效负载对象的action
属性中指定。有关更多信息,请参阅“活动的 REST API 端点”。
事件对象 包含所有事件通用的属性。每个事件对象都包含一个 `payload` 属性,其值对于每种事件类型都是唯一的。此事件的 `payload` 对象如下所述。
WatchEvent 的事件payload
对象
键 | 类型 | 描述 |
---|---|---|
action | 字符串 | 执行的操作。目前,只能是started 。 |