跳至主要内容

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字符串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 事件对象示例

此示例显示使用 事件 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` 对象如下所述。

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字符串执行的操作。可以是以下之一:openededitedclosedreopenedassignedunassignedreview_requestedreview_request_removedlabeledunlabeledsynchronize
编号整数拉取请求编号。
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字符串执行的操作。可以是以下之一:
  • resolved - 拉取请求上的评论线程被标记为已解决。
  • unresolved - 拉取请求上之前已解决的评论线程被标记为未解决。
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_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