thingzio/devtrace-action
GitHub: thingzio/devtrace-action
DevTrace Action 是一个 GitHub Action,在 Pull Request 阶段自动评估贡献者的信任度评分并发布风险摘要,帮助维护者在合并代码前识别潜在的供应链安全风险。
Stars: 2 | Forks: 0
# DevTrace GitHub Action
[](https://github.com/thingzio/devtrace-action/actions/workflows/devtrace.yml)
[](https://github.com/marketplace/actions/devtrace)
[](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, 上游代理, 代码审查, 自动化攻击