From ef2aa17c8e9f0d64a7249cf9ee0cd0df57acde03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=84=B1?= <1877685089@qq.com> Date: Mon, 15 Jun 2026 20:25:44 +0800 Subject: [PATCH] =?UTF-8?q?docs(compliance-skill):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=AB=AF=E5=88=B0=E7=AB=AF=E5=90=88=E8=A7=84=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../examples/compliance-check-workflow.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 skills/gitlink-compliance/examples/compliance-check-workflow.md diff --git a/skills/gitlink-compliance/examples/compliance-check-workflow.md b/skills/gitlink-compliance/examples/compliance-check-workflow.md new file mode 100644 index 0000000..cdc38c6 --- /dev/null +++ b/skills/gitlink-compliance/examples/compliance-check-workflow.md @@ -0,0 +1,112 @@ +# 开源合规检查完整工作流示例 + +**场景**:`z2_cc/gitlink-cli` 准备发版前,做一次完整合规自检(许可证 + 依赖 + 敏感信息 + 版权头),产出结构化报告。 + +## 前置条件 + +- `gitlink-cli` 已安装并登录(`gitlink-cli auth status` 正常) +- 对目标仓库有读权限 +- 批量敏感信息扫描需要本地可 `git clone`(无 clone 条件时见"降级") + +## Step 1:仓库元信息 + +```bash +gitlink-cli repo +info --owner z2_cc --repo gitlink-cli --format json +``` + +提取:`full_name`、`default_branch`、`license`(若平台返回)、`private`。 + +## Step 2:LICENSE 识别 + +```bash +gitlink-cli api GET /z2_cc/gitlink-cli/raw/master/LICENSE +``` + +按 LICENSE 关键词识别类型(MIT / Apache-2.0 / MulanPSL-2 等)。 + +## Step 3:依赖合规分析 + +```bash +# Go 项目 +gitlink-cli api GET /z2_cc/gitlink-cli/raw/master/go.mod +``` + +逐依赖判断许可证,对照兼容性矩阵评估与项目主许可证的兼容性。 + +## Step 4:敏感信息扫描(批量) + +```bash +git clone https://www.gitlink.org.cn/z2_cc/gitlink-cli.git /tmp/gitlink-cli-scan +cd /tmp/gitlink-cli-scan + +# 高危凭据特征 +git grep -nE 'AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{36}|glpat-[A-Za-z0-9\-_]{20}|-----BEGIN .*PRIVATE KEY-----' HEAD + +# 配置文件中的硬编码密钥 +git grep -niE '(password|passwd|pwd|secret|token|apikey|api_key)\s*[:=]' HEAD -- '*.env*' '*.yml' '*.yaml' '*.json' '*.conf' + +# 数据库连接串 +git grep -nE '(mysql|postgres|mongodb|redis)://[^:\s]+:[^@\s]+@' HEAD + +# 历史残留 +git log --all -p -S 'AKIA' --oneline | head +``` + +> **降级**:无 clone 条件时,仅对少量高危文件逐个取内容扫描: +> `gitlink-cli api GET /z2_cc/gitlink-cli/raw/master/.env` 等,并在报告注明"未做全量扫描"。 + +## Step 5:版权声明采样 + +```bash +git ls-tree --name-only HEAD | head +git show HEAD:cmd/auth/login.go | head -5 # 采样源文件头部 +``` + +## Step 6:汇总报告(示例输出) + +```markdown +## ⚖️ 合规检查报告 — z2_cc/gitlink-cli + +📅 检查时间:2026-06-15 +📋 项目许可证:MIT + +### 🔴 必须修复 +| # | 问题 | 文件 | 建议 | +|---|------|------|------| + +### 🟡 建议修复 +| # | 问题 | 文件 | 建议 | +|---|------|------|------| +| 1 | 缺少 SECURITY.md | — | 添加安全披露流程 | + +### 🔴 敏感信息扫描 +| 风险 | 文件 | 行 | 内容特征 | 建议 | +|------|------|----|---------|------| +| 🟢 低 | examples/demo.go | 45 | token: "example_token_for_demo" | 加注释说明是示例 | + +### 📊 合规评分 +| 维度 | 状态 | 评分 | +|------|:----:|:----:| +| 📜 许可证 | ✅ | ★★★★★ | +| 🏷️ 版权声明 | ⚠️ | ★★★☆☆ | +| 📦 依赖合规 | ✅ | ★★★★★ | +| 🔒 安全策略 | ⚠️ | ★★★☆☆ | +| 🔒 敏感信息管控 | ✅ | ★★★★☆ | + +**总体合规评分:82/100** +``` + +## 命令速览 + +```bash +gitlink-cli repo +info --owner --repo --format json +gitlink-cli api GET /:owner/:repo/raw/master/LICENSE +gitlink-cli api GET /:owner/:repo/raw/master/go.mod +git clone https://www.gitlink.org.cn//.git /tmp/-scan +git grep -nE 'AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{36}|glpat-[A-Za-z0-9\-_]{20}|-----BEGIN .*PRIVATE KEY-----' HEAD +``` + +## 注意 + +- 全程只读,不修改远端仓库 +- 示例中出现的 `AKIA...EXAMPLE` 等为占位假值,勿当作真实泄露