集成指南

将安全扫描
融入工作流

通过 REST API 将 ClawSafe 接入你的 CI/CD 流水线、自动化脚本或安全审查流程。

REST API

所有功能通过 REST API 暴露,支持 JSON 请求和响应。目前免费使用,带速率限制。

POST /api/scan

提交扫描任务。支持 URL(GitHub / ClawHub / ZIP)或文件上传(multipart)。

Request Body
{
  "url": "https://github.com/user/skill-repo",
  "locale": "zh"
}
Response
{
  "reportId": "abc123",
  "id": "abc123",
  "status": "completed",
  "verdict": "恶意",
  "verdictLevel": "malicious",
  "riskScore": { "score": 87 },
  "risk_score": 87,
  "report_url": "https://clawsafe.dev/report/abc123"
}
GET /api/report/:id

获取指定 ID 的完整报告,包含 findings 列表。

Response
{
  "data": {
    "id": "abc123",
    "type": "scan-report",
    "attributes": {
      "verdictLevel": "malicious",
      "riskScore": { "score": 87 },
      "findings": [
        {
          "category": "data_exfiltration",
          "severity": "critical",
          "title": "检测到可疑的 C2 通信"
        }
      ]
    }
  }
}

GitHub Actions 示例

在 PR 合并前自动扫描技能,阻断高风险技能的部署。

GitHub Actions
name: ClawSafe Security Scan

on:
  pull_request:
    paths:
      - 'skills/**'

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Scan skill with ClawSafe
        run: |
          RESULT=$(curl -s -X POST https://clawsafe.dev/api/scan \
            -H "Content-Type: application/json" \
            -d '{"url": "${{ github.server_url }}/${{ github.repository }}/tree/${{ github.sha }}/skills", "locale": "zh"}')

          VERDICT=$(echo $RESULT | jq -r '.verdictLevel')
          SCORE=$(echo $RESULT | jq -r '.riskScore.score')

          echo "Verdict: $VERDICT, Risk Score: $SCORE"

          if [ "$VERDICT" = "malicious" ] || [ "$VERDICT" = "high_risk" ]; then
            echo "::error::ClawSafe: Dangerous skill detected (score: $SCORE)"
            exit 1
          fi

Shell 脚本示例

在本地开发或 CI 环境中快速扫描技能。

bash
#!/bin/bash
# clawsafe-scan.sh - 扫描本地技能目录

SKILL_DIR="$1"
API_BASE="https://clawsafe.dev/api"

if [ -z "$SKILL_DIR" ]; then
  echo "用法: ./clawsafe-scan.sh <skill-dir>"
  exit 1
fi

echo "正在扫描: $SKILL_DIR"

ARCHIVE=$(mktemp -t clawsafe-skill.XXXXXX.zip)
zip -rq "$ARCHIVE" "$SKILL_DIR"

RESPONSE=$(curl -s -X POST "$API_BASE/scan" \
  -F "file=@$ARCHIVE" \
  -F "locale=zh")

VERDICT=$(echo "$RESPONSE" | jq -r '.verdictLevel')
SCORE=$(echo "$RESPONSE" | jq -r '.riskScore.score')
REPORT_ID=$(echo "$RESPONSE" | jq -r '.reportId')

echo "Verdict: $VERDICT | Risk Score: $SCORE"
echo "报告: https://clawsafe.dev/report/$REPORT_ID"
rm -f "$ARCHIVE"

case "$VERDICT" in
  malicious|high_risk) exit 1 ;;
  *) exit 0 ;;
esac

速率限制

扫描 API(POST /api/scan) 每 IP 每小时 5 次
报告查询(GET /api/report) 不限
最大文件大小 10 MB

如需更高配额,请联系 [email protected]

查看完整 API 文档