thingzio/devtrace-action

GitHub: thingzio/devtrace-action

DevTrace Action 是一个 GitHub Action,在 Pull Request 阶段自动评估贡献者的信任度评分并发布风险摘要,帮助维护者在合并代码前识别潜在的供应链安全风险。

Stars: 2 | Forks: 0

# DevTrace GitHub Action [![DevTrace](https://static.pigsec.cn/wp-content/uploads/repos/cas/b7/b71f1dc7cd5e923dd7c88639d6f1d9c56901db4183067b0512e252ff3559b978.svg)](https://github.com/thingzio/devtrace-action/actions/workflows/devtrace.yml) [![GitHub Marketplace](https://img.shields.io/badge/Marketplace-DevTrace-blue.svg)](https://github.com/marketplace/actions/devtrace) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) **使用 [DevTrace](https://devtrace.thingz.io) 自动评估 pull request 贡献者的供应链风险。**在每个 PR 上发布信任度评分评论,并可选择阻止来自低信任度贡献者的合并。 ## 为什么需要? 供应链攻击会利用贡献者的信任。DevTrace 会根据涵盖身份、参与度、社区和行为模式的 22 个以上信号对 PR 作者进行评估——为维护者在代码合并之前提供可操作的上下文。 ## 快速开始 ``` name: DevTrace PR Check on: pull_request: types: [opened, synchronize] permissions: pull-requests: write checks: write # required when using min-score jobs: score: runs-on: ubuntu-latest steps: - uses: thingzio/devtrace-action@v1 with: token: ${{ secrets.DEVTRACE_TOKEN }} ``` 在 [devtrace.thingz.io/settings](https://devtrace.thingz.io/settings) 获取您的 `DEVTRACE_TOKEN`(创建一个带有 `dt_` 前缀的 API token),然后将其添加为仓库 secret。 ## 输入项 | 输入项 | 必需 | 默认值 | 描述 | |-------|----------|---------|-------------| | `token` | 是 | — | DevTrace API token(`dt_` 前缀)。 | | `min-score` | 否 | — | 最低分数(0.0–1.0)。如果任何贡献者的分数低于此阈值,则创建一个失败的 GitHub Check Run。 | | `repo` | 否 | 当前仓库 | 用于评分的仓库上下文(`owner/repo`)。 | | `trusted-orgs` | 否 | — | 逗号分隔的 GitHub 组织 slug,其成员将获得信任度加成。 | | `api-url` | 否 | `https://devtrace.thingz.io` | DevTrace API 基础 URL。 | | `github-token` | 否 | `${{ github.token }}` | 用于发布 PR 评论和创建 check run 的 GitHub token。 | ## 输出项 | 输出项 | 描述 | |--------|-------------| | `score` | 数字分数(0.0–1.0) | | `grade` | 字母评级(从 A+ 到 F) | | `risk-summary` | 一行风险评估 | ## 示例 ### 强制执行最低分数 ``` - uses: thingzio/devtrace-action@v1 with: token: ${{ secrets.DEVTRACE_TOKEN }} min-score: '0.5' ``` 在您的分支保护规则中将 **DevTrace Score** 添加为必需的状态检查,以阻止来自低信任度贡献者的合并。 ### 为受信任的组织成员提升分数 ``` - uses: thingzio/devtrace-action@v1 with: token: ${{ secrets.DEVTRACE_TOKEN }} trusted-orgs: 'my-org,partner-org' min-score: '0.4' ``` ### 在后续步骤中使用输出 ``` - uses: thingzio/devtrace-action@v1 id: devtrace with: token: ${{ secrets.DEVTRACE_TOKEN }} - if: steps.devtrace.outputs.grade == 'F' run: echo "::warning::Low trust contributor detected" ``` ## 工作原理 1. 提取 PR 作者和所有提交作者(去重) 2. 通过 [DevTrace API](https://devtrace.thingz.io/help#api) 对每位贡献者进行评分 3. 发布(或更新)一条包含分数、评级和风险评估的 PR 评论 4. 如果设置了 `min-score`,则创建一个带有通过/失败状态的 GitHub Check Run Bot 账户(分数为 0,评级为 F)会自动排除在阈值检查之外。 ## 权限 | 权限 | 何时需要 | |-----------|-------------| | `pull-requests: write` | 始终需要 — 用于发布和更新 PR 评论 | | `checks: write` | 当设置 `min-score` 时 — 用于创建 check run | `github-token` 输入默认为 `${{ github.token }}`,因此无需手动配置。您的 DevTrace `token` 仅用于评分 API 调用。 ## 许可证 MIT
标签:DevSecOps, GitHub Action, 上游代理, 代码审查, 自动化攻击