仓库敏感信息检测工具

一个结合Microsoft Agent Framework和GitHub MCP服务器的自动化工具,用于扫描拉取请求中的敏感信息和个人身份信息(PII)。

  • by iuf26
  • Jupyter Notebook
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 iuf26/project-detect-secrets-in-repo

使用说明

检测回购中的秘密

此存储库托管一个代理工作流,通过将Microsoft代理框架与GitHub MCP(模型上下文协议)服务器相结合,扫描拉取请求中的机密和PII。每当PR目标出现时,GitHub Actions工作流会自动运行检测器 main,前提是自助跑步者在线。

使用此README作为本地开发、工作流自动化和环境配置的快速入门指南。

需求

  • python 3.11
  • 诗歌 2.2.1
  • Docker桌面或Docker引擎在您的路径上可用

可选但有用:

  • github_mcp.ipynb 包含演示如何与GitHub MCP服务器交互和构建自定义代理的小型实验。

本地设置

# 1. Install dependencies
poetry install

# 2. Install the Microsoft Agent Framework preview
poetry run pip install --pre agent-framework
# or, if you want Poetry to manage it directly:
poetry run poetry add --allow-prereleases agent-framework

# 3. Start the local workflow/CLI
poetry run start

跑步 poetry run start 启动中定义的入口点 pyproject.toml,进而加载中找到的域代理 domain/agents.调整 domain/settings.py 指向你的环境。

GitHub工作流

自动化生活在 .github/workflows/detect_secrets.yml。它是在对以下对象发出拉取请求时触发的 main 并执行您在本地运行的相同秘密扫描代理。因为工作流需要Docker和对开发工具的访问,所以它被配置为 自助跑步者.

自托管运行程序设置

  1. 将此存储库克隆到将充当运行器的计算机上。
  2. 在GitHub UI中,导航到 Settings → Actions → Runners → New self-hosted runner.
  3. 选择您的操作系统,按照注册说明进行操作,并分配标签 self-hosted 和 mhp-workshop-runner.
  4. 启动运行程序,并在需要进行PR扫描时保持其运行。

一旦跑步者上线,每个公关都会 main 将触发工作流程,并自动对PR的任何发现进行评论。

环境变量

复制 .env.example 到 .env (或在CI系统中配置机密)并填充以下变量:

变量 描述
BASE_URL OpenAI基本URL,例如。 https://api.openai.com/v1.
OPENAI_API_KEY 被授权调用所选模型的API密钥。
MODEL_ID 用于代理推理的模型标识符。
GITHUB_PAT_TOKEN 工作流使用的细粒度GitHub PAT。
GITHUB_REPO 存储库名称,例如 owner/repo.
GITHUB_OWNER 拥有仓库的GitHub用户名或组织。
TARGET_PR_NUMBER 工作流程应分析的PR编号。通常在CI期间作为输入传递
SECRETS_DETECTOR_AGENT_COUNT 并行代理工作者的数量(整数)。
DOCKER_EXEC_PATH Docker可执行文件的名称或绝对路径(docker 在macOS/Linux上)。

GitHub操作库秘密

将这些存储库机密添加到 Settings → Secrets and variables → Actions → Repository secrets 因此工作流可以进行身份验证:

机密 描述
GH_TOKEN GitHub PAT用于运行秘密检测的存储库。
MODEL_ID 代理应使用的模型的ID。
OPENAI_API_KEY 与所选模型匹配的OpenAI API键。
GH_REPOSITORY 存储库名称(owner/repo)这应该加以分析。
GH_REPOSITORY_OWNER 要扫描的存储库的所有者(用户或组织)。
GH_REPOSITORY_PR_NUMBER 提取目标分析请求号。

创建GitHub PAT

  1. 首选 Profile → Settings → Developer Settings → Personal access tokens → Fine-grained tokens.
  2. 创建仅限于此存储库的令牌。
  3. 授予以下权限:内容(读/写)、环境(读)、问题。

将令牌存储为 GITHUB_PAT_TOKEN 在你的 .env 文件或CI秘密管理器。

其他资源

  • 了解有关GitHub MCP服务器的更多信息:https://github.com/github/github-mcp-server
  • domain/agents/chunk_exporter.py 演示了如何对数据进行分块以进行扫描。
  • samples/ 包括由检测器产生的示例伪影。