访问审核日志
Note
在特定用例中,Webhook 可能是审核日志或 API 轮询的良好替代方法。 Webhook 是一种 GitHub 在存储库、组织或企业发生特定事件时通知服务器的方法。 与 API 或搜索审核日志相比,如果只想了解企业、组织或存储库何时发生某些事件并进行相应记录,Webhook 效率更高。 请参阅“Webhook 文档”。
审核日志列出了过去 180 天内影响组织的活动所触发的事件。 只有所有者才能访问组织的审核日志。
默认情况下,仅显示过去三个月的事件。 若要查看较旧的事件,必须使用 created
参数指定日期范围。 请参阅“了解搜索语法”。
- 在 GitHub 的右上角,选择个人资料照片,然后单击 “你的组织”。
- 在组织旁边,单击“设置”。
- 在边栏的“存档”部分中,单击“ 日志”,然后单击“审核日志”。
搜索审核日志
每个审核日志条目的名称由事件类型组成,后跟操作类型。 例如,repo.create
条目是指对 repo
类别的 create
操作。
每个审核日志条目都显示有关事件的适用信息,例如:
- 执行操作的企业或组织
- 执行操作的用户(参与者)
- 受操作影响的用户
- 执行操作的仓库
- 执行的操作
- 发生操作的国家/地区
- 发生操作的日期和时间
- 执行操作的用户(操作者)的 SAML SSO 标识和 SCIM 标识
- 对于 Web UI 之外的操作,用户(操作者)如何进行身份验证
- (可选)执行了操作的用户(执行者)的源 IP 地址
请注意,无法使用文本搜索条目。 但是,您可以使用各种过滤器构建搜索查询。 查询日志时使用的许多运算符,如 -
、>
或 <
,与在 GitHub Enterprise Cloud 上搜索时的格式相同。 有关详细信息,请参阅“关于在 GitHub 上搜索”。
基于操作搜索
使用 operation
限定符将操作限制为特定类型的操作。 例如:
operation:access
查找访问过资源的所有事件。operation:authentication
查找执行过身份验证事件的所有事件。operation:create
查找创建过资源的所有事件。operation:modify
查找修改过现有资源的所有事件。operation:remove
查找删除过现有资源的所有事件。operation:restore
查找还原过现有资源的所有事件。operation:transfer
查找传输过现有资源的所有事件。
基于仓库搜索
使用 repo
限定符将操作限制到特定存储库。 例如:
repo:my-org/our-repo
查找my-org
组织中our-repo
存储库发生的所有事件。repo:my-org/our-repo repo:my-org/another-repo
查找my-org
组织中our-repo
和another-repo
存储库发生的所有事件。-repo:my-org/not-this-repo
排除my-org
组织中not-this-repo
存储库发生的所有事件。
请注意,repo
限定符必须包含帐户名;仅搜索 repo:our-repo
无效。
基于用户搜索
actor
限定符可将事件范围限于执行操作的人员。 例如:
actor:octocat
查找octocat
执行的所有事件。actor:octocat actor:hubot
查找octocat
或hubot
执行的所有事件。-actor:hubot
排除hubot
执行的所有事件。
请注意,只能使用 GitHub Enterprise Cloud 用户名,而不是个人的真实姓名。
基于执行的操作搜索
若要搜索特定事件,请在查询中使用 action
限定符。 审核日志中列出的操作分为不同类别。 有关每个类别中事件的完整列表,请参阅“组织的审核日志事件”。
类别名称 | 说明 |
---|---|
account | 包含与组织帐户相关的所有活动。 |
advisory_credit | 包含与 GitHub Advisory Database 中安全公告的参与者积分相关的所有活动。 有关详细信息,请参阅“关于存储库安全公告”。 |
auto_approve_personal_access_token_requests | 包含与 fine-grained personal access tokens 的组织审批策略相关的活动。 有关详细信息,请参阅“为组织设置个人访问令牌策略”。 |
billing | 包含与组织帐单相关的所有活动。 |
business | 包含与企业的业务设置相关的活动。 |
codespaces | 包含与组织的 codespace 相关的所有活动。 |
copilot | 包含与 GitHub Copilot Business 或 GitHub Copilot Enterprise 订阅相关的所有活动。 |
dependabot_alerts | 包含现有存储库中 Dependabot alerts 的组织级配置活动。 有关详细信息,请参阅“关于 Dependabot 警报”。 |
dependabot_alerts_new_repos | 包含在组织中创建的新存储库中 Dependabot alerts 的组织级配置活动。 |
dependabot_security_updates | 包含现有存储库中 Dependabot security updates 的组织级配置活动。 有关详细信息,请参阅“配置 Dependabot 安全更新”。 |
dependabot_security_updates_new_repos | 包含在组织中创建的新存储库的 Dependabot security updates 的组织级配置活动。 |
dependency_graph | 包含存储库依赖项关系图的组织级配置活动。 有关详细信息,请参阅“关于依赖关系图”。 |
dependency_graph_new_repos | 包含在组织中创建的新存储库的组织级配置活动。 |
discussion_post | 包含与发布到团队页的讨论相关的所有活动。 |
discussion_post_reply | 包含与发布到团队页的讨论回复相关的所有活动。 |
enterprise | 包含与企业设置相关的活动。 |
hook | 包含与 web 挂钩相关的所有活动。 |
integration_installation | 包含与帐户中安装的集成相关的活动。 |
integration_installation_request | 包含与组织成员请求所有者批准用于组织的集成相关的所有活动。 |
ip_allow_list | 包含与为组织启用或禁用 IP 允许列表相关的活动。 |
ip_allow_list_entry | 包含与为组织创建、删除和编辑 IP 允许列表条目相关的活动。 |
issue | 包含与删除问题相关的活动。 |
marketplace_agreement_signature | 包含与签署 GitHub Marketplace 开发者协议相关的所有活动。 |
marketplace_listing | 包含与 GitHub Marketplace 中列出的应用相关的所有活动。 |
members_can_create_pages | 包含与管理组织存储库的 GitHub Pages 站点发布相关的所有活动。 有关详细信息,请参阅“管理组织的 GitHub Pages 站点发布”。 |
org | 包含与组织会员资格相关的活动。 |
org_credential_authorization | 包含与授权凭据以用于 SAML 单一登录相关的活动。 |
org_secret_scanning_automatic_validity_checks | 包含与为 secret scanning 启用和禁用自动验证检查相关的组织级活动。 有关详细信息,请参阅“管理组织的安全和分析设置”。 |
org_secret_scanning_custom_pattern | 包含与 secret scanning 自定义模式相关的组织级活动。 有关详细信息,请参阅“为机密扫描定义自定义模式”。 |
organization_default_label | 包含与组织中存储库的默认标签相关的所有活动。 |
oauth_application | 包含与 OAuth apps 相关的所有活动。 |
packages | 包含与 GitHub Packages 相关的所有活动。 |
payment_method | 包含与组织如何支付 GitHub 费用相关的所有活动。 |
personal_access_token | 包含与组织中的 fine-grained personal access tokens 相关的活动。 有关详细信息,请参阅“管理个人访问令牌”。 |
profile_picture | 包含与组织的个人资料图片相关的所有活动。 |
project | 包含与 项目(经典) 相关的所有活动。 |
protected_branch | 包含与受保护分支相关的所有活动。 |
repo | 包含与组织拥有的存储库相关的活动。 |
repository_advisory | 包含与 GitHub Advisory Database 中的安全公告相关的存储库级活动。 有关详细信息,请参阅“关于存储库安全公告”。 |
repository_content_analysis | 包含与为专用存储库启用或禁用数据使用相关的所有活动。 有关详细信息,请参阅“管理存储库的安全和分析设置”。 |
repository_dependency_graph | 包含与为专用存储库启用或禁用依赖项关系图相关的存储库级活动。 有关详细信息,请参阅“关于依赖关系图”。 |
repository_secret_scanning | 包含与 secret scanning 相关的存储库级活动。 有关详细信息,请参阅“关于机密扫描”。 |
repository_secret_scanning_automatic_validity_checks | 包含与为 secret scanning 启用和禁用自动验证检查相关的存储库级活动。 有关详细信息,请参阅“为存储库启用机密扫描”。 |
repository_secret_scanning_custom_pattern | 包含与 secret scanning 相关的存储库级活动。 有关详细信息,请参阅“为机密扫描定义自定义模式”。 |
repository_secret_scanning_custom_pattern_push_protection | 包含与 secret scanning 的自定义模式推送保护相关的存储库级活动。 有关详细信息,请参阅“为机密扫描定义自定义模式”。 |
repository_secret_scanning_push_protection | 包含与 secret scanning 推送保护相关的存储库级活动。 有关详细信息,请参阅“关于推送保护”。 |
repository_vulnerability_alert | 包含与 Dependabot alerts 相关的所有活动。 |
repository_vulnerability_alerts | 包含 Dependabot alerts 的存储库级配置活动。 |
role | 包含与自定义存储库角色相关的所有活动。 |
secret_scanning | 包含现有存储库中 secret scanning 的组织级配置活动。 有关详细信息,请参阅“关于机密扫描”。 |
secret_scanning_new_repos | 包含在组织中创建的新存储库的 secret scanning 的组织级配置活动。 |
restore_member | 当组织所有者恢复成员时触发。 有关详细信息,请参阅“Reinstating a former member of your organization(恢复组织前成员的身份)”。 |
sponsors | 包含与发起人按钮相关的所有事件(请参阅“在仓库中显示赞助者按钮”) |
team | 包含与您的组织中的团队相关的所有活动。 |
workflows | 包含与 GitHub Actions 工作流相关的活动。 |
您可以使用这些词搜索特定的操作集。 例如:
action:team
查找分组在团队类别中的所有事件。-action:hook
排除 Webhook 类别中的所有事件。
每个类别都有一组可进行过滤的关联操作。 例如:
action:team.create
查找创建团队的所有事件。-action:hook.events_changed
排除已更改 Webhook 上事件的所有事件。
基于操作时间搜索
使用 created
限定符可以根据事件发生的时间筛选审核日志中的事件。 日期格式必须遵循 ISO8601 标准,即 YYYY-MM-DD
(年-月-日)。 也可以在日期后添加可选的时间信息 THH:MM:SS+00:00
,以按小时、分钟和秒进行搜索。 即 T
,随后是 HH:MM:SS
(时-分-秒)和 UTC 时差 (+00:00
)。
搜索日期时,可以使用大于、小于和范围限定符来进一步筛选结果。 有关详细信息,请参阅“了解搜索语法”。
例如:
created:2014-07-08
查找 2014 年 7 月 8 日发生的所有事件。created:>=2014-07-08
查找 2014 年 7 月 8 日当天或之后发生的所有事件。created:<=2014-07-08
查找 2014 年 7 月 8 日当天或之前发生的所有事件。created:2014-07-01..2014-07-31
查找 2014 年 7 月发生的所有事件。
Note
审核日志包含过去 180 天的数据。
基于位置搜索
使用限定符 country
,可以根据原始国家/地区筛选审核日志中的事件。 您可以使用国家/地区的两字母短代码或完整名称。 请注意,名称中包含空格的国家/地区需要加引号。 例如:
country:de
查找在德国发生的所有事件。country:Mexico
查找在墨西哥发生的所有事件。country:"United States"
查找全发生在美国的事件。
基于访问令牌的搜索
可以识别由特定访问令牌执行的所有事件。 有关详细信息,请参阅“标识由访问令牌执行的审核日志事件”。
导出审核日志
使用“导出”下拉菜单,可以将日志导出为 JSON 数据或逗号分隔值 (CSV) 文件****。
若要筛选导出结果,请在使用“导出”下拉菜单之前使用一个或多个支持的限定符进行搜索。
限定符 | 示例值 |
---|---|
action | team.create |
actor | octocat |
user | codertocat |
org | octo-org |
repo | octo-org/documentation |
created | 2019-06-01 |
Note
导出 Git 事件时,通过 Web 浏览器或 REST 或 GraphQL API 启动的事件不包括在内。 例如,当用户在 Web 浏览器中合并拉取请求时,更改会推送到基础分支,但导出中不包含该推送的 Git 事件。
导出日志后,你将在生成的文件中看到以下键和值。
密钥 | 示例值 |
---|---|
action | team.create |
actor | octocat |
user | codertocat |
actor_location.country_code | US |
org | octo-org |
repo | octo-org/documentation |
created_at | 1429548104000 (Timestamp shows the time since Epoch with milliseconds.) |
data.email | octocat@nowhere.com |
data.hook_id | 245 |
data.events | ["issues", "issue_comment", "pull_request", "pull_request_review_comment"] |
data.events_were | ["push", "pull_request", "issues"] |
data.target_login | octocat |
data.old_user | hubot |
data.team | octo-org/engineering |
使用审核日志 API
可以使用 GraphQL API 或 REST API 与审核日志交互。可以使用 read:audit_log
范围通过 API 访问审核日志。
Note
若要使用审核日志 API,你的组织必须使用 GitHub Enterprise Cloud。 有关如何免费试用 GitHub Enterprise Cloud 的详细信息,请参阅“设置 GitHub Enterprise Cloud 的试用版”。
使用 GraphQL API
为确保知识产权得到保护并保持组织的合规,可使用审核日志 GraphQL API 保留审核日志数据的副本并监视:* 对你的组织或存储库设置的访问
- 权限的更改
- 在组织、存储库或团队中添加或删除的用户
- 被提升为管理员的用户
- GitHub App 权限的更改
- API 请求(必须启用)
请注意,你无法使用 GraphQL API 检索 Git 事件。 要检索 Git 事件,请改为使用 REST API。 有关详细信息,请参阅“git
类别操作”。
GraphQL 响应可包含长达 90 至 120 天的数据。
例如,您可以创建 GraphQL 请求以查看添加到组织的所有新组织成员。 有关详细信息,请参阅“接口”。
使用 REST API
为确保知识产权得到保护并保持组织合规,可使用审核日志 REST API 保留审核日志数据的副本。 有关可使用 REST API 访问的特定事件的详细信息,请参阅“组织的审核日志事件”。
审核日志将 Git 事件保留七天。 这比其他审核日志事件更短,它们可以保留长达 7 个月。
默认情况下,仅返回过去三个月的事件。 若要包括较旧的事件,必须在查询中指定时间戳。
当使用 REST API 请求 Git 事件时,通过 Web 浏览器或 REST 或 GraphQL API 启动的事件不包括在内。 例如,当在 Web 浏览器中合并拉取请求时,更改会推送到基础分支,但响应中不包含该推送的 Git 事件。
有关审核日志 REST API 的详细信息,请参阅“适用于组织的 REST API 终结点”。