跳至主要内容

GitHub 事件类型

有关 GitHub 事件 API,了解每种事件类型、GitHub 上的触发操作以及每个事件的唯一属性。

事件 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字符串演员个人资料图片的 URL。
repo对象发生事件的仓库对象。
repo.id字符串仓库的唯一标识符。
repo.name字符串仓库的名称,包括所有者和仓库名称。例如,octocat/hello-worldoctocat 个人帐户拥有的 hello-world 仓库的名称。
repo.url字符串用于检索仓库对象的 REST API URL,其中包含其他仓库信息。
payload对象事件有效负载对象对于事件类型是唯一的。有关事件 API payload 对象,请参见下面的事件类型。
publicboolean该事件是否对所有用户可见。
created_at字符串触发事件的日期和时间。它采用 ISO 8601 格式。
org对象演员选择执行触发事件的操作的组织。
该属性仅在适用时才会出现在事件对象中。
org.id字符串组织的唯一标识符。
org.login字符串组织的名称。
org.gravatar_id字符串组织的 Gravatar 个人资料的唯一标识符。
org.url字符串用于检索组织对象的 REST API URL,其中包含其他组织信息。
org.avatar_url字符串组织个人资料图片的 URL。

WatchEvent 事件对象示例

此示例显示了使用 Events APIWatchEvent 响应的格式。

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 对象在下面描述。

创建事件的事件 `payload` 对象

类型描述
ref字符串The git ref 资源,如果 ref_typerepository,则为 null
ref_type字符串在仓库中创建的 Git ref 对象类型。可以是 branchtagrepository
master_branch字符串仓库的默认分支名称(通常为 main)。
description字符串仓库的当前描述。
pusher_type字符串可以是 user 或部署密钥。

删除事件

删除 Git 分支或标签。有关更多信息,请参阅“Git 数据库的 REST API 端点” REST API。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

删除事件的事件 `payload` 对象

类型描述
ref字符串The git ref 资源。
ref_type字符串在仓库中删除的 Git ref 对象类型。可以是 branchtag

分叉事件

用户分叉仓库。有关更多信息,请参阅“仓库的 REST API 端点”。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

分叉事件的事件 `payload` 对象

类型描述
forkee对象创建的 repository 资源。

Gollum 事件

创建或更新 Wiki 页面。有关更多信息,请参阅“关于 Wiki”。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

Gollum 事件的事件 `payload` 对象

类型描述
pagesarray更新的页面。
pages[][page_name]字符串页面的名称。
pages[][title]字符串当前页面标题。
pages[][action]字符串对页面执行的操作。可以是 creatededited
pages[][sha]字符串页面的最新提交 SHA。
pages[][html_url]字符串指向 HTML Wiki 页面。

问题评论事件

与问题或拉取请求评论相关的活动。活动类型在有效负载对象的 action 属性中指定。有关更多信息,请参阅“问题的 REST API 端点”。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

问题评论事件的事件 `payload` 对象

类型描述
action字符串对评论执行的操作。可以是 createdediteddeleted 之一。
changes对象如果操作是edited,则对评论的更改。
changes[body][from]字符串如果操作是edited,则正文的先前版本。
issue对象评论所属的issue
comment对象评论本身。

IssuesEvent

与问题相关的活动。活动类型在有效负载对象的action属性中指定。有关更多信息,请参阅“用于问题的 REST API 端点”。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

IssuesEvent的事件payload对象。

类型描述
action字符串执行的操作。可以是openededitedclosedreopenedassignedunassignedlabeledunlabeled之一。
issue对象问题本身。
changes对象如果操作是edited,则对问题的更改。
changes[title][from]字符串如果操作是edited,则标题的先前版本。
changes[body][from]字符串如果操作是edited,则正文的先前版本。
assignee对象分配给问题或从问题中取消分配的可选用户。
label对象添加到问题或从问题中删除的可选标签。

MemberEvent

与仓库合作者相关的活动。活动类型在有效负载对象的action属性中指定。有关更多信息,请参阅“用于合作者的 REST API 端点”。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

MemberEvent的事件payload对象。

类型描述
action字符串执行的操作。可以是added,表示用户接受了对仓库的邀请。
member对象添加的用户
changes对象如果操作是edited,则对合作者权限的更改。
changes[old_permission][from]字符串如果操作是edited,则合作者的先前权限。

