gitlink-cli/docs/UPSTREAM_PR_GUIDE.md

4.4 KiB
Raw Blame History

上游 PR 提交手册(子赛题一·成果落地)

目标:把本 fork 的成熟成果以 PR 形式提交到真正上游 gitlink/gitlink-cli,争取"已提交且通过 CI"基础分 → "被合并"高分。 本手册由 Claude 生成,push 与开 PR 需用你的 GitLink 账号执行(我不能代操作)。

0. 一次性准备:配置 upstream 远程

cd gitlink-cli
git remote add upstream https://gitlink.org.cn/gitlink/gitlink-cli.git
git fetch upstream
git fetch origin
# 确认
git remote -v   # 应看到 origin(jiangtx) + upstream(gitlink)

1. 选哪些成果提(质量优先,建议 34 个 PR

按"自带测试 + 自带文档 + 改动聚焦"挑选,下面的 commit 哈希均为本 fork 已验证的干净 feature 提交:

PR 主题 源 commit 含测试 含文档
PR-1 wiki 命令5 条) 6bcd8b6
PR-2 pm 命令6 条) b4cfdb7
PR-3 export 命令3 条) 2cc0e5c
PR-4 alias/browse/status开发者体验 a28a8ea + 9474c1f(测试)
PR-5 pipeline 命令 git log -- shortcuts/pipeline/
PR-6 webhook 命令 git log -- shortcuts/webhook/
PR-7Skill 收录) gitlink-research-tracker Skill git log -- skills/gitlink-research-tracker/

建议先提 PR-1 / PR-2 / PR-7这三个最干净、最有代表性的。其余视维护者反馈再提。

2. 单个 PR 的标准流程(以 PR-1 wiki 为例)

# 1) 基于上游 master 建干净分支
git checkout -b pr-shortcut-wiki upstream/master

# 2) 挑入对应 commit如只一个就用 cherry-pick多个依次挑
git cherry-pick 6bcd8b6
# 若 wiki 的帮助/变更文档在别的 commit也一并 cherry-pick

# 3) 本地校验(需 Go无 Go 则跳过,靠上游 CI
go build ./... && go vet ./... && go test ./shortcuts/wiki/... && gofmt -l .

# 4) 推到 fork
git push origin pr-shortcut-wiki

# 5) 到 GitLink 网页jiangtx/gitlink-cli → 合并请求 → 新建 → 源分支 pr-shortcut-wiki → 目标 gitlink/gitlink-cli:master

若 cherry-pick 与上游冲突,通常是因为上游同期也改了 register.go。解决:手动把你的模块加进 groups map 与 descriptions map 即可。

3. PR 描述模板(直接复制填)

## 背景
gitlink-cli 缺少 XXX 命令,需手工拼 Raw API。本 PR 新增 `xxx` 命令组。

## 改动
- 新增 `shortcuts/xxx/`N 条子命令list/create/...
- 新增单元测试 `shortcuts/xxx/*_test.go`(覆盖 method/path/query/payload
- 新增帮助文档 `doc/commands/xxx.md` + 变更说明 `doc/changes/xxx-shortcut.md`

## 对应 OpenAPI
- GET/POST `/v1/:owner/:repo/...`

## 测试方式
\`\`\`bash
go test ./shortcuts/xxx/... -race
gofmt -l shortcuts/xxx/
\`\`\`

## 截图
(贴 12 张命令运行截图)

## 关联
竞赛GitLink 大赛 2026 子赛题一。forkjiangtx/gitlink-cli。

4. PR-7·Skill 收录(子赛题二)

git checkout -b pr-skill-research-tracker upstream/master
git cherry-pick <research-tracker 的 commit>
git push origin pr-skill-research-tracker
# 目标gitlink/gitlink-cli:master路径 skills/gitlink-research-tracker/

PR 描述要点:

  • 说明这是科研辅助场景(技术调研:多关键词搜索→成熟度评分→趋势→选型),与现有 Skill 不重复
  • EXAMPLES.md 里的 Agent 验证结果(调用次数/token/耗时/输出)
  • 注明兼容 Claude Code已验证/ OpenClaw / Cursor

5. 提交后:更新 README 的 PR 清单

每个 PR 开好后,回到本仓库 README.md 的「上游 PR 清单」表格,把 _待提交_ 换成真实 PR 靶向链接与状态,并 commit。这是评委看到"成果落地"的直接证据。

6. 提交前自查清单(每个 PR 必须全绿)

  • go build ./... 通过
  • go test ./... -race 通过
  • gofmt -l . 无输出(无未格式化文件)
  • 含单元测试
  • doc/commands/*.md + doc/changes/*.md
  • PR 描述用模板
  • 不夹带无关改动(一个 PR 只做一件事)

7. 时间策略

今天7/8就提 PR-1、PR-2、PR-7。维护者 Review 12 周,越早提越可能合并。截止日仍在 Review 的,竞赛按"已提交且通过 CI"计基础分。