Help us learn about your current experience with the documentation. Take the survey.
GitGuardian
- Tier: Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitGuardian 是一种网络安全服务,可以检测源代码仓库中的敏感数据,如 API 密钥和密码。 它会扫描 Git 仓库,对策略违规发出警报,并帮助组织在黑客利用之前修复安全问题。
您可以配置 GitLab 根据GitGuardian策略拒绝提交。
要设置 GitGuardian 集成:
创建 GitGuardian API token
先决条件:
- 您必须拥有 GitGuardian 账户。
创建 API token:
- 登录您的 GitGuardian 账户。
- 在侧边栏中转到 API 部分。
- 在 API 部分的侧边栏中,转到 Personal access tokens 页面。
- 选择 Create token。token 创建对话框打开。
- 提供您的 token 信息:
- 为您的 API token 赋予一个有意义的名称来标识其用途。
例如,
GitLab integration token。 - 选择适当的过期时间。
- 选择 scan scope 复选框。 这是集成唯一需要的选项。
- 为您的 API token 赋予一个有意义的名称来标识其用途。
例如,
- 选择 Create token。
- 生成 token 后,将其复制到剪贴板。 此 token 是敏感信息,请妥善保管。
现在您已成功创建了可用于集成的 GitGuardian API token。
为您的项目设置 GitGuardian 集成
先决条件:
- 您必须拥有项目的 Maintainer(维护者)角色。
创建并复制您的 API token 后,配置 GitLab 拒绝提交:
为您的项目启用集成:
- 在左侧边栏,选择 Search or go to 并找到您的项目或组。
- 选择 Settings > Integrations。
- 选择 GitGuardian。
- 在 Enable integration 中,选择 Active 复选框。
- 在 API token 中,粘贴来自 GitGuardian 的 token 值。
- 可选。选择 Test settings。
- 选择 Save changes。
GitLab 现在已准备好根据 GitGuardian 策略拒绝提交。
跳过密钥检测
如果需要,您可以跳过 GitGuardian 密钥检测。跳过推送中所有提交的密钥检测选项与原生密钥检测的选项相同。以下任一方式:
- 在某个提交消息中添加
[skip secret push protection]。 - 使用
secret_push_protection.skip_allpush 选项。
已知问题
- 推送可能会延迟或超时。使用 GitGuardian 集成时:
- 推送会发送到第三方。
- GitLab 无法控制与 GitGuardian 的连接或 GitGuardian 的处理过程。
- 由于GitGuardian API 限制,集成会忽略超过 1MB 的文件。这些文件不会被扫描。
- 如果推送的文件名超过 256 个字符,推送会失败。
- 更多信息,请参阅 GitGuardian API 文档。
下面的故障排除步骤展示了如何缓解其中一些问题。
故障排除
使用 GitGuardian 集成时,您可能会遇到以下问题。
500 HTTP 错误
您可能会收到 HTTP 500 错误。
当提交包含大量已更改文件时,请求超时会导致此问题。
如果在一次提交中更改超过 50 个文件时发生此问题:
- 将您的更改拆分为更小的提交。
- 逐个推送较小的提交。
错误:Filename: ensure this value has at most 256 characters
您可能会收到 HTTP 400 错误,提示 Filename: ensure this value has at most 256 characters。
当您在该推送中更改的某些文件名(不是路径)超过 256 个字符时,会发生此问题。
解决方法是尽可能缩短文件名。 例如,如果文件名无法缩短,因为它是框架自动生成的,请禁用集成并尝试再次推送。 如果需要,之后不要忘记重新启用集成。