6.2 KiB
6.2 KiB
执行样例:jiangtx/gitlink-cli 贡献者活跃度分析
执行日期:2026-06-03 执行版本:gitlink-cli (当前版本) 说明:本文件记录了一次完整的贡献者分析执行过程,包含实际命令输出和最终报告。可作为后续分析的参考模板。
实际执行的命令与输出
1. gitlink-cli repo +info
{
"ok": true,
"data": {
"author": { "id": 148911, "login": "jiangtx", "name": "jiangtx" },
"clone_url": "https://gitlink.org.cn/jiangtx/gitlink-cli.git",
"contributor_users_count": 2,
"default_branch": "master",
"fork_info": {
"fork_form_name": "gitlink-cli",
"fork_project_identifier": "gitlink-cli",
"fork_project_user_login": "Gitlink",
"fork_project_user_name": "GitLink"
},
"forked_from_project_id": 1513956,
"full_name": "jiangtx/gitlink-cli",
"identifier": "gitlink-cli",
"issues_count": 0,
"permission": "Manager",
"private": false,
"project_id": 1547588,
"pull_requests_count": 9,
"size": "13.4 MB",
"watchers_count": 0
}
}
2. gitlink-cli pr +list (关键数据源)
9 个 PR,全部已合并。按作者汇总:
| author_login | PR 数 | PR 编号 | 时间范围 |
|---|---|---|---|
| lindiwen23 | 5 | #1, #6, #7, #8, #9 | 2026-06-01~06-03 |
| jiangtx | 4 | #2, #3, #4, #5 | 2026-06-02~06-03 |
PR 详细列表:
// lindiwen23 的 PR
{ "pull_request_number": 1, "author_login": "lindiwen23",
"name": "feat: 新增 3 个 Skill(onboarding / issue-triage / research-tracker)",
"pr_full_time": "2026-06-01T11:33:00.000+08:00", "pull_request_status": 1,
"journals_count": 3 }
{ "pull_request_number": 6, "author_login": "lindiwen23",
"name": "fix: detectHTMLResponse 跳过 XML 声明,添加 HTML 响应检测",
"pr_full_time": "2026-06-03T08:55:10.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
{ "pull_request_number": 7, "author_login": "lindiwen23",
"name": "feat: org +teams/+create-team/+remove-user, search +code/+issues",
"pr_full_time": "2026-06-03T09:13:15.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
{ "pull_request_number": 8, "author_login": "lindiwen23",
"name": "feat: 新建 notification 模块并注册",
"pr_full_time": "2026-06-03T09:17:32.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
{ "pull_request_number": 9, "author_login": "lindiwen23",
"name": "fix: Skills 文件 api 命令替换为 Shortcut 命令 (~107 处)",
"pr_full_time": "2026-06-03T09:38:05.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
// jiangtx 的 PR
{ "pull_request_number": 2, "author_login": "jiangtx",
"name": "基础设施修复",
"pr_full_time": "2026-06-02T16:54:43.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
{ "pull_request_number": 3, "author_login": "jiangtx",
"name": "repo 域补全",
"pr_full_time": "2026-06-02T23:27:46.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
{ "pull_request_number": 4, "author_login": "jiangtx",
"name": "pr 域补全",
"pr_full_time": "2026-06-03T00:09:46.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
{ "pull_request_number": 5, "author_login": "jiangtx",
"name": "label 模块新建",
"pr_full_time": "2026-06-03T00:25:32.000+08:00", "pull_request_status": 1,
"journals_count": 2 }
3. gitlink-cli user +info --login jiangtx
{
"ok": true,
"data": {
"login": "jiangtx", "name": "jiangtx",
"user_id": 148911,
"created_time": "2026-04-28 11:46",
"user_projects_count": 3,
"user_org_count": 0,
"user_identity": "专业人士"
}
}
4. gitlink-cli user +info --login lindiwen23
{
"ok": true,
"data": {
"login": "lindiwen23", "name": "lindiwen23",
"user_id": 141609,
"created_time": "2025-05-26 22:40",
"user_projects_count": 6,
"user_org_count": 1,
"user_identity": "专业人士"
}
}
5. 不可用的命令
| 命令 | 结果 |
|---|---|
gitlink-cli repo +contributors |
命令不存在,返回 repo 帮助文本 |
gitlink-cli user +heatmap |
命令不存在(user 仅 +info / +me) |
gitlink-cli user +stats |
命令不存在 |
gitlink-cli user +trends |
命令不存在 |
gitlink-cli api GET "/api/v1/repos/.../contributors" |
返回 HTML 页面,非 JSON |
gitlink-cli api GET "/api/v1/users/.../heatmap" |
返回 HTML 页面,非 JSON |
数据处理过程
贡献者发现
由于 repo +contributors 不可用:
- 从
repo +info获取contributor_users_count = 2 - 从
pr +list提取唯一author_login:["lindiwen23", "jiangtx"](2 人,一致)
活跃天数计算
从 PR 的 pr_full_time 字段提取日期:
| 贡献者 | 活跃日期 | 活跃天数 |
|---|---|---|
| lindiwen23 | 2026-06-01, 2026-06-03 | 2 天 |
| jiangtx | 2026-06-02, 2026-06-03 | 2 天 |
趋势判断
按日聚合 PR 数:
- 06-01: 1 PR
- 06-02: 2 PRs
- 06-03: 6 PRs
趋势:↑ 上升(日产出加速:1→2→6)
贡献类型分类
| 贡献者 | PR 数 | Issue 数 | 类型 |
|---|---|---|---|
| lindiwen23 | 5 | 0 | 代码贡献者 |
| jiangtx | 4 | 0 | 代码贡献者 |
Issue 来源:
repo +info中issues_count = 0,无 Issue 需要获取。
分级调整
由于项目仅 3 天历史(< 30 天),适用年轻项目特殊处理:
- jiangtx(PR=4,2 活跃天)→ 🔥 核心贡献者
- lindiwen23(PR=5,2 活跃天)→ 🔥 核心贡献者
完整输出报告
(见当天执行输出,此处省略以保持文件精简。核心结构:团队概览 → 排行榜 → 个人分析 → 健康度评估 → 建议。)
经验总结
- PR 数据可作为贡献者分析的主要数据源:
pr +list提供了作者、时间、状态、标题等丰富信息 pr_full_time字段足够做时间分布分析:可计算活跃天数、贡献频率、趋势user +info补充贡献者画像:注册时间、项目数、组织数可用于背景分析- 极端年轻项目的分级需放宽:标准分级(PR > 10)对 3 天项目不适用
- Raw API 不可靠:GitLink 的 API 结构与标准 Gitea 不同,建议仅使用 Shortcut 命令