# 基础审查工作流示例

本文档展示一个基础的代码审查工作流，适合初次使用 gitlink-code-review 的用户。

## 📋 场景描述

**场景**: 开发者提交了一个 PR，需要快速了解代码变更情况。

**目标**:
1. 获取 PR 基本信息
2. 查看变更的文件列表
3. 快速浏览代码变更

## 🔄 工作流程

```
开始
  ↓
1. 获取 PR 详情
  ↓
2. 获取变更文件列表
  ↓
3. 获取 diff 内容
  ↓
4. 手动浏览代码变更
  ↓
完成
```

## 🔧 实施步骤

### 步骤 1：获取 PR 详情

**命令**:
```bash
gitlink-cli pr +view --id 123 --format json
```

**目的**: 了解 PR 的基本信息，确认 PR 存在且可访问。

**返回结果**:
```json
{
  "ok": true,
  "data": {
    "id": 123,
    "project_issues_index": 123,
    "title": "Feature: Add user authentication",
    "body": "This PR adds user authentication...",
    "author": {
      "login": "developer",
      "user_id": 456
    },
    "status": "open",
    "pull_request_status": 0,
    "head": "feature/auth",
    "base": "main",
    "created_at": "2026-06-12T10:00:00Z",
    "updated_at": "2026-06-12T10:30:00Z"
  }
}
```

**关键信息**:
- PR 标题: "Feature: Add user authentication"
- 作者: @developer
- 分支: feature/auth → main
- 状态: 开放中

### 步骤 2：获取变更文件列表

**命令**:
```bash
gitlink-cli pr +files --id 123 --format json
```

**目的**: 了解 PR 修改了哪些文件，代码变更的范围。

**返回结果**:
```json
{
  "ok": true,
  "data": {
    "files": [
      {
        "filename": "src/auth/login.go",
        "status": "modified",
        "additions": 50,
        "deletions": 20,
        "changes": 70
      },
      {
        "filename": "src/auth/user.go",
        "status": "added",
        "additions": 80,
        "deletions": 0,
        "changes": 80
      },
      {
        "filename": "README.md",
        "status": "modified",
        "additions": 5,
        "deletions": 2,
        "changes": 7
      }
    ],
    "total_files": 3,
    "total_additions": 135,
    "total_deletions": 22,
    "total_changes": 157
  }
}
```

**关键信息**:
- 变更文件: 3 个
- 代码行: +135 / -22
- 主要修改: 新增 `user.go`，修改 `login.go`

### 步骤 3：获取 diff 内容

**命令**:
```bash
gitlink-cli pr +diff --id 123 --format json
```

**目的**: 获取完整的代码变更详情，了解具体的修改内容。

**返回结果**:
```json
{
  "ok": true,
  "data": {
    "diff": "diff --git a/src/auth/login.go b/src/auth/login.go\nindex 1234567..abcdefg 100644\n--- a/src/auth/login.go\n+++ b/src/auth/login.go\n@@ -1,10 +1,15 @@\n package auth\n\n+func login(username, password string) error {\n+\tdb, _ := sql.Open(\"mysql\", dsn)\n+\tquery := \"SELECT * FROM users WHERE username = '\" + username + \"'\"\n+\t...\n+}\n",
    "files_count": 3,
    "additions": 135,
    "deletions": 22
  }
}
```

### 步骤 4：手动浏览代码变更

**目的**: 手动浏览代码变更，了解具体修改。

**方法 1**: 使用 `jq` 工具美化输出

```bash
# 获取 diff 并美化输出
gitlink-cli pr +diff --id 123 --format json | jq '.data.diff'
```

**方法 2**: 保存到文件后查看

```bash
# 保存 diff 到文件
gitlink-cli pr +diff --id 123 --format json | jq -r '.data.diff' > pr_diff.txt

# 使用文本编辑器查看
cat pr_diff.txt
```

**方法 3**: 使用 Git 命令查看

```bash
# 检出 PR 分支
git fetch gitlink pull/123/head:feature/auth
git checkout feature/auth

# 查看 diff
git diff main...feature/auth
```

## 💡 使用技巧

### 技巧 1：组合命令快速查看

```bash
# 一行命令查看 PR 概要
echo "=== PR 详情 ===" && \
gitlink-cli pr +view --id 123 && \
echo -e "\n=== 变更文件 ===" && \
gitlink-cli pr +files --id 123 && \
echo -e "\n=== 代码行统计 ===" && \
gitlink-cli pr +files --id 123 --format json | jq '{total_files: .data.total_files, total_additions: .data.total_additions, total_deletions: .data.total_deletions}'
```

### 技巧 2：过滤特定文件类型

```bash
# 只查看 Go 文件的变更
gitlink-cli pr +files --id 123 --format json | \
jq '.data.files[] | select(.filename | endswith(".go"))'
```

### 技巧 3：统计变更最多的文件

```bash
# 按变更行数排序
gitlink-cli pr +files --id 123 --format json | \
jq '.data.files | sort_by(.changes) | reverse'
```

## 📊 输出示例

执行上述步骤后，你将获得：

```markdown
# PR #123 审查概要

## 基本信息
- **标题**: Feature: Add user authentication
- **作者**: @developer
- **分支**: feature/auth → main
- **状态**: 开放中

## 变更统计
- **文件数**: 3 个
- **代码行**: +135 / -22 (总计 157 行变更)

## 变更文件
1. **src/auth/login.go** (修改)
   - +50 / -20 行
   - 主要变更：添加登录函数

2. **src/auth/user.go** (新增)
   - +80 / -0 行
   - 主要变更：新增用户管理模块

3. **README.md** (修改)
   - +5 / -2 行
   - 主要变更：更新文档说明

## 初步观察
- ✅ 新增用户认证功能，符合项目需求
- ⚠️ 需要关注登录函数的安全性
- ℹ️ 文档已同步更新

## 下一步
1. 详细审查代码变更
2. 检查安全问题
3. 验证功能完整性
```

## 🎯 后续行动

完成基础审查后，可以：

1. **进行深度审查**
   - 使用 [`comprehensive-review-workflow.md`](comprehensive-review-workflow.md) 进行全面审查

2. **重点关注问题**
   - 如果发现安全问题，参考 [`../references/code-review-security.md`](../references/code-review-security.md)
   - 如果发现性能问题，参考 [`../references/code-review-performance.md`](../references/code-review-performance.md)

3. **添加审查评论**
   - 参考 [`../references/code-review-comment.md`](../references/code-review-comment.md) 添加评论

## ❓ 常见问题

### Q: 如何查看大型 PR 的 diff？

**A**: 大型 PR（>1000 行）建议：
1. 分批查看，按文件逐个审查
2. 优先查看核心文件
3. 使用 Git 命令分页查看

### Q: 如何保存审查结果？

**A**:
```bash
# 保存完整的审查数据
gitlink-cli pr +view --id 123 --format json > pr_info.json
gitlink-cli pr +files --id 123 --format json > pr_files.json
gitlink-cli pr +diff --id 123 --format json > pr_diff.json
```

## 📚 相关文档

- [全面审查工作流](comprehensive-review-workflow.md) - 深度代码审查
- [自动审查工作流](auto-review-pr.md) - AI 自动审查
- [PR 操作指南](../../gitlink-pr/SKILL.md) - PR 基础操作

---

*最后更新: 2026-06-12*
