Skip to main content

在企业中使用审核日志 API

了解如何使用 REST API 以编程方式检索企业事件。

谁可以使用此功能?

Enterprise owners and site administrators

Note

在特定用例中,Webhook 可能是审核日志或 API 轮询的良好替代方法。 Webhook 是一种 GitHub 在存储库、组织或企业发生特定事件时通知服务器的方法。 与 API 或搜索审核日志相比,如果只想了解企业、组织或存储库何时发生某些事件并进行相应记录,Webhook 效率更高。 请参阅“Webhook 文档”。

使用与审核日志相关的终结点保持合规性并确保知识产权安全。 请参阅 适用于企业审核日志的 REST API 终结点适用于组织的 REST API 终结点

有关可以通过审核日志终结点访问的特定事件的详细信息,请参阅下面的文章。

审核日志详细信息

审核日志列出了由影响企业的活动触发的事件。 GitHub Enterprise Server 的审核日志将无限期保留,除非企业所有者配置了不同的保留期。 请参阅过去 180 天内的“为企业配置审核日志

默认情况下,仅显示过去三个月的事件。 若要查看较旧的事件,必须使用 created 参数指定日期范围。 请参阅“了解搜索语法”。

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

你可以使用 read:audit_log 范围通过 API 访问审核日志。

示例 1:企业中在特定日期的所有事件(使用分页显示)

可以使用基于页面分页。 有关分页的详细信息,请参阅 在 REST API 中使用分页

以下查询搜索 avocado-corp 企业中于 2022 年 1 月 1 日创建的审核日志事件,并使用分页返回第一页,每页最多包含 100 个项。 有关分页的详细信息,请参阅 在 REST API 中使用分页

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"http(s)://HOSTNAME/api/v3/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: Bearer TOKEN" \
--request GET \
"http(s)://HOSTNAME/api/v3/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat"

示例 3:企业中特定日期和执行者的 Git 活动事件

可以通过将 include=git 添加为 URL 中的参数来搜索企业中的 Git 事件,例如克隆、提取和推送。 此外也可以使用 include=all 来搜索 Web 事件和 Git 事件。

以下查询将搜索 avocado-corp 企业中发生在 2024 年 1 月 1 日之后,并且操作由 octocat 用户执行的 Git 活动审核日志事件。

curl -H "Authorization: Bearer TOKEN" \
--request GET \
"http(s)://HOSTNAME/api/v3/enterprises/avocado-corp/audit-log?phrase=created:>=2024-01-01+actor:octocat&include=git"