审计日志(Audit Log)
在瞬息万变的当下,管理数据以及由变更引发的各种影响至关重要。为满足充分的数据管理需求,我们现已在 Gitea Enterprise 中推出审计日志(Audit Log)功能。这项全面的功能着重于为您的 Gitea 实例内发生的各类活动提供深入的历史记录。我们的最新功能可捕获广泛的事件,例如登录/登出、克隆仓库(包括通过 SSH、HTTP)、下载源代码、下载软件包等等。
为什么需要审计日志功能?
Gitea Enterprise 的审计日志功能提供了一套全面的日志记录方案,使系统管理员能够跟踪各类活动和变更。它可确保更高的数据安全性、合规性、问责制以及可追溯性。
审计日志的用户界面
审计日志功能提供了一个整洁有序的界面,您可以在其中轻松访问所有日志。

接下来我们来介绍一下这些记录的内容与组织方式。
- 操作时间(Opeartion Time):此列显示活动发生的确切日期和时间。所记录的详细信息有助于追踪操作的先后顺序,也有助于在特定时间范围内精确定位活动。
- 操作类型(Operation Type):您可以在此找到不同活动的标签,例如
user:sign_in、user:sign_out、repo:clone等。此列有助于识别所执行任务的类别。 - 操作者(Operator):此列记录执行该操作的用户的 Gitea 用户名。这有助于问责制,也便于回溯任何未经授权的变更。
- 仓库(Repository):仓库列指明了与该操作相关的具 体仓库。这在识别与所执行操作相关的来源/对象时特别有用。
- 所有者(Owner):所有者列并不一定表示相关仓库的所有者;它指的是该操作所涉及对象的所有者。根据操作类型的不同,所有者也会有所差异。例如像“下载软件包(Download package)”这样的操作,软件包并不明确从属于任何仓库,而是有一个独立的所有者,该字段就会记录该所有者的相关信息。
- 目标(Target):具体而言,这表示某个操作所指向的特定对象或个人。例如,在文件下载的场景中,目标即为文件名。
- IP 地址(IP Address)*:执行该操作时所使用的 IP 地址也会被记录下来。这可以提供额外的安全保障,因为它能够追溯操作执行地的地理位置。
哪些操作会被记录到审计日志中?
几乎所有的用户操作都会被记录下来。以下是我们所记录的行为。
操作类型参考表
| 操作类型(Operation Type) | 操作 | 描述 | 备注 |
|---|---|---|---|
user:sign_in | 用户登录 | 记录一次成功的用户登录。 | 留意异常的时间段或 IP。 |
user:sign_out | 用户登出 | 记录一次用户登出。 | 结合会话管理,关注长期存活的会 话。 |
user:change_password | 修改密码 | 用户在设置中修改自己的密码。 | 高风险操作;留意频繁修改的情况。 |
user:reset_password | 重置密码 | 用户完成一次密码重置流程。 | 确认其与某次重置请求相匹配。 |
user:request_reset_password | 请求重置密码 | 用户请求重置密码。 | 结合邮件/验证活动进行关联分析。 |
user:enable_2fa | 启用双因素认证 | 用户启用双因素认证(2FA)。 | 安全性提升;留意发生时间。 |
user:disable_2fa | 禁用双因素认证 | 用户禁用双因素认证(2FA)。 | 高风险;核实操作者身份。 |
user:regenerate_recovery_codes | 重新生成恢复码 | 用户重新生成 2FA 恢复码。 | 旧的恢复码将失效。 |
user:add_ssh_key | 添加 SSH key | 用户添加一个 SSH 公钥。 | 影响 Git 的 SSH 访问方式。 |
user:remove_ssh_key | 移除 SSH key | 用户移除一个 SSH 公钥。 | 可能导致访问中断;核实操作意图。 |
user:add_principal_key | 添加 principal key | 用户添加一个 SSH principal key。 | 用于证书认证;确认其用途。 |
user:remove_principal_key | 移除 principal key | 用户移除一个 SSH principal key。 | 相关的证书认证将失效。 |
user:add_gpg_key | 添加 GPG key | 用户添加一个 GPG 公钥。 | 影响提交签名验证。 |
user:remove_gpg_key | 移除 GPG key | 用户移除一个 GPG 公钥。 | 现有签名仍可验证,但无法再创建新的签 名。 |
user:create | 创建用户 | 创建一个新的用户账号。 | 通常为管理员操作。 |
user:rename | 重命名用户 | 修改用户名。 | 会影响仓库路径与相关引用。 |
user:delete | 删除用户 | 删除一个用户账号。 | 不可逆;请确认数据归属的处理方式。 |
user:activate | 激活用户 | 激活一个用户账号。 | 通常在审核/解锁后使用。 |
user:deactivate | 停用用户 | 停用一个用户账号。 | 阻止登录及访问。 |
user:update | 更新用户 | 更新用户资料或设置。 | 审计日志不应暴露敏感数值。 |
user:admin_reset_password | 管理员重置密码 | 管理员重置某用户的密码。 | 高风险;确保存在审批记录。 |
user:prohibit_login | 禁止登录 | 禁止该用户登录。 | 适用于事件响应场景。 |
user:allow_login | 允许登录 | 重新允许该用户登录。 | 确认风险已消除。 |
user:add_email | 添加邮箱 | 用户添加一个邮箱地址。 | 应对邮箱归属进行验证。 |
user:delete_email | 删除邮箱 | 用户移除一个邮箱地址。 | 可能影响通知及登录方式。 |
user:change_primary_email | 更改主邮箱 | 用户更改主邮箱。 | 会影响通知与身份标识。 |
user_app:create | 创建用户应用 | 用户创建一个应用集成。 | 审查其权限范围与回调地址。 |
user_app:delete | 删除用户应用 | 用户删除一个应用。 | 现有授权将被撤销。 |
user_app:update | 更新用户应用 | 用户更新一个应用。 | 留意回调地址或权限范围的变更。 |
user_app:grant_revoke | 授予/撤销应用权限 | 用户授予或撤销应用访问权限。 | 对权限影响较大。 |
user_access_token:create | 创建访问令牌 | 用户创建一个访问令牌(access token)。 | 该令牌仅显示一次;留意泄露风险。 |
user_access_token:delete | 删除访问令牌 | 用户删除一个访问令牌(access token)。 | 该令牌的 API 访问权限随之停止。 |
user_actions_secret:create | 创建 Actions secret | 用户创建一个 Actions secret。 | secret 数值会被掩码处理。 |
user_actions_secret:delete | 删除 Actions secret | 用户删除一个 Actions secret。 | 之后相关工作流可能会失败。 |
user_actions_secret:update | 更新 Actions secret | 用户更新一个 Actions secret。 | 更新后的数值不会显示。 |
user_actions_variable:create | 创建 Actions variable | 用户创建一个 Actions variable。 | 变量数值以明文形式存储。 |
user_actions_variable:delete | 删除 Actions variable | 用户删除一个 Actions variable。 | 之后相关工作流可能会失败。 |
user_actions_variable:update | 更新 Actions variable | 用户更新一个 Actions variable。 | 跟踪数值的变化。 |
user_webhook:create | 创建用户 Webhook | 用户创建一个个人 Webhook。 | 审查回调地址与所监听的事件。 |
user_webhook:delete | 删除用户 Webhook | 用户删除一个个人 Webhook。 | 事件投递随之停止。 |
user_webhook:update | 更新用户 Webhook | 用户更新一个个人 Webhook。 | 审查地址/密钥的变更。 |
user_openid_uri:create | 创建 OpenID URI | 用户添加一个 OpenID 标识符。 | 影响第三方身份绑定。 |
user_openid_uri:delete | 删除 OpenID URI | 用户移除一个 OpenID 标识符。 | 相关登录方式将失效。 |
repo:create | 创建仓库 | 创建一个新仓库。 | 审查所有者与可见性设置。 |
repo:delete | 删除仓库 | 删除一个仓库。 | 不可逆;请确保已有备份。 |
repo:archive | 归档仓库 | 将仓库设置为只读归档状态。 | 禁止写入操作。 |
repo:unarchive | 取消归档仓库 | 将仓库恢复为可写状态。 | 请确认符合流程要求。 |
repo:clone | 克隆仓库 | 用户克隆一个仓库。 | 记录所用协议及 IP。 |
repo:pull | 拉取仓库 | 用户从仓库中拉取内容。 | 记录所用协议及 IP。 |
repo:push | 推送仓库 | 用户推送提交内容。 | 结合分支保护策略进行审计。 |
repo:download | 下载源代码 | 用户下载源代码归档文件。 | 留意批量下载的情况。 |
repo:update_settings | 更新仓库设置 | 更新仓库的配置。 | 关注可见性或权限的变更。 |
repo:update_avatar | 更新仓库头像 | 更新仓库头像。 | 风险较低。 |
repo:delete_avatar | 删除仓库头像 | 删除仓库头像。 | 风险较低。 |
repo:add_push_mirror | 添加推送镜像 | 添加一个推送镜像(push mirror)配置。 | 审查镜像目标地址。 |
repo:update_push_mirror | 更新推送镜像 | 更新推送镜像配置。 | 留意凭证或地址的变更。 |
repo:delete_push_mirror | 删除推送镜像 | 删除一个推送镜像配置。 | 镜像同步随之停止。 |
repo:rename | 重命名仓库 | 重命名仓库或其路径。 | 会影响远端引用及相关依赖。 |
repo:transfer | 转移仓库 | 转移仓库所有权。 | 确认权限及资产归属处理。 |
repo:transfer_pending | 转移待确认 | 仓库转移正等待接受确认。 | 需要接收方进行确认。 |
repo:make_public | 设为公开 | 将仓库设置为公开。 | 扩大数据暴露范围。 |
repo:make_private | 设为私有 | 将仓库设置为私有。 | 限制访问权限。 |
repo:delete_wiki | 删除 Wiki | 删除仓库的 Wiki。 | 不可逆;请考虑先行备份。 |
repo:add_collaborator | 添加协作者 | 添加仓库协作者。 | 属于权限变更。 |
repo:update_collaborator | 更新协作者 | 更新协作者的权限。 | 留意权限提升的情况。 |
repo:remove_collaborator | 移除协作者 | 移除仓库协作者。 | 访问权限随之被撤销。 |
repo:add_webhook | 添加仓库 Webhook | 添加 一个仓库 Webhook。 | 审查回调地址与所监听的事件。 |
repo:update_webhook | 更新仓库 Webhook | 更新一个仓库 Webhook。 | 审查地址/密钥的变更。 |
repo:delete_webhook | 删除仓库 Webhook | 删除一个仓库 Webhook。 | 事件投递随之停止。 |
repo:add_protected_branch | 添加受保护分支 | 创建一条受保护分支规则。 | 会改变推送/合并权限。 |
repo:update_protected_branch | 更新受保护分支 | 更新受保护分支规则。 | 关注权限的变更。 |
repo:delete_protected_branch | 删除受保护分支 | 删除受保护分支规则。 | 访问限制可能因此放宽。 |
repo:add_protected_tag | 添加受保护标签 | 创建一条受保护标签(tag)规则。 | 控制标签的创建/删除。 |
repo:update_protected_tag | 更新受保护标签 | 更新受保护标签规则。 | 关注权限的变更。 |
repo:delete_protected_tag | 删除受保护标签 | 删除受保护标签规则。 | 访问限制可能因此放宽。 |
repo:add_deploy_key | 添加部署密钥 | 添加一个仓库部署密钥(deploy key)。 | 影响自动化流程的访问权限。 |
repo:delete_deploy_key | 删除部署密钥 | 删除一个仓库部署密钥。 | 自动化流程的访问随之停止。 |
repo:add_actions_secret | 添加 Actions secret | 添加一个仓库 Actions secret。 | secret 数值会被掩码处理。 |
repo:update_actions_secret | 更新 Actions secret | 更新一个仓库 Actions secret。 | 更新后的数值不会显示。 |
repo:delete_actions_secret | 删除 Actions secret | 删除一个仓库 Actions secret。 | 之后相关工作流可能会失败。 |
repo:add_actions_variable | 添加 Actions variable | 添加一个仓库 Actions variable。 | 变量数值以明文形式存储。 |
repo:update_actions_variable | 更新 Actions variable | 更新一个仓库 Actions variable。 | 跟踪数值的变化。 |
repo:delete_actions_variable | 删除 Actions variable | 删除一个仓库 Actions variable。 | 之后相关工作流可能会失败。 |
repo:enable_security_scan | 启用安全扫描 | 启用仓库安全扫描。 | 请考虑扫描范围及负载情况。 |
repo:disable_security_scan | 禁用安全扫描 | 禁用仓库安全扫描。 | 会降低漏洞检测能力。 |
repo:update_security_scan_branch | 更新扫描分支 | 更新扫描所针对的目标分支。 | 确保关键分支已被覆盖。 |
repo:cleanup_security_scan | 清理扫描数据 | 清理安全扫描的历史记录。 | 记录将被删除且无法恢复。 |
repo_label:create | 创建标签 | 创建一个仓库标签(label)。 | 影响 issue/PR 的分类方式。 |
repo_label:update | 更新标签 | 更新一个仓库标签。 | 留意名称/颜色的变更。 |
repo_label:delete | 删除标签 | 删除一个仓库标签。 | 影响标签的关联关系。 |
repo_milestone:create | 创建里程碑 | 创建一个仓库里程碑(milestone)。 | 影响规划安排。 |
repo_milestone:update | 更新里程碑 | 更新一个仓库里程碑。 | 跟踪截止日期的变更。 |
repo_milestone:delete | 删除里程碑 | 删除一个仓库里程碑。 | 影响统计数据与跟踪情况。 |
repo_project:create | 创建项目看板 | 创建一个仓库项目看板(project board)。 | 影响项目工作流程。 |
repo_project:update | 更新项目看板 | 更新一个仓库项目看板。 | 留意看板列或权限的变更。 |
repo_project:close | 关闭项目看板 | 关闭一个仓库项目看板。 | 该看板将变为只读状态。 |
repo_project:reopen | 重新打开项目看板 | 重新打开一个仓库项目看板。 | 恢复写入权限。 |
repo_project:delete | 删除项目看板 | 删除一个仓库项目看板。 | 不可逆。 |
reference:create | 创建引用 | 创建一个 Git 引用(分支/标签)。 | 记录目标引用的名称。 |
reference:delete | 删除引用 | 删除一个 Git 引用(分支/标签)。 | 该引用随之被移除。 |
release:create | 创建发行版 | 创建一个仓库发行版(release)。 | 与标签及发布资产相关联。 |
release:update | 更新发行版 | 更新一个仓库发行版。 | 留意资产或描述内容的变更。 |
release:delete | 删除发行版 | 删除一个仓库发行版。 | 相关资产将变得不可用。 |
package:download | 下载软件包 | 下载一个软件包制品。 | 跟踪软件包名称/版本/所有者。 |
package:upload | 上传软件包 | 上传一个软件包制品。 | 核实权限及来源。 |
package:create | 创建软件包 | 创建一条软件包记录。 | 通常与上传操作同时发生。 |
package:delete | 删除软件包 | 删除一条软件包记录。 | 该软件包将变得不可用。 |
issue:create | 创建 issue/PR | 创建一个 issue 或 PR。 | 记录所属仓库及作者。 |
issue:update | 更新 issue/PR | 更新一个 issue 或 PR。 | 跟踪状态/指派人/标签的变化。 |
issue:close | 关闭 issue/PR | 关闭一个 issue 或 PR。 | 审查关闭原因,或是否由自动化触发。 |
issue:reopen | 重新打开 issue/PR | 重新打开一个 issue 或 PR。 | 确认该 issue 是否仍然有效。 |
issue:delete | 删除 issue/PR | 删除一个 issue 或 PR。 | 不可逆。 |
issue:lock | 锁定 issue/PR | 锁定 issue 或 PR 的评论。 | 用于内容管理场景。 |
issue:unlock | 解锁 issue/PR | 解锁 issue 或 PR 的评论。 | 恢复评论功能。 |
issue_comment:create | 创建评论 | 创建一条 issue/PR 评论。 | 会记录评论内容。 |
issue_comment:update | 更新评论 | 更新一条 issue/PR 评论。 | 跟踪编辑历史。 |
issue_comment:delete | 删除评论 | 删除一条 issue/PR 评论。 | 不可逆。 |
pull:create | 创建 PR | 创建一个拉取请求(pull request)。 | 记录源分支/目标分支。 |
pull:wip | 标记为 WIP | 将某个 PR 标记为 WIP(进行中)。 | 影响合并就绪状态。 |
pull:remove_wip | 移除 WIP 标记 | 移除某个 PR 的 WIP 状态。 | 恢复正常的评审流程。 |
pull:change_target_branch | 更改目标分支 | 更改 PR 的目标分支。 | 影响评审及合并策略。 |
pull:create_review_request | 请求评审 | 为某个 PR 创建一条评审请求。 | 分配评审职责。 |
pull:remove_review_request | 移除评审请求 | 移除一条评审请求。 | 影响评审流程。 |
pull:merge | 合并 PR | 合并一个拉取请求。 | 高风险;请检查分支保护设置。 |
pull_request_review:submit | 提交评审 | 提交一次 PR 评审。 | 记录评审结果及评审意见。 |
pull_request_review:dismiss | 驳回评审 | 驳回一次 PR 评审。 | 请确认驳回原因。 |
org:create | 创建组织 | 创建一个新组织。 | 影响资源归属。 |
org:delete | 删除组织 | 删除一个组织。 | 不可逆;请确认所有权的处理方式。 |
org:rename | 重命名组织 | 重命名一个组织。 | 会影响仓库路径与相关引用。 |
org:update_settings | 更新组织设置 | 更新组织的配置。 | 关注可见性及权限的变更。 |
org:add_team | 添加团队 | 创建一个组织团队。 | 影响权限设置。 |
org:remove_team | 移除团队 | 删除一个组织团队。 | 团 队的相关权限随之被移除。 |
org:update_team | 更新团队 | 更新一个组织团队。 | 留意权限的变更。 |
org:add_team_member | 添加团队成员 | 向团队中添加一名成员。 | 改变访问权限。 |
org:remove_team_member | 移除团队成员 | 从团队中移除一名成员。 | 访问权限随之被撤销。 |
org_app:create | 创建组织应用 | 创建一个组织应用。 | 审查其权限范围与回调地址。 |
org_app:delete | 删除组织应用 | 删除一个组织应用。 | 相关授权将被撤销。 |
org_app:update | 更新组织应用 | 更新一个组织应用。 | 留意回调地址的变更。 |
org_app:grant_revoke | 授予/撤销组织应用权限 | 授予或撤销某个组织应用的访问权限。 | 对权限影响较大。 |
org_webhook:create | 创建组织 Webhook | 创建一个组织 Webhook。 | 审查回调地址及所监听的事件。 |
org_webhook:delete | 删除组织 Webhook | 删除一个组织 Webhook。 | 事件投递随之停止。 |
org_webhook:update | 更新组织 Webhook | 更新一个组织 Webhook。 | 审查地址/密钥的变更。 |
org_actions_secret:create | 创建组织 Actions secret | 创建一个组织 Actions secret。 | secret 数值会被掩码处理。 |
org_actions_secret:delete | 删除组织 Actions secret | 删除一个组织 Actions secret。 | 之后相关工作流可能会失败。 |
org_actions_secret:update | 更新组织 Actions secret | 更新一个组织 Actions secret。 | 更新后的数值不会显示。 |
org_actions_variable:create | 创建组织 Actions variable | 创建一个组织 Actions variable。 | 变量数值以明文形式存储。 |
org_actions_variable:delete | 删除组织 Actions variable | 删除一个组织 Actions variable。 | 之后相关工作流可能会失败。 |
org_actions_variable:update | 更新组织 Actions variable | 更新一个组织 Actions variable。 | 跟踪数值的变化。 |
org_label:create | 创建组织标签 | 创建一个组织标签。 | 该标签会在组织内各仓库间共享。 |
org_label:update | 更新组织标签 | 更新一个组织标签。 | 留意名称/颜色的变更。 |
org_label:delete | 删除组织标签 | 删除一个组织标签。 | 影响标签的关联关系。 |
org_protected_branch:create | 创建组织级受保护分支 | 创建一条组织级受保护分支规则。 | 影响组织下各仓库的策略。 |
org_protected_branch:update | 更新组织级受保护分支 | 更新组织级受保护分支规则。 | 关注权限的变更。 |
org_protected_branch:delete | 删除组织级受保护分支 | 删除组织级受保护分支规则。 | 访问限制可能因此放宽。 |
org_project:create | 创建组织项目看板 | 创建一个组织项目看板。 | 影响组织层面的规划安排。 |
org_project:update | 更新组织项目看板 | 更新一个组织项目看板。 | 留意看板列或权限的变更。 |
org_project:close | 关闭组织项目看板 | 关闭一个组织项目看板。 | 该看板将变为只读状态。 |
org_project:reopen | 重新打开组织项目看板 | 重新打开一个组织项目看板。 | 恢复写入权限。 |
org_project:delete | 删除组织项目看板 | 删除一个组织项目看板。 | 不可逆。 |
system:update_settings | 更新系统设置 | 更新系统级配置。 | 仅限管理员执行的操作。 |
system:update_webhook | 更新系统 Webhook | 更新一个系统 Webhook。 | 审查地址/密钥的变更。 |
system:run_maintenance_task | 运行维护任务 | 运行一项系统维护任务。 | 可能影响性能或数据。 |
system:update_site_announcement | 更新站点公告 | 更新站点公告内容。 | 审查发布时机及内容。 |
system:cleanup_expired_packages | 清理过期软件包 | 清理已过期的软件包记录。 | 相关历史记录会被移除。 |
system:adopt_repositories | 接管仓库 | 将已存在的仓库纳入系统管理。 | 影响所有权与路径。 |
auth_source:create | 创建认证源 | 创建一个认证源(LDAP/OAuth)。 | 影响登录方式。 |
auth_source:update | 更新认证源 | 更新认证源配置。 | 请核实配置变更内容。 |
auth_source:delete | 删除认证源 | 删除一个认证源配置。 | 相关登录方式将失效。 |
system_app:create | 创建系统应用 | 创建一个系统级应用。 | 其权限范围影响整个实例。 |
system_app:delete | 删除系统应用 | 删除一个系统级应用。 | 相关授权将被撤销。 |
system_app:update | 更新系统应用 | 更新一个系统级应用。 | 留意回调地址的变更。 |
system_webhook:create | 创建系统 Webhook | 创建一个系统 Webhook。 | 影响全局事件投递。 |
system_webhook:delete | 删除系统 Webhook | 删除一个系统 Webhook。 | 全局事件投递随之停止。 |
system_webhook:update | 更新系统 Webhook | 更新一个系统 Webhook。 | 审查地址/密钥的变更。 |
system_default_webhook:create | 创建默认 Webhook | 创建一个系统默认 Webhook。 | 会被新建仓库自动继承。 |
system_default_webhook:delete | 删除默认 Webhook | 删除一个系统默认 Webhook。 | 新建仓库将不再继承该配置。 |
system_default_webhook:update | 更新默认 Webhook | 更新一个系统默认 Webhook。 | 影响新建仓库的默认配置。 |
system_actions_variable:create | 创建系统 Actions variable | 创建一个系统 Actions variable。 | 变量数值以明文形式存储。 |
system_actions_variable:delete | 删除系统 Actions variable | 删除一个系统 Actions variable。 | 之后相关工作流可能会失败。 |
system_actions_variable:update | 更新系统 Actions variable | 更新一个系统 Actions variable。 | 跟踪数值的变化。 |
license:activate | 激活许可证 | 激活系统许可证(license)。 | 记录许可证的变更情况。 |
license:update | 更新许可证 | 更新系统许可证。 | 审查到期时间及权益的变更。 |
license:delete | 删除许可证 | 删除系统许可证。 | 之后部分功能可能会受限。 |
结语
全新的审计日志功能为 Gitea Enterprise 带来了更强的安全性与操作透明度。通过在您的 Gitea 环境中提供关于「谁在何时做了什么」的详尽记录,它有助于防止未经授权的操作,并确保符合必要的数据保护法规要求。