pr-review
11
总安装量
3
周安装量
#27311
全站排名
安装命令
npx skills add https://github.com/labring/fastgpt --skill pr-review
Agent 安装分布
opencode
2
codex
2
claude-code
2
gemini-cli
2
replit
1
Skill 文档
When to Use This Skill
ç¨æ·ä¼ å ¥ä¸ä¸ª review ç pr 龿¥
PR Review 代ç å®¡æ¥æè½
å ¨é¢å®¡æ¥ Pull Request ç代ç è´¨éãå®å ¨æ§ãæ§è½åæ¶æè®¾è®¡,æä¾ä¸ä¸çæ¹è¿å»ºè®®
å¿«éå¼å§
# 审æ¥å½å忝ç PR
gh pr view
# å®¡æ¥æå® PR
gh pr view 6324
# æ¥çåæ´å
容
gh pr diff 6324
å·¥å ·éæ
ä½¿ç¨ gh CLI å é审æ¥
# æ¥çå¹¶å®¡æ¥ PR
gh pr view <number> && gh pr diff <number>
# æ·»å 审æ¥è¯è®º
gh pr review <number> --comment -b "æçå®¡æ¥æè§"
# æ¹å PR
gh pr review <number> --approve
# 请æ±ä¿®æ¹
gh pr review <number> --request-changes
æ¬å°æµè¯ PR
# æ£åº PR 忝尿¬å°
gh pr checkout <number>
# è¿è¡æµè¯
pnpm test
# è¿è¡ lint
pnpm lint
# ç±»åæ£æ¥
pnpm tsc --noEmit
# å¯å¨å¼åæå¡å¨éªè¯
pnpm dev
常è§å½ä»¤åè
# PR ä¿¡æ¯æ¥ç
gh pr view --json title,body,author,state,files,additions,deletions
# PR diff æ¥ç
gh pr diff
gh pr diff <number> > /tmp/pr.diff # ä¿åå°æä»¶
# PR commits æ¥ç
gh pr view --json commits --jq '.commits[].messageHeadline'
# PR checks ç¶æ
gh pr checks
# PR è¯è®º
gh pr comment <number> --body "è¯è®ºå
容"
# PR å®¡æ¥æäº¤
gh pr review <number> --approve
gh pr review <number> --request-changes
gh pr review <number> --comment -b "è¯è®ºå
容"
# PR æä½
gh pr merge <number> --squash # Squash merge
gh pr close <number> # å
³é PR
å®¡æ¥æµç¨
1. ä¿¡æ¯æ¶éé¶æ®µ
èªå¨æ§è¡ä»¥ä¸æ¥éª¤:
# 1. è·å PR åºæ¬ä¿¡æ¯
gh pr view --json title,body,author,state,headRefName,baseRefName,additions,deletions,files
# 2. è·å PR åæ´ diff
gh pr diff
# 3. è·å PR ç commit åå²
gh pr view --json commits
# 4. æ£æ¥ CI/CD ç¶æ
gh pr checks
2. å¤ç»´åº¦ä»£ç 审æ¥
æç §ä»¥ä¸ä¸ä¸ªç»´åº¦è¿è¡ç³»ç»æ§å®¡æ¥:
维度 1: åºæ¬ä»£ç è´¨éæ å ð
éç¨ç代ç è´¨éæ å,éç¨äºææé¡¹ç®:
- å®å ¨æ§: è¾å ¥éªè¯ãæéæ£æ¥ãæ³¨å ¥é²æ¤ãææä¿¡æ¯ä¿æ¤
- æ£ç¡®æ§: é误å¤çãè¾¹çæ¡ä»¶ãç±»åå®å ¨
- æ§è½: ç®æ³å¤æåº¦ãæ°æ®åºä¼åãå å管ç
- 坿µè¯æ§: æµè¯è¦çãæµè¯è´¨éãMock 使ç¨
ð è¯¦ç»æå: code-quality-standards.md
维度 2: FastGPT 飿 ¼è§è ð¨
FastGPT 项ç®ç¹å®ç代ç è§èå约å®:
- API è·¯ç±å¼å: è·¯ç±å®ä¹ãæééªè¯ãé误å¤ç: API è·¯ç±å¼åè§è
- å端ç»ä»¶å¼å: TypeScript + ReactãChakra UIãç¶æç®¡ç: å端ç»ä»¶å¼åè§è
- æ°æ®åºæä½: Model å®ä¹ãæ¥è¯¢ä¼åãç´¢å¼è®¾è®¡: æ°æ®åºæä½è§è
- å ç»æä¸ä¾èµ: ä¾èµæ¹åãå¯¼å ¥è§èãç±»å导åº: å ç»æä¸ä¾èµè§è
- æ¥å¿ä¸å¯è§æµæ§: ç»ä¸æ¥å¿åç±»ãç»æååæ®µãææä¿¡æ¯ãOTEL 导åºçå®¡æ¥æ å: æ¥å¿review æ å
维度 3: 常è§é®é¢æ£æ¥æ¸ å ð
å¿«éè¯å«åä¿®å¤å¸¸è§é®é¢æ¨¡å¼:
- TypeScript é®é¢: any ç±»åæ»¥ç¨ãç±»åå®ä¹ä¸å®æ´ãä¸å®å ¨æè¨
- 弿¥é误å¤ç: æªå¤ç Promiseãé误信æ¯ä¸¢å¤±ãéé»å¤±è´¥
- React æ§è½: ä¸å¿ è¦ç鿏²æã渲æä¸å建对象ãç¼ºå° memoization
- 工使µèç¹: isEntry æªéç½®ã交äºå岿ªæ¸ çãç½ååéæ¼
- å®å ¨æ¼æ´: æ³¨å ¥æ»å»ãXSSãæä»¶ä¸ä¼ æ¼æ´
ð è¯¦ç»æ¸ å: common-issues-checklist.md
3. çæå¹¶æäº¤å®¡æ¥æ¥å
PR 审æ¥è¾åºå为两个é¨å:
- æ´ä½å®¡æ¥æ¥å: æäº¤ä¸º PR é¡¶é¨çæ»ä½è¯è®º
- è¡çº§ä»£ç è¯è®º: ç´æ¥å¨ä»£ç è¡çä½ç½®æ·»å å ·ä½è¯è®º
æ¥éª¤ 1: åæä»£ç å¹¶åå¤è¯è®º
å¨å®¡æ¥è¿ç¨ä¸,éè¦ä¸ºæ¯ä¸ªé®é¢è®°å½:
- æä»¶è·¯å¾: å¦
packages/service/core/workflow/dispatch.ts - è¡å·: å¦
L142-L150 - é®é¢ç±»å: ð´ä¸¥é / ð¡æ¹è¿ / ð¢ä¼å
- è¯è®ºå 容: å ·ä½çé®é¢æè¿°å建议
æ¥éª¤ 2: æäº¤ä»£ç 审æ¥è¯è®º
GitHub CLI ç gh pr review å½ä»¤ä¸æ¯æç´æ¥æäº¤è¡çº§è¯è®ºï¼éè¦ä½¿ç¨ GitHub APIã
# 1. è·åä»åºä¿¡æ¯
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
# 2. åå¤ review æ°æ®ï¼å
å«è¡çº§è¯è®ºï¼
cat > /tmp/review-data.json << 'EOF'
{
"body": "## ð 代ç å®¡æ¥æ»ç»\n\n详ç»çå®¡æ¥æè§è¯·æ¥ç䏿¹çè¡çº§è¯è®ºã",
"event": "COMMENT",
"comments": [
{
"path": "packages/service/core/workflow/dispatch.ts",
"line": 142,
"body": "ð´ **严éé®é¢**: è¿é缺å°é误å¤ç,妿 runtimeNode 为 null ä¼å¯¼è´è¿è¡æ¶é误ã\n\n**建议**:\n```typescript\nif (!runtimeNode) {\n throw new Error(`Runtime node not found: ${nodeId}`);\n}\n```"
},
{
"path": "packages/service/core/workflow/dispatch.ts",
"line": 150,
"body": "ð¡ **æ§è½ä¼å**: å»ºè®®å°æ¤æ£å表达å¼ç¼è¯æåå°å½æ°å¤é¨,é¿å
æ¯æ¬¡è°ç¨é½éæ°ç¼è¯ã\n\n**建议**:\n```typescript\nconst NODE_ID_PATTERN = /^node_([a-f0-9]+)$/; // 卿¨¡åé¡¶é¨å®ä¹\n```"
}
]
}
EOF
# 3. ä½¿ç¨ GitHub API æäº¤ review
gh api repos/$REPO/pulls/<number>/reviews \
--method POST \
--input /tmp/review-data.json
æ¥éª¤ 3: çææ´ä½å®¡æ¥æ¥å
# PR Review: {PR Title}
## ð åæ´æ¦è§
- **PR ç¼å·**: #{number}
- **ä½è
**: @author
- **忝**: {baseRefName} â {headRefName}
- **åæ´ç»è®¡**: +{additions} -{deletions} è¡
- **æ¶åæä»¶**: {files.length} 个æä»¶
## â
ä¼ç¹
{ååºåå¾å¥½çå°æ¹}
## â ï¸ é®é¢æ±æ»
### ð´ 严éé®é¢ ({count} 个,å¿
须修å¤)
{ç®è¦ååºæ¯ä¸ªä¸¥éé®é¢,å¹¶å¨ä¸æ¹æ·»å è¡çº§è¯è®º}
### ð¡ 建议æ¹è¿ ({count} 个)
{ç®è¦ååºæ¯ä¸ªå»ºè®®}
### ð¢ å¯éä¼å ({count} 个)
{ç®è¦ååºä¼å建议}
## 𧪠æµè¯å»ºè®®
{å»ºè®®çæµè¯æ¹æ³}
## ð¬ æ»ä½è¯ä»·
- **代ç è´¨é**: âââââ (4/5)
- **å®å
¨æ§**: âââââ (5/5)
- **æ§è½**: âââââ (4/5)
- **å¯ç»´æ¤æ§**: âââââ (4/5)
## ð 审æ¥ç»è®º
{建议: éè¿/éä¿®æ¹/æç»}
---
## ð 详ç»ä»£ç è¯è®º
å·²å¨ä»¥ä¸ä½ç½®æ·»å äºå
·ä½çè¡çº§è¯è®º:
{ååºæææ·»å äºè¡çº§è¯è®ºçä½ç½®}
æ¥éª¤ 4: æäº¤æ´ä½å®¡æ¥æ¥å
éè¿ GitHub CLI æäº¤æ´ä½å®¡æ¥æ¥åå°è¯è®ºåºã
审æ¥å½ä»¤å¿«éåè:
| åºæ¯ | å½ä»¤ |
|---|---|
| æ¹å PR | gh pr review <number> --approve |
| 请æ±ä¿®æ¹ | gh pr review <number> --request-changes |
| ä¸è¬è¯è®º | gh pr review <number> --comment |
| 仿件æäº¤ | gh pr review <number> --body-file /tmp/review.md |
| æ·»å æ®éè¯è®º | gh pr comment <number> --body "å
容" |
| æ¤éå®¡æ¥ | gh pr review <number> --dismiss |