11 KiB
| name | version | description | metadata | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| gitlink-contributor-insight | 1.1.0 | 贡献者活跃度分析:分析仓库贡献者的活跃度、贡献趋势和工作节奏,生成贡献者洞察报告。当用户需要分析贡献者活跃度、查看团队贡献趋势、评估成员参与度时触发。 |
|
gitlink-contributor-insight(贡献者活跃度分析)
CRITICAL — 开始前必须先阅读 ../gitlink-shared/SKILL.md,其中包含认证、权限处理和 API 注意事项。
CRITICAL — 本 Skill 为只读操作,不会修改任何仓库。无需用户额外确认即可执行。
CRITICAL — GitLink 操作只能用 gitlink-cli。禁止用 gh(GitHub CLI)操作 GitLink 资源。
前置条件: 先阅读
../gitlink-shared/SKILL.md了解认证和全局参数。
⚠️ 命令可用性声明
gitlink-cli 的命令集在持续演进中。以下命令当前版本可能不可用,执行前先验证:
| 命令 | 状态 | 替代方案 |
|---|---|---|
repo +contributors |
❌ 不可用 | 从 pr +list 提取 author_login + repo +info 获取 contributor_users_count |
user +heatmap |
✅ 可用 | 贡献热力图 |
user +stats |
✅ 可用 | 用户聚合统计 |
user +trends |
✅ 可用 | 用户项目趋势 |
repo +info |
✅ 可用 | — |
pr +list |
✅ 可用 | — |
user +info |
✅ 可用 | — |
issue +list |
✅ 可用 | — |
核心原则:优先使用可用的 Shortcut 命令。当所需命令不可用时,从
pr +list和user +info中提取等效数据,并在报告中标注"数据来源:PR 列表(命令 X 不可用)"。
功能概述
面向开源社区管理者和维护者的贡献者分析工具:
- 项目概览 — 获取仓库贡献者规模和基本信息
- 贡献数据分析 — 通过
pr +list提取每位贡献者的 PR 数量和时间分布 - 用户画像 — 通过
user +info了解贡献者背景 - 趋势判断 — 从 PR 时间序列推断贡献趋势
- 洞察报告 — 生成贡献者活跃度排名和团队健康度评估
工作流:贡献者分析全流程
Step 1:获取仓库基本信息
gitlink-cli repo +info --owner <owner> --repo <repo> --format json
提取:contributor_users_count、full_name、description、default_branch、fork_info(如为 Fork 项目)。
Step 2:获取贡献者列表(通过 PR 数据)
由于 repo +contributors 不可用,改用两步获取贡献者:
# 2a. 获取所有 PR(含已合并和已关闭)
gitlink-cli pr +list --owner <owner> --repo <repo> --format json
# 2b. 如果 Issue 数据也需要
gitlink-cli issue +list --owner <owner> --repo <repo> --format json
从 pr +list 返回数据中:
- 提取所有唯一的
author_login作为实际代码贡献者 - 统计每位作者的 PR 数(
pull_request_status: 0=open, 1=merged, 2=closed) - 记录每个 PR 的
pr_full_time用于时间分析 - 记录每个 PR 的
journals_count(评论/审核活动数)
从 issue +list 返回数据中:
- 提取所有唯一的
author_login作为 Issue 参与者 - 统计每位作者的 Issue 数
如果 PR 数量较多(>50),按
author_login聚合后取 PR 数前 10 的贡献者分析,报告中注明"基于 Top 10 分析"。
Step 3:逐位贡献者深度分析
对每位贡献者执行:
# 用户基本信息
gitlink-cli user +info --login <username> --format json
# 贡献热力图、聚合统计、项目趋势
gitlink-cli user +heatmap --user <username> --format json
gitlink-cli user +stats --user <username> --format json
gitlink-cli user +trends --user <username> --format json
从 user +info 提取:login、name、created_time(注册时间)、user_projects_count、user_org_count、user_identity。
从 user +heatmap/+stats/+trends 补充贡献频率、贡献产出和项目趋势。如果这些端点返回空或权限不足,再使用 PR/Issue 列表推算:
| 维度 | 替代数据源 | 分析要点 |
|---|---|---|
| 贡献频率 | PR 时间戳列表 | 统计活跃天数、相邻 PR 间隔、判断"持续贡献者"还是"间歇参与者" |
| 贡献产出 | pr +list 聚合 |
PR 数、Issue 数,区分"代码贡献者"和"问题反馈者" |
| 活跃趋势 | PR 按日/周聚合 | 贡献量上升/稳定/下降,识别"上升期贡献者"和"逐渐淡出者" |
⚠️ 控制 API 调用:贡献者 >15 人时,仅分析 PR 数最高的前 10 位。每人 1 次
user +info调用(共 ≤10 次),PR 数据已在 Step 2 全量获取。
Step 4:贡献者分级与分类
4.1 活跃度分级
| 级别 | 判定标准 |
|---|---|
| 🔥 核心贡献者 | 最近 30 天有贡献 + 总贡献 PR ≥ 5(或总贡献 PR > 10) |
| 🌟 活跃贡献者 | 最近 60 天有贡献 + 总贡献 ≥ 3 |
| 🌱 新兴贡献者 | 最近 90 天首次出现 + 贡献频率上升 |
| 💤 休眠贡献者 | 最近 90 天无贡献 + 历史有贡献 |
年轻项目特殊处理:项目历史 < 30 天时,放宽标准——所有活跃贡献者均可标记为核心贡献者,报告中注明"项目处于早期阶段,分级标准已放宽"。
4.2 贡献类型分类
| 类型 | 判定 |
|---|---|
| 代码贡献者 | PR 数量 > Issue 数量 |
| 问题反馈者 | Issue 数量 > PR 数量 |
| 全能贡献者 | PR 和 Issue 数量均衡(差异 ≤ 1) |
Step 5:生成贡献者洞察报告
按下方输出模板生成报告,并根据数据可用性灵活调整章节。
输出模板
# 👥 贡献者洞察报告:{{仓库名}}
> 分析时间:{{当前时间}}
> 仓库:{{full_name}}
> 总贡献者:{{contributor_users_count}} 人,本次分析:{{analyzed_count}} 人
---
## 一、团队概览
| 指标 | 数值 |
|------|------|
| 总贡献者 | {{contributor_users_count}} |
| 核心贡献者 | {{core_count}} |
| 活跃贡献者 | {{active_count}} |
| 新兴贡献者 | {{new_count}} |
| 休眠贡献者 | {{dormant_count}} |
| 近 30 天活跃率 | {{active_30d_rate}}% |
---
## 二、贡献者活跃度排行榜
| 排名 | 贡献者 | 级别 | 类型 | 活跃天数 | 总PR | 总Issue | 趋势 |
|------|--------|------|------|---------|------|---------|------|
| 1 | {{login}} | 🔥 | 代码 | {{d}} 天 | {{pr_count}} | {{issue_count}} | ↑ |
| ... | ... | ... | ... | ... | ... | ... | ... |
---
## 三、重点贡献者分析
> 仅展示核心/活跃贡献者。
### 🔥 {{login}}(核心贡献者)
| 维度 | 数据 | 说明 |
|------|------|------|
| 活跃天数 | {{d}} 天 | {{评价}} |
| 总 PR 数 | {{pr_count}} | |
| 总 Issue 数 | {{issue_count}} | |
| 贡献趋势 | {{trend_direction}} | {{trend_comment}} |
**PR 贡献明细**:(可选,数据充足时展示)
| PR# | 标题 | 日期 | 类型 |
|-----|------|------|------|
| ... | ... | ... | feat/fix/refactor |
---
## 四、团队健康度评估
### 健康度指标
| 指标 | 状态 | 说明 |
|------|------|------|
| 核心贡献者占比 | {{core_ratio}}% | {{core_comment}} |
| 新老比例 | {{new_old_ratio}} | {{new_old_comment}} |
| 贡献频率稳定性 | {{stability}} | {{stability_comment}} |
| 知识分散度 | {{bus_factor}} | {{bus_factor_comment}} |
### 风险提示
- ⚠️ **核心贡献者不足**(当 core_count < 3 时):仅 {{core_count}} 位核心贡献者,存在单点依赖风险(Bus Factor = {{core_count}})。
- ⚠️ **贡献者流失**(当 dormant_rate > 50% 时):超过一半的贡献者已不活跃,需要关注社区留存。
- ⚠️ **缺少新鲜血液**(当 new_count == 0 时):近期无新兴贡献者,建议通过 Good First Issue 等方式吸引新人。
- ℹ️ **项目处于早期阶段**(当项目历史 < 30 天时):贡献者分级标准已放宽,以上风险置信度有限。
- ✅ **团队健康**(当以上情况均不满足时):贡献者结构合理,团队运转良好。
---
## 五、社区建设建议
1. **激励核心贡献者**:{{核心贡献者维护建议}}
2. **激活休眠贡献者**:{{休眠贡献者召回建议}}
3. **吸引新贡献者**:{{新贡献者吸引建议}}
4. **平衡贡献类型**:{{贡献类型平衡建议}}
---
## 📋 数据来源与局限性
| 数据维度 | 来源 | 可靠性 |
|----------|------|--------|
| 贡献者数量 | `repo +info` | ✅ 可靠 |
| PR 贡献数据 | `pr +list` 全量 | ✅ 可靠 |
| Issue 数据 | `issue +list` | ✅ 可靠 |
| 用户信息 | `user +info` | ✅ 可靠 |
| 贡献热力图 | `user +heatmap` | ✅ 可靠 |
| 统计信息 | `user +stats` | ✅ 可靠 |
| 趋势数据 | `user +trends` | ✅ 可靠 |
> **局限性**:本报告仅反映 GitLink 平台活动,不包括其他平台(GitHub、GitLab 等)的数据。
异常场景处理
| 场景 | 处理方式 |
|---|---|
repo +contributors 不可用(当前版本常态) |
从 pr +list 的 author_login 提取贡献者列表 |
user +heatmap / +stats / +trends 返回空或权限不足 |
从 PR 时间戳推算活跃天数,PR 聚合得产出量,时间分布得趋势 |
pr +list 返回空 |
标注"仓库暂无 PR 数据",仅展示 repo +info 基本信息 |
user +info 返回空 |
标注"用户信息不可用",仅展示 PR 统计 |
| 贡献者 > 15 人 | 仅分析 PR 数最高的前 10 位,报告中注明"基于 Top 10 分析" |
| 项目历史 < 30 天 | 放宽分级标准,报告中注明"项目处于早期阶段" |
issue +list 返回空 |
Issue 数列为 0,贡献类型统一标注"代码贡献者" |
注意事项
- ✅ 所有命令使用
--format json,确保可解析 - ✅ 本 Skill 为纯只读分析,不会修改任何仓库
- ✅ Owner/repo 优先从
git remote自动解析,无 git 上下文时询问用户 - ✅ 优先使用用户统计快捷命令:
user +heatmap/+stats/+trends可直接提供贡献热力图、聚合统计和项目趋势;PR/Issue 列表用于补充仓库内贡献明细 - ⚠️
repo +contributors不可用:贡献者列表从 PR 作者提取,可能与实际contributor_users_count有差异(后者包含未提 PR 的参与者) - ⚠️ 数据仅反映 GitLink 平台活动:不包括 GitHub 或其他平台的数据
- ℹ️ 参照样例:
EXAMPLES.md包含手动执行和 Agent 调用两种场景的完整样例,examples/jiangtx-gitlink-cli.md包含原始命令输出数据