feat: 添加端到端工作流示例文档

- 新增 Issue → Branch → Push → PR 完整工作流示例
- 包含详细的命令链和参数说明
- 提供可复用的工作流模板

参赛项目:GitLink × CCF开源创新大赛 - 赛道三:端到端工作流
This commit is contained in:
weidongde 2026-06-29 10:29:27 +08:00
parent 982f2cb336
commit c75486d30e
1 changed files with 292 additions and 0 deletions

View File

@ -0,0 +1,292 @@
# Issue 到 PR 端到端工作流
**场景**:从创建 Issue 开始到代码合并、Issue 关闭的完整自动化流程。适用于比赛子赛题三:端到端工作流。
> **比赛要求**:链式调用 ≥3 个 CLI 命令/Skills实现端到端自动化。
## 前置条件
- 已配置 `gitlink-cli` 并登录 GitLink 平台
- 有目标仓库的写入权限
- 本地 Git 环境已配置
## 工作流步骤
### Step 1创建 Issue
创建一个新 Issue描述需要解决的问题。
```bash
gitlink-cli issue +create \
--owner <owner> \
--repo <repo> \
--title "修复登录页面样式问题" \
--body "## 问题描述\n登录按钮在移动端显示不完整\n\n## 期望结果\n按钮应完整显示并居中" \
--format json
```
**预期输出:**
```json
{
"id": 123,
"subject": "修复登录页面样式问题",
"project": {...},
"status": "open"
}
```
**记录 Issue ID**`123`(后续步骤使用)
---
### Step 2创建开发分支
基于主分支创建新的开发分支。
```bash
gitlink-cli branch +create \
--owner <owner> \
--repo <repo> \
--name fix-login-style \
--from main \
--format json
```
**预期输出:**
```json
{
"name": "fix-login-style",
"sha": "abc123...",
"protected": false
}
```
---
### Step 3本地开发与提交
在本地进行代码修改并推送到远程分支。
```bash
# 切换到新分支
git checkout fix-login-style
# 进行代码修改(示例:修改 CSS 文件)
echo ".login-btn { width: 100%; text-align: center; }" >> styles/login.css
# 提交更改
git add styles/login.css
git commit -m "fix: 修复登录按钮移动端显示问题 #123"
# 推送到远程
git push origin fix-login-style
```
**注意**:提交信息中包含 `#123` 可关联 Issue。
---
### Step 4创建 Pull Request
创建 PR 将修改合并到主分支。
```bash
gitlink-cli pr +create \
--owner <owner> \
--repo <repo> \
--title "fix: 修复登录按钮移动端显示问题" \
--body "## 变更说明\n- 修复登录按钮在移动端显示不完整的问题\n- 添加响应式样式\n\n## 关联 Issue\nCloses #123" \
--head fix-login-style \
--base main \
--format json
```
**预期输出:**
```json
{
"id": 456,
"title": "fix: 修复登录按钮移动端显示问题",
"state": "open",
"head": "fix-login-style",
"base": "main"
}
```
**记录 PR ID**`456`
---
### Step 5获取 PR 变更摘要
使用工作流命令获取 PR 的结构化摘要。
```bash
gitlink-cli workflow +pr-summary \
--owner <owner> \
--repo <repo> \
--number 456 \
--format markdown
```
**预期输出:**
```markdown
# PR #456 摘要
## 变更文件
- `styles/login.css` (+5/-2)
## 变更类型
- Style: 样式修复
## 建议
- 建议在不同设备上测试
- 考虑添加单元测试
```
---
### Step 6代码审查可选
添加 Review 评论或批准 PR。
```bash
# 添加 Review 评论
gitlink-cli api POST /:owner/:repo/pulls/456/reviews \
--body '{"body":"LGTM! 代码变更清晰,已验证移动端显示正常。","event":"APPROVE"}'
```
---
### Step 7合并 PR
将 PR 合并到主分支。
```bash
gitlink-cli pr +merge \
--owner <owner> \
--repo <repo> \
--id 456 \
--method merge \
--format json
```
**预期输出:**
```json
{
"id": 456,
"state": "merged",
"merged_at": "2026-06-29T10:00:00Z"
}
```
---
### Step 8关闭 Issue
PR 合并后,关闭关联的 Issue。
```bash
gitlink-cli issue +close \
--owner <owner> \
--repo <repo> \
--id 123 \
--format json
```
**预期输出:**
```json
{
"id": 123,
"status": "closed",
"closed_at": "2026-06-29T10:05:00Z"
}
```
---
### Step 9清理分支可选
删除已合并的开发分支。
```bash
gitlink-cli branch +delete \
--owner <owner> \
--repo <repo> \
--name fix-login-style \
--format json
```
---
## 工作流总结
| 步骤 | 命令 | 操作类型 |
|------|------|----------|
| 1 | `issue +create` | 创建 Issue |
| 2 | `branch +create` | 创建分支 |
| 3 | Git 本地操作 | 代码修改 |
| 4 | `pr +create` | 创建 PR |
| 5 | `workflow +pr-summary` | 获取摘要 |
| 6 | `api POST .../reviews` | 代码审查 |
| 7 | `pr +merge` | 合并 PR |
| 8 | `issue +close` | 关闭 Issue |
| 9 | `branch +delete` | 清理分支 |
**CLI 命令数量**8 个(满足 ≥3 个的比赛要求)
---
## 自动化脚本示例
将上述步骤封装为 Shell 脚本:
```bash
#!/bin/bash
# issue-to-pr.sh - Issue 到 PR 端到端工作流脚本
OWNER=$1
REPO=$2
ISSUE_TITLE=$3
BRANCH_NAME=$4
# Step 1: 创建 Issue
ISSUE=$(gitlink-cli issue +create --owner $OWNER --repo $REPO \
--title "$ISSUE_TITLE" --body "待补充详细描述" --format json)
ISSUE_ID=$(echo $ISSUE | jq -r '.id')
echo "Created Issue #$ISSUE_ID"
# Step 2: 创建分支
gitlink-cli branch +create --owner $OWNER --repo $REPO \
--name $BRANCH_NAME --from main --format json
echo "Created branch: $BRANCH_NAME"
# Step 3-4: 本地开发后创建 PR
# ... (需要用户手动完成代码修改)
# Step 7: 合并 PR
# PR_ID=...
# gitlink-cli pr +merge --owner $OWNER --repo $REPO --id $PR_ID
# Step 8: 关闭 Issue
gitlink-cli issue +close --owner $OWNER --repo $REPO --id $ISSUE_ID
echo "Closed Issue #$ISSUE_ID"
```
---
## 比赛提交材料
本工作流适用于 **GitLink × CCF开源创新大赛 - 子赛题三:端到端工作流**
提交内容:
1. 本文档:`skills/gitlink-workflow/examples/issue-to-pr-workflow.md`
2. 可选:自动化脚本 `scripts/issue-to-pr.sh`
3. 演示视频/截图:展示完整工作流执行过程
---
## 相关链接
- [比赛主页](https://www.gitlink.org.cn/competitions/track1_2026GitLinkCli)
- [gitlink-cli 仓库](https://www.gitlink.org.cn/Gitlink/gitlink-cli)
- [Issue #6: 只要创建Issue就让Agent开始干活](https://www.gitlink.org.cn/Gitlink/gitlink-cli/issues/6)