集成指南

将安全扫描
融入工作流

通过 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
{
  "id": "abc123",
  "status": "completed",
  "verdict": "dangerous",
  "risk_score": 87,
  "report_url": "https://clawsafe.dev/report/abc123"
}
GET /api/report/:id

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

Response
{
  "id": "abc123",
  "verdict": "dangerous",
  "risk_score": 87,
  "findings": [
    {
      "category": "data_exfiltration",
      "severity": "critical",
      "title": "检测到可疑的 C2 通信",
      "description": "...",
      "confidence": 0.92
    }
  ],
  "summary": "该技能包含数据外泄行为..."
}

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"}')

          VERDICT=$(echo $RESULT | jq -r '.verdict')
          SCORE=$(echo $RESULT | jq -r '.risk_score')

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

          if [ "$VERDICT" = "dangerous" ]; 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"

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

VERDICT=$(echo "$RESPONSE" | jq -r '.verdict')
SCORE=$(echo "$RESPONSE" | jq -r '.risk_score')
URL=$(echo "$RESPONSE" | jq -r '.report_url')

echo "Verdict: $VERDICT | Risk Score: $SCORE"
echo "报告: $URL"

[ "$VERDICT" = "safe" ] && exit 0 || exit 1

速率限制

扫描 API(POST /api/scan) 10 次/分钟
报告查询(GET /api/report) 60 次/分钟
最大文件大小 10 MB
并发扫描 3 个

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

查看完整 API 文档