116 lines
2.8 KiB
Markdown
116 lines
2.8 KiB
Markdown
# gitea-pr-review
|
||
|
||
> 中文文档(默认) | English: [README.en.md](./README.en.md)
|
||
|
||
`gitea-pr-review` 用于读取 Gitea Pull Request,并整理为适合 LLM 消费的文档。
|
||
|
||
## 功能
|
||
|
||
- 拉取单个 PR 的核心信息:标题、状态、分支、commit 列表、基础 diff stat
|
||
- 完整保留 review/comment/reply 原文
|
||
- 支持两种输出格式:
|
||
- `markdown`:适合直接喂给 LLM
|
||
- `json`:结构化输出,便于脚本二次处理
|
||
- 支持从已保存的 JSON 重新渲染 Markdown(无需再次请求 Gitea)
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
cargo build --release
|
||
# 可执行文件:target/release/gitea-pr-review
|
||
```
|
||
|
||
## 环境变量
|
||
|
||
`fetch` 子命令需要以下环境变量:
|
||
|
||
- `GITEA_PR_CLI_API_TOKEN`
|
||
- `GITEA_PR_CLI_URL`(例如 `https://gitea.com`)
|
||
- `GITEA_PR_CLI_REPO`(例如 `Origami404/aaa`)
|
||
|
||
## 用法
|
||
|
||
### 1) 从 Gitea 拉取 PR(fetch)
|
||
|
||
```bash
|
||
# 默认输出 markdown 到 stdout
|
||
gitea-pr-review fetch <pr-index>
|
||
|
||
# 输出 json 到 stdout
|
||
gitea-pr-review fetch <pr-index> --format json
|
||
|
||
# 输出到文件
|
||
gitea-pr-review fetch <pr-index> --out pr.md
|
||
gitea-pr-review fetch <pr-index> --format json --out pr.json
|
||
```
|
||
|
||
### 2) 从 JSON 渲染 Markdown(render-md)
|
||
|
||
```bash
|
||
# 输出到 stdout
|
||
gitea-pr-review render-md --in pr.json
|
||
|
||
# 输出到文件
|
||
gitea-pr-review render-md --in pr.json --out pr.md
|
||
```
|
||
|
||
### 3) 查看当前文档版本
|
||
|
||
```bash
|
||
gitea-pr-review version
|
||
# v1
|
||
```
|
||
|
||
## 给 LLM 的 Skill
|
||
|
||
仓库内已提供一个可复用 skill,帮助其他 LLM 正确使用本 CLI:
|
||
|
||
- 路径:`skills/gitea-pr-review-cli/SKILL.md`
|
||
- 用途:标准化 `fetch` / `render-md` / `version` 的调用方式、`v1` 版本约束和常见错误排查
|
||
- 路径:`skills/organized-feedback/SKILL.md`
|
||
- 用途:将 `gitea-pr-review` 生成的 PR 评论整理为结构化反馈,并执行覆盖审计与未知项处理
|
||
|
||
## Markdown 输出结构(示例)
|
||
|
||
````md
|
||
# <repo> `#<pr-index>` <pr-title>
|
||
|
||
> 编号规则:Review `<pr>.<review>`;Comment `<pr>.<review>.<comment>`;Reply `<pr>.<review>.<comment>.<reply>`
|
||
> version: v1
|
||
> fetched at: <fetch-time-rfc3339>
|
||
|
||
<pr 描述>
|
||
|
||
## Metadata
|
||
|
||
### Commits
|
||
- <sha-short> <title> (<author>, <date>)
|
||
|
||
### Diff Stat
|
||
total: <files_changed> files, +<additions>, -<deletions>
|
||
- <file-path>: +<additions>, -<deletions>
|
||
|
||
## Review <pr-index>.<review-seq> (<review-state>)
|
||
> <reviewer>
|
||
|
||
### Comment <pr-index>.<review-seq>.<comment-seq>
|
||
<file>:<line>
|
||
<user>:
|
||
```md
|
||
<原始评论正文>
|
||
```
|
||
|
||
### Reply <pr-index>.<review-seq>.<comment-seq>.<reply-seq>
|
||
<file>:<line>
|
||
<user>:
|
||
```md
|
||
<原始回复正文>
|
||
```
|
||
````
|
||
|
||
## 说明
|
||
|
||
- 默认输出到 `stdout`;仅在指定 `--out` 时写入文件。
|
||
- 当评论正文本身包含 Markdown / 代码块时,渲染器会自动处理 fence,避免破坏整体结构。
|
||
- `Comment` 和 `Reply` 都会显示各自直接关联的文件路径与行号(若 API 提供)。
|