Events API 可以返回因 GitHub 活动触发的不同类型的事件。每个事件响应都包含共享属性,但其 payload 对象会依据事件类型而异。事件对象通用属性 描述了所有事件共享的属性,而每种事件类型则描述了该事件特有的 payload 属性。
事件对象通用属性
从 Events API 端点返回的事件对象具有相同的结构。
| 事件 API 属性名称 | 类型 | 描述 |
|---|---|---|
id | integer | 事件的唯一标识符。 |
type | string | 事件类型。事件名称使用 PascalCase(大驼峰)格式。 |
actor | object | 触发该事件的用户。 |
actor.id | integer | 演员(actor)的唯一标识符。 |
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 | 事件的 payload 对象因事件类型而异。请参见下方各事件类型的事件 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 示例事件对象
此示例展示了使用 Events API 时 WatchEvent 响应的格式。
HTTP/2 200
Link: <https://api.github.com/resource?page=2>; rel="next",
<https://api.github.com/resource?page=5>; rel="last"
[
{
"id": "12345",
"type": "WatchEvent",
"actor": {
"id": 1,
"login": "octocat",
"display_login": "octocat",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"avatar_url": "https://github.com/images/error/octocat_happy.gif"
},
"repo": {
"id": 3,
"name": "octocat/Hello-World",
"url": "https://api.github.com/repos/octocat/Hello-World"
},
"payload": {
"action": "started"
},
"public": false,
"created_at": "2011-09-06T17:26:27Z",
"org": {
"id": 1,
"login": "github",
"gravatar_id": "",
"url": "https://api.github.com/orgs/github",
"avatar_url": "https://github.com/images/error/octocat_happy.gif"
},
}
]
CommitCommentEvent
创建了提交评论。活动类型在 payload 对象的 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 资源分支,若 ref_type 为 repository 则为 null。 |
ref_type | string | 在仓库中创建的 Git 引用对象类型。可能为 branch(分支)、tag(标签)或 repository(仓库)。 |
full_ref | string | 完整的引用资源,对于分支,其格式为 refs/heads/<branch_name>。 |
master_branch | string | 仓库默认分支的名称(通常为 main)。 |
description | string | 仓库的当前描述。 |
pusher_type | string | 可以是 user(用户)或部署钥匙。 |
DeleteEvent
删除了 Git 分支或标签。更多信息,请参见 Git 数据库的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
DeleteEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
ref (引用) | string | Git ref 资源分支。 |
ref_type | string | 在仓库中删除的 Git 引用对象类型。可以是 branch(分支)或 tag(标签)。 |
full_ref | string | 完整的引用资源,对于分支,其格式为 refs/heads/<branch_name>。 |
pusher_type | string | 可以是 user(用户)或部署钥匙。 |
DiscussionEvent
在仓库中创建了讨论。更多信息,请参见 GitHub Discussions 文档。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
DiscussionEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。可以是 created。 |
discussion | object | 已创建的讨论。 |
ForkEvent
用户 fork 了仓库。更多信息,请参见仓库的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
ForkEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。可能为 forked。 |
forkee | object | 创建的 repository(仓库)资源。 |
GollumEvent
创建或更新了 wiki 页面。更多信息,请参见关于 wiki 的文档。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
GollumEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
pages | 数组 (array) | 已更新的页面。 |
pages[][page_name] | string | 页面名称。 |
pages[][title] | string | 当前页面标题。 |
pages[][summary] | string | 页面的可选备注。可以为 null。 |
pages[][action] | string | 对页面执行的操作。可以是 created(创建)或 edited(编辑)。 |
pages[][sha] | string | 页面最新提交的 SHA。 |
pages[][html_url] | string | 指向 HTML wiki 页面。 |
IssueCommentEvent
与 issue 或 pull request 评论相关的活动。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见 issue 的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
IssueCommentEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 对评论执行的操作。可以是 created(创建)。 |
议题 | object | 评论所属的 issue。 |
comment | object | 评论本身。 |
IssuesEvent
与 issue 相关的活动。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见 issue 的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
IssuesEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。可以是 opened(打开)、closed(关闭)或 reopened(重新打开)。 |
议题 | object | issue 本身。 |
assignee | object | 被指派或取消指派的可选用户。 |
指派人 | 数组 (array) | 描述 issue 上指派者的可选 assignee 对象数组。 |
label | object | 在 issue 上添加或移除的可选标签。 |
labels | 数组 (array) | 描述 issue 上标签的可选标签对象数组。 |
MemberEvent
与仓库协作者相关的活动。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见协作者的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
MemberEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。可以是 added,表示用户接受了对仓库的邀请。 |
member | object | 被添加的用户。 |
PublicEvent
私有仓库变为公开时。
PublicEvent 的 payload 对象
此事件返回空的 payload 对象。
PullRequestEvent
与 pull request 相关的活动。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见 pull request 的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
PullRequestEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。可以是 opened(打开)、closed(关闭)、merged(合并)、reopened(重新打开)、assigned(指派)、unassigned(取消指派)、labeled(加标签)或 unlabeled(去标签)。 |
number | integer | 拉取请求编号。 |
拉取请求 | object | pull request 本身。 |
assignee | object | 被指派或取消指派的可选用户。 |
指派人 | 数组 (array) | 描述 issue 上指派者的可选 assignee 对象数组。 |
label | object | 如果操作为 labeled 或 unlabeled,则为在 issue 上添加或移除的可选标签。 |
labels | 数组 (array) | 如果操作为 labeled 或 unlabeled,则为描述 pull request 上标签的可选标签对象数组。 |
PullRequestReviewEvent
与 pull request 审查相关的活动。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见 pull request 的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
PullRequestReviewEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。可以是 created(创建)、updated(更新)或 dismissed(驳回)。 |
拉取请求 | object | 该审查所属的 pull request。 |
review | object | 受影响的审查。 |
PullRequestReviewCommentEvent
与 pull request 合并差异(unified diff)中的审查评论相关的活动。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见 pull request 的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
PullRequestReviewCommentEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 对评论执行的操作。可以是 created(创建)。 |
拉取请求 | object | 评论所属的 pull request。 |
comment | object | 评论本身。 |
PushEvent
一个或多个提交被推送到仓库的分支或标签。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
PushEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
repository_id | integer | 推送发生的仓库的唯一标识符。 |
push_id | integer | 推送的唯一标识符。 |
ref (引用) | string | 完整的被推送的 git ref。例如:refs/heads/main。 |
head | string | 推送后 ref 上最新提交的 SHA。 |
before | string | 推送前 ref 上最新提交的 SHA。 |
ReleaseEvent
与发布(release)相关的活动。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见发布及发布资产的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
ReleaseEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。可以是 published(已发布)。 |
发布 | object | release 对象。 |
WatchEvent
有人为仓库加星(star)时。活动类型在 payload 对象的 action 属性中指定。更多信息,请参见活动的 REST API 端点。
该 事件对象 包含所有事件通用的属性。每个事件对象都包含一个 payload 属性,其值因事件类型而唯一。下面描述了此事件的 payload 对象。
WatchEvent 的 payload 对象
| 键 | 类型 | 描述 |
|---|---|---|
action | string | 执行的操作。目前只能是 started(已开始)。 |