LONGSASASASASA/dsh-issue2pr ↗★ 1
dsh-issue2pr
Issue-to-PR 可验证交付链:项目配置 → 11 阶段流水线 → 人工复核 → PR 说明(DSH 全局插件)
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:LONGSASASASASA/dsh-issue2pr说明文档
阅读完整 README ↗⚙️ 配置详解
项目配置(project.json)
项目页保存的就是下面这份配置,所有字段均有校验:
{
"name": "我的项目",
"slug": "my-project", // 小写字母/数字/连字符
"repos": ["https://github.com/me/my-project.git"],
"triggers": [
{ "kind": "issue", "uri": "https://github.com/me/my-project/issues/42" },
{ "kind": "requirement", "uri": "C:/docs/需求-登录修复.md" }
],
"reviewMode": "key-only", // every | key-only | auto
"p6Mode": "builtin", // builtin | session | claude
"testCommand": "npm test", // 留空则自动探测 package.json 的 test 脚本
"stageConfig": { /* 逐阶段覆盖,见下 */ }
}
逐阶段配置(stageConfig)
每个阶段都可独立覆盖,未配置项回落默认值,改动在下一阶段即时生效:
"stageConfig": {
"P3": {
"provider": "deepseek-official", // 本阶段换模型
"model": "deepseek-v4-pro",
"reasoningEffort": "high",
"timeoutMs": 600000,
"maxTokens": 16384,
"prompts": { "": "你是 Code Understanding……(覆盖默认提示词)" },
"params": { "deepReadFiles": 10, "fileChars": 8000 }
},
"P6": {
"delegate": { "mode": "session" }, // 本阶段委托外部智能体,产出就绪才放行
"params": {
"claudeBin": "C:\\Users\\you\\AppData\\Roaming\\npm\\claude.cmd",
"claudeTimeoutMin": 120
}
},
"P9": { "params": { "diffChars": 2000 } }
}
阶段专属参数(如 repoScanMax、deepReadFiles、diffChars、claudeBin)在「配置」页有中文说明与默认值——凡影响执行行为的数值与路径都不硬编码,全部可被项目配置覆盖。
Git 托管连接
| 类型 | 凭据 | 说明 |
|---|---|---|
| GitHub | Access Token | 克隆注入 x-access-token;Issue 抓取与 API 探活走 /user |
| GitLab | Personal Access Token | 支持自建实例(自定义 host);注入 oauth2 |
| 华为云 CodeArts | HTTPS 密码 + 用户名 | 凭 git ls-remote 真实仓库测试连通 |
- 全局共享一份(
~/.dsh/issue2pr/connections.json),多项目复用;ssh 形态地址走本机密钥,不注入。 - 凭据只存本机,返回给 UI 一律脱敏(
gh05…x8k2),事件日志中的 URL 自动抹除凭据段。 - Run 进行中新增 / 修改连接,下一阶段即生效。
项目配置(project.json)
项目页保存的就是下面这份配置,所有字段均有校验:
{
"name": "我的项目",
"slug": "my-project", // 小写字母/数字/连字符
"repos": ["https://github.com/me/my-project.git"],
"triggers": [
{ "kind": "issue", "uri": "https://github.com/me/my-project/issues/42" },
{ "kind": "requirement", "uri": "C:/docs/需求-登录修复.md" }
],
"reviewMode": "key-only", // every | key-only | auto
"p6Mode": "builtin", // builtin | session | claude
"testCommand": "npm test", // 留空则自动探测 package.json 的 test 脚本
"stageConfig": { /* 逐阶段覆盖,见下 */ }
}
逐阶段配置(stageConfig)
每个阶段都可独立覆盖,未配置项回落默认值,改动在下一阶段即时生效:
"stageConfig": {
"P3": {
"provider": "deepseek-official", // 本阶段换模型
"model": "deepseek-v4-pro",
"reasoningEffort": "high",
"timeoutMs": 600000,
"maxTokens": 16384,
"prompts": { "": "你是 Code Understanding……(覆盖默认提示词)" },
"params": { "deepReadFiles": 10, "fileChars": 8000 }
},
"P6": {
"delegate": { "mode": "session" }, // 本阶段委托外部智能体,产出就绪才放行
"params": {
"claudeBin": "C:\\Users\\you\\AppData\\Roaming\\npm\\claude.cmd",
"claudeTimeoutMin": 120
}
},
"P9": { "params": { "diffChars": 2000 } }
}
阶段专属参数(如 repoScanMax、deepReadFiles、diffChars、claudeBin)在「配置」页有中文说明与默认值——凡影响执行行为的数值与路径都不硬编码,全部可被项目配置覆盖。