Skip to main content

使用企业的审核日志 API

您可以使用 REST 或 GraphQL API 以编程方式检索企业事件。

Enterprise owners can use the audit log API.

使用审核日志 API

您可以使用 GraphQL API 或 REST API 与审核日志交互。

API 响应中的时间戳和日期字段以 UTC 纪元毫秒为单位进行度量。

查询审核日志 GraphQL API

为确保知识产权得到保护并保持企业的合规,您可以使用审核日志 GraphQL API 保留审核日志数据的副本并监控:

  • 对组织或仓库设置的访问
  • 权限更改
  • 组织、仓库或团队中添加或删除的用户
  • 被提升为管理员的用户
  • GitHub 应用程序 权限的更改

请注意,无法使用 GraphQL API 检索 Git 事件。 要检索 Git 事件,请改为使用 REST API。 更多信息请参阅“审核企业的日志操作”中的 git 类操作,以及 REST API 文档中的“企业管理”和“组织审核日志端点”。

GraphQL 响应可包含长达 90 至 120 天的数据。

示例 1:在企业中的组织中添加或删除的成员

下面的查询获取 avocado-corp 企业的审核日志,并返回企业中的前 10 个组织,其中执行的唯一操作是在组织中添加或删除成员。 将返回每个组织的前 20 个审核日志条目。

此查询使用组织对象中的 auditlog 字段,以及 OrgAddMemberAuditEntryOrgRemoveMemberAuditEntry 对象。 查询企业审核日志的 GitHub 帐户必须是企业内每个组织的组织所有者。

{
  enterprise(slug: "avocado-corp") {
    organizations(first: 10, orderBy: {field: LOGIN, direction: DESC}) {
      nodes {
        name
        auditLog(first: 20) {
          edges {
            node {
              ... on OrgAddMemberAuditEntry {
                action
                actorLogin
                createdAt
              }
              ... on OrgRemoveMemberAuditEntry {
                action
                actorLogin
                createdAt
              }
            }
          }
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}

GraphQL API 对每个查询最多返回 100 个节点。 要检索其他结果,需要实现分页。 更多信息请参阅 GraphQL API 文档中的“资源限制”和官方 GraphQL 文档中的分页

示例 2:组织中特定日期和参与者的事件

您可以通过在查询字符串中用空格分隔多个搜索短语( 如 createdactor)来指定这些搜索短语。

下面的查询获取与 octo-org 组织相关的 avocado-corp 企业的所有审核日志,其中操作由 octocat 用户在 2022 年 1 月 1 日当天或之后执行。 将返回前 20 个审核日志条目,最新的日志条目首先显示。

此查询使用 AuditEntry 接口。 查询企业审核日志的 GitHub 帐户必须是 octo-org 组织的所有者。

{
  enterprise(slug: "avocado-corp") {
    organizations(first: 1, query: "octo-org") {
      nodes {
        name
        auditLog(first: 20, query: "actor:octocat created:>=2022-01-01T00:00:00.000Z", orderBy: {field: CREATED_AT, direction: DESC}) {
          edges {
            node {
              ... on AuditEntry {
                action
                actorLogin
                createdAt
                user {
                  name
                }
              }
            }
          }
        }
      }
    }
  }
}

有关更多查询示例,请参阅 platform-samples存储库

查询审核日志 REST API

为确保知识产权得到保护并保持企业的合规,您可以使用审核日志 REST API 保留审核日志数据的副本并监控:

  • 对组织或仓库设置的访问
  • 权限更改
  • 组织、仓库或团队中添加或删除的用户
  • 被提升为管理员的用户
  • GitHub 应用程序 权限的更改
  • Git 事件,例如克隆、获取和推送

The audit log lists events triggered by activities that affect your enterprise within the current month and up to the previous six months. The audit log retains Git events for seven days.

By default, only events from the past three months are displayed. To view older events, you must specify a date range with the created parameter. 更多信息请参阅“了解搜索语法”。

有关审核日志 REST API 的详细信息,请参阅“企业管理”和“组织”。

示例 1:企业中特定日期的所有事件,并带有分页

下面的查询搜索在 avocado-corp 企业中搜索 2022 年 1 月 1 日创建的审核日志事件,并使用 REST API 分页返回第一页,每页最多包含 100 个项:

curl -H "Authorization: token TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&page=1&per_page=100"

示例 2:企业中特定日期和参与者的拉取请求事件

您可以指定多个搜索短语,例如 createdactor,方法是在形成的 URL 中使用 + 符号或 ASCII 字符代码 %20分隔这些短语。

下面的查询搜索拉取请求的审核日志事件,其中事件发生在 avocado-corp 企业中的 2022 年 1 月 1 日或之后,并且该操作由 octocat 用户执行:

curl -H "Authorization: token TOKEN" \
--request GET \
"https://api.github.com/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat"