Gitleaks Action
┌─○───┐
│ │╲ │
│ │ ○ │
│ ○ ┌─┴───────────────────┐
└─░─┤ 4 个 GitHub Actions │
└─────────────────────┘
Gitleaks 是一个用于检测和防止 git 仓库中硬编码的密码、API 密钥和令牌等机密信息的 SAST 工具。Gitleaks 是一个易于使用的全in-one解决方案,用于检测代码中过去或现在的机密信息。在 GitHub 工作流中启用 Gitleaks-Action,以便在发生机密信息泄露时立即收到警报。查看我们的演示 这里 (.gif) 和 这里 (.png),或者查看 v2 版本的新特性 这里。别忘了查看我们的 博客,其中详细介绍了如何为组织和企业配置和设置 Gitleaks-Action。
使用示例
name: gitleaks
on:
pull_request:
push:
workflow_dispatch:
schedule:
- cron: "0 4 * * *" # 每天凌晨4点运行一次
jobs:
scan:
name: gitleaks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE}} # 仅对组织账户需要,个人账户不需要。
环境变量:
GITHUB_TOKEN
:此变量由 GitHub 在任何操作启动时自动分配。你可以在这里阅读更多关于该令牌的信息。 gitleaks-action 使用此令牌调用 GitHub API 来评论 PR。GITLEAKS_LICENSE
(组织账户必需,个人账户不需要):可以在 gitleaks.io 获取 gitleaks-action 许可证。应将其作为加密密钥添加到仓库或到组织。GITLEAKS_NOTIFY_USER_LIST
(可选):当 gitleaks-action 检测到泄露时应该通知的 GitHub 账户列表。如果 GitHub 通知设置允许,GitHub 会向用户发送电子邮件。格式应该是以逗号分隔,每个用户名前缀为@
。例如:@octocat,@zricethezav,@gitleaks
。空格也可以。GITLEAKS_ENABLE_COMMENTS
(可选):布尔值,用于打开或关闭 PR 评论。默认值为true
。 设置为false
以禁用评论。GITLEAKS_CONFIG
(可选):gitleaks 配置文件的路径。GITLEAKS_ENABLE_UPLOAD_ARTIFACT
(可选):布尔值,用于打开或关闭在 gitleaks 检测到机密信息时上传 sarif 工件。默认为true
。GITLEAKS_ENABLE_SUMMARY
(可选):布尔值,用于启用或禁用 gitleaks 作业摘要。默认为true
。GITLEAKS_VERSION
(可选):要使用的特定 Gitleaks 版本(例如8.15.3
,不带v
前缀)或使用latest
始终使用最新可用版本。默认为硬编码的版本号。
问题
我需要一个免费的许可密钥吗?
如果你正在扫描属于组织账户的仓库,你需要获取一个免费许可密钥
如果你正在扫描属于个人账户的仓库,则不需要许可密钥。
如何获取免费的许可密钥?
你可以访问 gitleaks.io 注册免费许可密钥。点击"Sign Up"将带你到一个 Google 表单,你需要提供姓名、电子邮件和公司。提交后不久,你将收到一封包含许可密钥的电子邮件。
我可以使用自定义的 gitleaks 配置吗?
可以!这个 GitHub Action 遵循与 gitleaks CLI 工具类似的优先顺序。你可以使用 GITLEAKS_CONFIG
来显式设置配置路径,或者在仓库根目录创建一个 gitleaks.toml
文件,它将被 gitleaks-action 自动检测并使用。
这个 GitHub Action 会向第三方发送任何数据吗?
gitleaks-action唯一发送给第三方的数据是与许可证密钥验证相关的数据(即GITLEAKS_LICENSE
、仓库名称和仓库所有者),这些数据会发送到许可证密钥验证服务keygen。您的代码永远不会离开GitHub,因为扫描是在GitHub Actions的Docker容器内进行的。
我可以将gitleaks-action作为GitHub代码扫描的第三方工具吗?
虽然_可以_,但不建议这样做,因为它会给人一种虚假的安全感。如果一个秘密在一次提交中泄露,然后在后续提交中被移除,GitHub安全仪表板中的安全警报会显示为已解决,即使该秘密在提交历史中仍然可见。要真正解决泄露问题,您应该轮换秘密(并考虑重写git历史以彻底删除泄露)。
为什么我的gitleaks-action任务突然失败了?
2022年6月21日
2022年6月21日,我们将Gitleaks Action v2合并到master
分支。这是一个破坏性更新,我们尽力通过GitHub、社交媒体等方式联系尽可能多的用户。如果您不知道这个破坏性更新即将到来,我们真诚地为给您带来的不便道歉。好消息是,修复任务失败非常简单!您可以:
请注意,如果您正在扫描属于组织的仓库,您需要获取GITLEAKS_LICENSE才能使用v2(提供免费的"试用"许可证)。这可能会让习惯免费使用Gitleaks-Action的用户感到惊讶,所以我写了一篇博客文章解释我如何/为什么决定将这个项目货币化:https://blog.gitleaks.io/gitleaks-llc-announcement-d7d06a52e801
最后,请查看上面的摘要,了解为什么我认为您会喜欢新的v2版本:v2优势
如何在我的readme中添加gitleaks徽章?
启用gitleaks-action并将
<img alt="gitleaks badge" src="https://img.shields.io/badge/protected%20by-gitleaks-blue">
复制到您的readme中。
许可证变更
自Gitleaks-Action v2.0.0起,许可证已从MIT更改为商业许可证。v2.0.0之前的Gitleaks-Actions版本将保持MIT许可证。
贡献
请查看我们的贡献指南。
版权所有 © 2022 Gitleaks LLC - 保留所有权利