gitlink-cli/examples/workflows/gitlink-flow/README.md

91 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# gitlink-flow社区运营自动化端到端工作流
面向 GitLink 智能化服务开源项目贡献赛 **子赛题三(构建端到端自动化工作流)** 的参赛作品。
把开源社区运营中分散的日常工作——Issue 分拣、PR Review 跟进、Release Notes 整理、社区健康检查、贡献者致谢——**串联成一条可一键运行的自动化流水线**,对任意真实 GitLink 仓库生成一份完整的「社区运营周报」。
作者Ct201314
## 这是什么
子赛题三要求「组合 gitlink-cli 已有命令和 Skills完成一个可复现的端到端自动化场景串联 ≥3 个调用」。本作品串联 **6 个步骤**,复用了我在子赛题二完成的 **5 个自研 Skill** 的能力,远超 3 个的要求:
```mermaid
flowchart TD
A["采集主调用链gitlink-cli 命令<br/>repo +info / issue +list / pr +list / release +list<br/>未装 CLI 时回退 glapi 直连)"] --> B["① Issue 自动分拣<br/>bug / feature / question / 新手友好分类"]
B --> C["② PR Review 汇总<br/>开放 / 合并 / 关闭统计 + 待 Review 清单"]
C --> D["③ Release Notes 生成<br/>按 conventional commits 归类"]
D --> E["④ 社区健康体检<br/>复用 gitlink-scaffold 能力"]
E --> F["⑤ 贡献者致谢<br/>复用 gitlink-contributor 能力"]
F --> G["⑥ 社区运营周报<br/>汇总以上全部为一份 Markdown 周报"]
G --> H["outputs/&lt;owner&gt;_&lt;repo&gt;_flow.md周报<br/>或 --format json供 Agent 消费)"]
```
其中 ①②③ 三个子工作流**精准对标官方 `examples/workflows/` 列出的三个参考场景**Issue 自动分拣、PR Review、Release Notes 生成),④⑤ 复用自研 Skill⑥ 汇总输出。
采集阶段优先调用 `gitlink-cli` 已有命令(`repo +info`、`issue +list`、`pr +list`、`release +list`),符合赛题「组合 gitlink-cli 命令」的要求;`src/cli.py` 负责命令封装,`src/glapi.py` 仅在本机未安装 gitlink-cli 时作为直连 fallback保证工作流不因依赖缺失而中断。
## 与子赛题二的区别
子赛题二交付的是**独立可复用的 Skill**;本作品交付的是**串联多个步骤的完整解决方案**——它把这些能力编排成一条端到端流水线,一条命令产出社区运营全景。
## 快速开始
环境Python 3.10+(采集与编排仅用标准库,无需登录)。
```powershell
# 一键运行(默认分析 Gitlink/gitlink-cli
.\scripts\run_demo.ps1
# 指定仓库
.\scripts\run_demo.ps1 -Owner <owner> -Repo <repo>
# 或直接调用
python src/flow.py --owner Gitlink --repo gitlink-cli
python src/flow.py --owner Gitlink --repo gitlink-cli --format json
python src/flow.py --config examples/config.json # 批量多仓库
```
产物输出到 `outputs/<owner>_<repo>_flow.md`
## 目录结构
```
gitlink-flow/
├── src/
│ ├── glapi.py GitLink 公开 API 客户端(直连 fallback
│ ├── cli.py gitlink-cli 命令封装(主调用链)
│ ├── steps.py 工作流步骤库(三个子工作流 + 复用 Skill 能力)
│ ├── flow.py 编排器主入口(串联 6 步)
│ └── report.py 社区运营周报生成
├── scripts/run_demo.ps1 一键复现脚本
├── examples/
│ ├── config.json 批量配置
│ └── demo_outputs/ 真实运行产物(社区运营周报)
├── tests/test_flow.py 单元测试16 个用例)
├── docs/ 架构、快速开始、验证记录
├── requirements.txt
└── LICENSE
```
## 真实验证
在真实仓库 `Gitlink/gitlink-cli` 上跑通生成的周报准确反映了社区现状17 个 Issue → 识别 5 个新手友好任务20 个开放 PR含真实的 fork PR列入待 Review社区健康度 50/100贡献者致谢榜从 127 条提交生成的分类 Release Notes。完整产物见 [`examples/demo_outputs/`](examples/demo_outputs/),验证记录见 [`docs/verification.md`](docs/verification.md)。
单元测试:
```bash
python -m pytest tests/ -q # 16 passed
```
## 设计要点
- **组合而非重写**:编排器只负责串联,每个步骤是独立可测的纯函数,复用已验证的 Skill 能力。
- **对标官方参考**:三个子工作流对齐官方 examples/workflows 的三个参考场景,便于理解与收录。
- **通用可复现**:对任意 GitLink 公开仓库都能跑,数据只读、零第三方依赖(核心)、一键复现。
- **Agent 友好**`--format json` 输出供 AI Agent 消费,可嵌入更大的自动化链路。
## 许可证
[Mulan PSL v2](LICENSE),与 gitlink-cli 主仓库保持一致。