ReviewPilot
Copilot 辅助的代码审查 + 远程/本地开发自动化 & 提交前 (pre-commit) 质量闸。通过向 GitHub Copilot Chat 贡献一个 Chat Participant (@ReviewPilot
) 提供命令化工作流:代码 diff 检视、构建/测试/部署脚本、文件上传下载、远程 shell / 本地 shell 混合执行等。
主要能力概览
分类 |
功能 |
代码审查 |
check (工作区未暂存+暂存 diff) / checkcommit <提交说明> (仅暂存 diff, PASS 自动提交) ,支持自定义 system prompt 与可选 rulebook (前 16KB) |
模型选择 |
命令面板: Choose Copilot Model,支持列举/自定义模型 ID (preferredModelId/customModelId) |
远程执行 |
命令面板: Remote Run (SSH);Chat: 自定义动作或 ssh <cmd> / git <cmd> / svn <cmd> |
本地执行 |
shell <cmd> (自动选择 PowerShell 或 bash),以及自定义动作 mode=local |
自定义动作 |
在设置 reviewPilot.remote.commandSpecs 中维护 action=spec ,Chat 输入 @ReviewPilot action [args...] 执行 |
上传下载 |
download <远程路径> [-> 本地目录] / upload <本地路径> <远程路径> ,支持目录递归、总大小上限 |
认证管理 |
安全存储 SSH 密码与私钥 passphrase (SecretStorage) |
取消任务 |
cancel 终止当前活跃的远程任务 |
其它 |
time 当前时间;help 在线帮助;config 快速打开设置 |
commandSpecs 语法 (动态默认模式已更新)
设置项: reviewPilot.remote.commandSpecs
(字符串数组),格式:
action=[mode:]command
mode
可为 ssh
或 local
。省略时不再固定为 ssh,而是 根据 reviewPilot.codeLocation
动态决定:
server
→ 默认 ssh
local
→ 默认 local
- Chat 中附加参数会直接拼接在命令尾部。例如:
- 配置:
build=make
- 输入:
build release
→ 实际执行:make release
- 同一
action
多次出现仅采用第一行。
示例:
build=make
clean=ssh:make clean
install=local:pnpm install
test=local:npm test
deploy=ssh:./deploy.sh
setenv=source ./setenv.sh
执行:@ReviewPilot build
或 @ReviewPilot build release
。
规则文件 (Rulebook)
reviewPilot.check.rulebookPath
指定一个 (Markdown/纯文本) 本地文件,其前 16KB 内容会附加到审查 system prompt(超出截断并标记)。用于注入团队规范、检查清单、风格规则等。
模型选择
通过命令 “Choose Copilot Model” 选择/写入首选模型:
preferredModelId
枚举内模型:直接保存。
- 选择列表外模型:自动写入
customModelId
并将 preferredModelId
设为 custom
。
Chat 审查/问答时自动按顺序:自定义 → 首选 → 第一个可用模型。
上传 / 下载
命令:
download <remotePath> [-> localDir]
- 未指定 localDir:下载到
${workspaceRoot}/.reviewpilot/downloads/<timestamp>
upload <localPath> <remotePath>
限制:
- 配置
reviewPilot.remote.download.maxTotalMB
/ reviewPilot.remote.upload.maxTotalMB
控制总字节上限;达到即中断。
远程/本地模式切换
reviewPilot.codeLocation
:
server
:check
/ checkcommit
/ 默认省略 mode 的自定义动作 使用 SSH。
local
:上述操作在本地工作区 Git 仓库执行。
常用命令速览 (Chat 内)
@ReviewPilot help
@ReviewPilot time
@ReviewPilot check
@ReviewPilot checkcommit "feat: add login"
@ReviewPilot build
@ReviewPilot build release
@ReviewPilot ssh uname -a
@ReviewPilot git status
@ReviewPilot download /var/log -> logs
@ReviewPilot upload dist /opt/app/dist
@ReviewPilot cancel
设置项核心列表
reviewPilot.codeLocation
reviewPilot.remote.commandSpecs
reviewPilot.check.systemPromptBase
reviewPilot.check.rulebookPath
reviewPilot.preferredModelId
/ reviewPilot.customModelId
reviewPilot.remote.*
(host/port/username/privateKeyPath/timeoutMs/cwd/defaultCommand)
reviewPilot.remote.download.*
/ reviewPilot.remote.upload.*
reviewPilot.context.*
开发与调试
- 安装依赖
npm install
- 编译 (一次性或监听)
npm run build
# 或
npm run watch
- 启动调试
在 VS Code 中按 F5 (Launch Extension)。弹出 Extension Development Host 窗口后打开 Chat,输入:
@ReviewPilot help
- 打包 (可选)
npm run package
# 生成 review-pilot-<version>.vsix
目录结构
review-pilot/
package.json
tsconfig.json
src/extension.ts
dist/ (构建输出)
需要前提
- 已安装并登录 GitHub Copilot & Copilot Chat。
- VS Code 版本 >= 1.89.0 (支持 chatParticipants)。
扩展自定义
在 handleRequest
中添加你的业务逻辑:
- 调用外部 API(注意速率 & 错误处理)
- 分析当前工作区文件(使用
vscode.workspace.findFiles
等)
- 调用你自己的工具链脚本
后续增强 / 扩展建议
- 并发任务队列 & 状态面板
- 远程 / 本地 环境变量注入与占位符扩展
- checkcommit 自动 push / 创建 PR
- 规则文件热重载与命中统计
- 缓存避免重复分析
- 更多命令:
stats
, search <kw>
等
- 分析结果结构化输出再转 Markdown
- 长任务多阶段
stream.progress()
提示
欢迎基于此扩展继续定制团队自动化审查 & DevOps 工作流。