gitlink-cli/skills/gitlink-community-ops/examples/community-ops-workflow.md

4.5 KiB
Raw Blame History

社区运营自动化工作流 — 端到端示例

场景:项目维护者希望自动处理社区的日常运营工作:新 Issue 自动分类、每周生成社区报告、版本发布时自动生成 Release Notes。

前置条件

  • gitlink-cli 已安装并登录(gitlink-cli auth status
  • 目标仓库已确认(示例使用 z2_cc/gitlink-cli
  • jq 已安装(用于 JSON 解析)

工作流步骤

Step 1Issue 自动分拣

# 1.1 获取所有打开的 Issue
gitlink-cli issue +list --owner z2_cc --repo gitlink-cli --state open --format json

输出示例:

{
  "ok": true,
  "data": [
    {"number": 42, "subject": "登录页面报错500 Internal Server Error", "state": 1},
    {"number": 43, "subject": "建议增加导出功能", "state": 1},
    {"number": 44, "subject": "README 中缺少安装说明", "state": 1}
  ]
}
# 1.2 分析 Issue 内容并进行关键词权重评分AI 驱动)
#     Issue #42: "报错"(5) + "500"(0) = 5分 → Bug → 标签: bug
#     Issue #43: "建议"(8) + "增加"(5) = 13分 → 功能需求 → 标签: enhancement
#     Issue #44: "文档"(10) + "缺少"(4) = 14分 → 文档 → 标签: documentation

# 1.3 获取可用标签列表
gitlink-cli label +list --owner z2_cc --repo gitlink-cli
# 1.4 为 Issue #42 添加标签和分类评论dry-run 模式)
DRY_RUN=true
if [ "$DRY_RUN" = "true" ]; then
  echo "[DRY-RUN] 将为 Issue #42 添加标签: bug"
  echo "[DRY-RUN] 将为 Issue #42 添加评论:自动分类结果"
fi

Expected: 所有未分类的 Issue 被分析并建议标签。dry-run 模式下不实际修改。

Step 2社区周报生成

# 2.1 采集周报数据
gitlink-cli issue +list --owner z2_cc --repo gitlink-cli --state all --format json
gitlink-cli issue +list --owner z2_cc --repo gitlink-cli --state closed --limit 50 --format json
gitlink-cli pr +list --owner z2_cc --repo gitlink-cli --state all --format json
gitlink-cli pr +list --owner z2_cc --repo gitlink-cli --state merged --limit 50 --format json
gitlink-cli commit +list --owner z2_cc --repo gitlink-cli --limit 50
gitlink-cli milestone +list --owner z2_cc --repo gitlink-cli --format json

输出示例Issue 数据):

{
  "ok": true,
  "data": {
    "total_count": 16,
    "issues": [
      {"number": 1, "subject": "...", "state": 2, "created_at": "2026-05-20", "closed_at": "2026-05-21"},
      {"number": 2, "subject": "...", "state": 1, "created_at": "2026-06-01"}
    ]
  }
}

AI 分析逻辑:

总 Issue = 16打开 2 + 关闭 14
关闭率 = 14/16 = 87.5% → 🟢 优秀
平均响应时间 = 计算 closed_at - created_at 的平均天数
近 30 天净变化 = 新增 - 关闭

Step 3自动 Release Notes

# 3.1 获取最新 Release 确定基线版本
gitlink-cli release +list --owner z2_cc --repo gitlink-cli --format json

输出示例:

{
  "ok": true,
  "data": [
    {"tag_name": "v0.2.0", "name": "v0.2.0", "created_at": "2026-06-17"}
  ]
}
# 3.2 获取提交历史
git log v0.2.0..HEAD --format="%H|%s|%an|%ad" --date=short

输出示例:

abc1234|feat: 新增 Webhook 投递监控|z2_cc|2026-06-20
abc1235|fix: 修复 Wiki 侧边栏残留|z2_cc|2026-06-22
abc1236|docs: 更新 CLI 帮助文档|z2_cc|2026-06-24

AI 分析结果:

共 3 次提交feat 1、fix 1、docs 1
涉及 5 个文件,+120/-30 行
推荐版本v0.3.0(有 feat无 breaking
# 3.3 创建 Releasedry-run 模式)
echo "[DRY-RUN] 将创建 Release: v0.3.0"
echo "[DRY-RUN] Release Notes 已生成到 _output/release-notes-v0.3.0.md"

完整命令速览

# Phase 1: Issue Triage
gitlink-cli issue +list --owner z2_cc --repo gitlink-cli --state open --format json
gitlink-cli label +list --owner z2_cc --repo gitlink-cli

# Phase 2: Weekly Report
gitlink-cli issue +list --owner z2_cc --repo gitlink-cli --state all --format json
gitlink-cli pr +list --owner z2_cc --repo gitlink-cli --state all --format json
gitlink-cli commit +list --owner z2_cc --repo gitlink-cli --limit 50

# Phase 3: Release Notes
gitlink-cli release +list --owner z2_cc --repo gitlink-cli --format json
git log <last_tag>..HEAD --format="%H|%s|%an|%ad" --date=short

注意事项

  • 所有写操作默认 dry-run确认后通过 DRY_RUN=false 实际执行
  • 确保在仓库目录下运行(或显式指定 --owner--repo
  • 周报的数据范围建议明确(如"最近 7 天"