idohomri-io/repo-scanner

GitHub: idohomri-io/repo-scanner

一款跨平台的 daemon 式代码库依赖漏洞扫描工具,支持批量克隆多平台仓库、运行漏洞检测并生成标准化报告。

Stars: 0 | Forks: 0

# Repo Scanner 用于扫描代码库以查找易受攻击依赖项的小型 daemon。 扫描器在设计上是跨平台的: 1. 从 `REPOS` 或 `repos.txt` 读取仓库。 2. 克隆每个仓库,或对本地路径进行快照。 3. 对检出的源代码运行 scanner adapter。 4. 将发现的结果标准化为 JSON。 5. 生成 Markdown 和 JSON 报告。 6. 可选:将结果发送到 webhook,并请求 LLM 生成简明的修复摘要。 OSV-Scanner 是默认的漏洞数据源。LLM 是可选的,仅用于解释和优先处理扫描器的发现结果,而不是用于判断依赖项是否存在漏洞。 ## 配置 编辑 `docker-compose.yml` 中的 `environment` 块。无需 `.env` 文件。 仓库配置为以逗号分隔的 `REPOS` 值。 支持的仓库格式: ``` owner/repo https://github.com/owner/repo.git https://gitlab.com/group/project.git https://bitbucket.org/workspace/project.git git@gitlab.com:group/project.git /absolute/path/to/local/repo ``` 对于私有的 HTTPS 仓库,请设置对应平台的 token: ``` environment: GH_TOKEN: ... GITLAB_TOKEN: ... BITBUCKET_USERNAME: your-bitbucket-username BITBUCKET_TOKEN: ... ``` GitHub 的 `owner/repo` 简写会展开为 `https://github.com/owner/repo.git`,并在设置时使用 `GH_TOKEN`。 对于 SSH Git URL,请将 SSH 凭据挂载或提供到容器环境中。 ## 运行 ``` docker compose up -d ``` 提供的 `docker-compose.yml` 使用已发布的镜像: ``` ghcr.io/idohomri-io/repo-scanner:latest ``` 报告会写入 `reports/YYYY-MM-DD.md`,标准化后的发现结果会写入 `reports/YYYY-MM-DD.findings.json`。 如果设置了 `WEBHOOK_URL`,扫描器会 POST 一个 JSON 数组,其中每个仓库对应一个对象: ``` [ { "date": "2026-06-19", "repo": "owner/repo", "status": "vulnerable", "manifests": ["package-lock.json"], "summary": { "critical": 0, "high": 1, "moderate": 0, "low": 0, "unknown": 0, "failed": 0 }, "findings": [], "error": null } ] ``` `status` 的取值为 `clean`、`vulnerable` 或 `failed` 之一。 ## 可选的 LLM 建议 禁用 LLM 输出: ``` LLM_PROVIDER: none ``` 使用 Ollama: ``` LLM_PROVIDER: ollama LLM_ENDPOINT: http://host.docker.internal:11434 LLM_MODEL: llama3.1 ``` 使用兼容 OpenAI 的 API: ``` LLM_PROVIDER: openai-compatible LLM_ENDPOINT: https://api.openai.com/v1 LLM_MODEL: gpt-4.1-mini LLM_API_KEY: ... ``` ## 退出码 当发现严重/高危漏洞,或至少有一个仓库扫描失败时,`scan.sh` 会以 `1` 退出。daemon 入口点会记录该情况,并按配置的间隔继续运行。
标签:Cutter, Docker, 依赖安全, 安全防御评估, 对称加密, 网络安全研究, 自动化审计, 请求拦截