LONGSASASASASA/dsh-issue2pr1

dsh-issue2pr

Issue-to-PR 可验证交付链:项目配置 → 11 阶段流水线 → 人工复核 → PR 说明(DSH 全局插件)

包名
dsh-issue2pr
版本
0.1.0
许可证
MIT
最近更新
2026年8月30日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:LONGSASASASASA/dsh-issue2pr

⚙️ 配置详解

项目配置(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 } }
}

阶段专属参数(如 repoScanMaxdeepReadFilesdiffCharsclaudeBin)在「配置」页有中文说明与默认值——凡影响执行行为的数值与路径都不硬编码,全部可被项目配置覆盖。

Git 托管连接

类型凭据说明
GitHubAccess Token克隆注入 x-access-token;Issue 抓取与 API 探活走 /user
GitLabPersonal Access Token支持自建实例(自定义 host);注入 oauth2
华为云 CodeArtsHTTPS 密码 + 用户名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 } }
}

阶段专属参数(如 repoScanMaxdeepReadFilesdiffCharsclaudeBin)在「配置」页有中文说明与默认值——凡影响执行行为的数值与路径都不硬编码,全部可被项目配置覆盖。