forked from Gitlink/gitlink-cli
docs(compliance-skill): 新增端到端合规检查示例
This commit is contained in:
parent
f071f456fa
commit
ef2aa17c8e
|
|
@ -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 <owner> --repo <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/<owner>/<repo>.git /tmp/<repo>-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` 等为占位假值,勿当作真实泄露
|
||||
Loading…
Reference in New Issue