PublicEvent

当私有仓库变为公开时。毫无疑问:这是最好的 GitHub 事件。

PublicEvent 事件的 payload 对象

此事件返回一个空的 payload 对象。

PullRequestEvent

与拉取请求相关的活动。 活动类型在 action 属性中指定。 有关更多信息,请参阅“拉取请求的 REST API 端点”。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

PullRequestEvent 事件的 payload 对象

类型描述
action字符串执行的操作。 可以是以下之一:openededitedclosedreopenedassignedunassignedreview_requestedreview_request_removedlabeledunlabeledsynchronize
numberinteger拉取请求编号。
changes对象如果操作是edited,则对评论的更改。
changes[title][from]字符串如果操作是edited,则标题的先前版本。
changes[body][from]字符串如果操作是edited,则正文的先前版本。
pull_request对象拉取请求本身。 拉取请求
reason字符串如果操作为 dequeued,则拉取请求从合并队列中删除的原因。

PullRequestReviewEvent

与拉取请求审查相关的活动。 活动类型在 action 属性中指定。 有关更多信息,请参阅“拉取请求的 REST API 端点”。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

PullRequestReviewEvent 事件的 payload 对象

类型描述
action字符串执行的操作。 可以是 created
pull_request对象审查相关的拉取请求。
review对象受影响的审查。

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字符串执行的操作。 可以是以下之一:
  • resolved - 拉取请求上的评论线程被标记为已解决。
  • unresolved - 拉取请求上先前已解决的评论线程被标记为未解决。
pull_request对象该线程所属的拉取请求
线程对象受影响的线程。

PushEvent

一个或多个提交被推送到存储库分支或标签。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

PushEvent 的事件 payload 对象。

类型描述
push_idinteger推送的唯一标识符。
sizeinteger推送中的提交数量。
distinct_sizeinteger推送中不同提交的数量。
ref字符串被推送的完整git ref。例如:refs/heads/main
head字符串推送后 ref 上最新提交的 SHA。
before字符串推送前 ref 上最新提交的 SHA。
commitsarray描述已推送提交的提交对象数组。(该数组最多包含 20 个提交。如果需要,可以使用提交 API 获取更多提交。此限制仅适用于时间线事件,不适用于 Webhook 传递。)
commits[][sha]字符串提交的 SHA。
commits[][message]字符串提交消息。
commits[][author]对象提交的 Git 作者。
commits[][author][name]字符串Git 作者的姓名。
commits[][author][email]字符串Git 作者的电子邮件地址。
commits[][url]url指向提交 API 资源的 URL。
commits[][distinct]boolean此提交是否与之前推送的任何提交不同。

ReleaseEvent

与发布相关的活动。活动的类型在 action 属性中指定。有关更多信息,请参阅“发布和发布资产的 REST API 端点” REST API。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

ReleaseEvent 的事件 payload 对象。

类型描述
action字符串执行的操作。可以是 published
changes[body][from]字符串如果操作是edited,则正文的先前版本。
changes[name][from]字符串如果操作是 edited,则名称的先前版本。
release对象发布 对象。

SponsorshipEvent

与赞助列表相关的活动。活动的类型在 action 属性中指定。有关更多信息,请参阅“关于 GitHub 赞助”。

SponsorshipEvent 的事件 payload 对象。

类型描述
action字符串执行的操作。这可以是 created
生效日期字符串pending_cancellationpending_tier_change 事件类型将包含取消或层级变更生效的日期。
changes[tier][from]对象tier_changedpending_tier_change 将包含更改或待定更改之前的原始层级。有关更多信息,请参阅 待定层级变更有效负载
changes[privacy_level][from]字符串edited 事件类型包含有关更改的详细信息,这些更改是在有人编辑赞助以更改隐私时发生的。

WatchEvent

当有人为仓库加星标时。活动类型在有效负载对象的 action 属性中指定。有关更多信息,请参阅 "活动 REST API 端点。"。

事件对象 包含所有事件共有的属性。每个事件对象都包含一个 payload 属性,其值对于每种事件类型都是唯一的。此事件的 payload 对象在下面描述。

WatchEvent 的事件 payload 对象

类型描述
action字符串执行的操作。目前,只能是 started