gitlink-cli/docs/UPSTREAM_PR_GUIDE.md

112 lines
4.4 KiB
Markdown
Raw Permalink 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.

# 上游 PR 提交手册(子赛题一·成果落地)
> 目标:把本 fork 的成熟成果以 PR 形式提交到真正上游 `gitlink/gitlink-cli`,争取"已提交且通过 CI"基础分 → "被合并"高分。
> 本手册由 Claude 生成,**push 与开 PR 需用你的 GitLink 账号执行**(我不能代操作)。
## 0. 一次性准备:配置 upstream 远程
```bash
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 为例)
```bash
# 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 描述模板(直接复制填)
```markdown
## 背景
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 收录(子赛题二)
```bash
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"计基础分。