一、问题背景

某天巡视项目代码时,发现提交信息是错乱无规则的。想着查一下到底是哪个小可爱这么的可爱。

gitlab 代码审计工具 gitlab commit检查_用户名

二、排查过程

以下来自ChatGPT的回复,请原谅我有点懒😂

在 GitLab 中,commit 记录只包含了提交者的用户名和邮箱地址,而不包含其他额外的验证信息。因此,无法直接从 commit 记录中确定是否是使用真实注册并通过验证的 GitLab 账号进行的操作。

如果你想要确认某个 commit 记录是由哪个真实的 GitLab 账号操作的,你可以考虑以下几种方法:

  1. 查看提交者信息:通过 GitLab Web 界面或 GitLab API,查找包含指定 commit 的项目,然后查看 commit 记录中的提交者信息。这将显示提交者的用户名和邮箱地址。你可以与提交者联系以了解其真实身份。
  2. 访问 GitLab 日志:如果你是 GitLab 的管理员或有权限访问 GitLab 的服务器日志,你可以查找相关的登录日志以确定谁在特定时间段内登录并进行了操作。通过匹配登录时间和操作的时间戳,你可能能够找到相关的 GitLab 账号。
  3. 使用 GitLab 审计日志:GitLab 提供了审计日志功能,记录了用户的活动,包括提交、推送等操作。你可以在 GitLab Web 界面的管理面板中查找审计日志,并根据相关操作的时间戳和操作类型来确定谁进行了操作。

请注意,确定提交的真实账号可能需要进行额外的调查和验证步骤。GitLab 提供了一些工具和功能来跟踪用户活动和管理权限,但在提交信息中直接包含真实身份的功能是有限的。如果你需要更准确和可靠的信息,建议与相关的用户进行直接沟通,并使用其他身份验证和审计措施来确保操作的真实性。

三、初步结论

针对以上三点:

  1. 直接查看到的不是真实gitlab注册的账号对应的信息。
  2. 查找操作日志文件,也是只有客户端提交时附加的未通过验证的邮箱配置信息,和web界面看到的一致,不是我们想要的。
  3. Gitlab审计功能,收费;
  4. [补充]与相关的用户进行直接沟通。(效率为主情况下,本次我确实是问出来的。我找到了一个不用问的方式)

四、简单准确的查找方式

  1. 在“项目主页–项目信息–成员“路径下,查看拥有提交修改项目权限的用户,缩小范围。
  2. gitlab 代码审计工具 gitlab commit检查_git_02

  3. 分别查看个人主页“活动“下的记录,全局搜索提交的备注或者commit SHA-1 hash值,或者在commit操作时间范围内定位提交记录。
  4. gitlab 代码审计工具 gitlab commit检查_gitlab_03

五、正确配置客户端作者信息

为防止此类情况发生,有必要宣贯检查一下配置信息是否合规。

  1. 全局修改,对应配置文件:~/.gitconfig
git config --global user.name "作者名称" 
git config --global user.email "合规的邮箱地址"
  1. 只修改当前项目,对应配置文件:项目目录/.git/config
git config user.name "作者名称" 
git config user.email "合规的邮箱地址"
  1. 查看配置 git config --list |grep user
  2. gitlab 代码审计工具 gitlab commit检查_git_04