tamp-build/tamp-codeql

GitHub: tamp-build/tamp-codeql

Tamp.CodeQL 是一个 .NET 封装库,将 CodeQL 2.x CLI 的数据库创建、分析、上传等操作以类型安全的方式集成到 Tamp 构建管线中。

Stars: 0 | Forks: 0

# Tamp.CodeQL [CodeQL](https://github.com/github/codeql-cli-binaries) CLI 包装器 用于 [Tamp](https://github.com/tamp-build/tamp)。 | 包 | CodeQL | 状态 | |---|---|---| | [`Tamp.CodeQL.V2`](src/Tamp.CodeQL.V2) | 2.x | preview | 要求 `Tamp.Core ≥ 1.0.3`。GitHub PAT 类型为 `Secret` 并通过 `--github-auth-stdin` 传入(而非 argv,因此它不会泄露到进程列表中)。 ## 动词 | 子外观 | 动词 | 备注 | |---|---|---| | `Database` | `Create` | 索引源。必填:`--language`、db 路径。`--source-root`、`--command`、`--build-mode`、`--overwrite`、`--extractor-option`。 | | `Database` | `Init` | 启动构建追踪会话。`--begin-tracing`。 | | `Database` | `TraceCommand` | 包装构建命令——包装器在构建 argv 之前输出 `--` 分隔符。 | | `Database` | `Finalize` | 完成追踪的 DB。`--cleanup`。 | | `Database` | `Analyze` | 运行查询。`--format`、`--output`、`--sarif-category`、`--sarif-add-snippets`、`--download` / `--no-download`。 | | `Database` | `Upgrade` | Schema 升级。`--allow-downgrades`。 | | `Database` | `ExportDiagnostics` | 每个文件的诊断 SARIF。 | | `Database` | `Bundle` | 将 DB 打包以上传。 | | `GitHub` | `UploadResults` | 将 SARIF POST 到 Code Scanning。通过 Secret 传递 Token。 | | `Resolve` | `Languages` / `Queries` | 枚举提取器 / 查询。 | | `Pack` | `Download` / `Install` | 获取并安装 QL 包。 | | `Query` | `Run` | 单查询模式。 | | | `Version` | `codeql version`。 | | | `Raw` | 逃生舱口。 | 通用标志(所有动词):`--threads`、`--ram`、`--verbosity`、`--quiet`、`--no-progress-tracker`、`--logdir`、`--common-caches`。 ## 快速示例 — CI SARIF 上传 ``` using Tamp; using Tamp.CodeQL.V2; [NuGetPackage("codeql", UseSystemPath = true)] readonly Tool CodeQL = null!; [Secret("GitHub token", EnvironmentVariable = "GITHUB_TOKEN")] readonly Secret GitHubToken = null!; Target CreateDb => _ => _.Executes(() => CodeQL.Database.Create(CodeQL, s => s .SetDatabasePath("codeql-db") .SetLanguage("csharp") .SetSourceRoot(".") .SetCommand("dotnet build") .SetOverwrite() .SetRam(8000) .SetThreads(0))); Target Analyze => _ => _ .DependsOn(nameof(CreateDb)) .Executes(() => CodeQL.Database.Analyze(CodeQL, s => s .SetDatabasePath("codeql-db") .AddQuery("codeql/csharp-queries") .SetFormat("sarif-latest") .SetOutput("results.sarif") .SetSarifCategory("primary") .SetSarifAddSnippets())); Target Upload => _ => _ .DependsOn(nameof(Analyze)) .Requires(() => GitHubToken != null) .Executes(() => CodeQL.GitHub.UploadResults(CodeQL, s => s .SetSarifFile("results.sarif") .SetRepository("acme/widgets") .SetRef("refs/heads/main") .SetCommit(Git.Commit) .SetGitHubToken(GitHubToken) .SetWaitForProcessing() .SetWaitForProcessingTimeout(120))); ``` ## 发布 参见 [MAINTAINERS.md](MAINTAINERS.md)。
标签:CLI封装工具, CodeQL, .NET工具包, SARIF, SAST, 代码安全分析, 命令行包装器, 多人体追踪, 威胁建模, 安全左移, 安全评估工具, 开发运维安全, 构建追踪, 盲注攻击, 自动化代码扫描, 静态应用安全测试