📜  github 操作检查事件类型 (1)

📅  最后修改于: 2023-12-03 15:15:20.236000             🧑  作者: Mango

Github 操作检查事件类型

当我们在使用 Github 进行开发时,有时候需要对某个事件进行特定的操作。在对应的操作中,我们需要了解 Github 返回的事件类型是什么,以便于写出相应的处理逻辑。

Github 会在我们进行提交代码、创建/合并 pull request、创建/删除 tag 等操作时,返回一些事件类型。以下是一些常见的 Github 事件类型:

  • PushEvent:当用户推送了代码到一个仓库时触发。
  • CreateEvent:当用户创建一个 仓库,分支,tag 时触发。
  • PullRequestEvent:在有人创建、关闭、合并或 Reopen 拉取请求时触发。
  • DeleteEvent:当用户删除分支或 tag 时触发。
  • ReleaseEvent:当在仓库中发布或删除某个release版本时触发。
  • IssueCommentEvent:当issue或pull request的评论被创建、编辑或删除时触发。
  • ForkEvent:在有人 fork 了你的仓库时触发。

我们可以通过 Github 提供的 API 来获取对应事件类型的详细数据。以下是获取 PushEvent 事件类型数据的示例代码:

**请求**

GET /repos/:owner/:repo/events HTTP/1.1 Host: api.github.com User-Agent: Mozilla/5.0 Accept: application/vnd.github.v3+json


**响应**

```json
[
  {
    "id": "12345",
    "type": "PushEvent",
    "created_at": "2021-01-01T00:00:00Z",
    "actor": {
      "id": "67890",
      "login": "exampleuser",
      "avatar_url": "https://avatars.githubusercontent.com/u/67890?v=4"
    },
    "payload": {
      "push_id": "54321",
      "size": 1,
      "distinct_size": 1,
      "ref": "refs/heads/master",
      "head": "ab1234",
      "before": "cd5678",
      "commits": [
        {
          "sha": "ab1234",
          "author": {
            "email": "example@example.com",
            "name": "Example User"
          },
          "message": "Example commit message",
          "distinct": true,
          "url": "https://github.com/exampleuser/example/commit/ab1234"
        }
      ]
    },
    "public": true,
    "repo": {
      "id": "54321",
      "name": "example",
      "url": "https://github.com/exampleuser/example"
    }
  }
]

在上述示例中,我们可以看到 Github 返回了一个 JSON 格式的数据,其中包含了 PushEvent 事件的详细信息,包括事件类型、创建时间、事件发起人、提交的代码等信息。我们可以根据这些信息进行相应的处理。