贡献指南
August 17, 2026 · View on GitHub
感谢你有兴趣为 dsh-github-cli 贡献!这是一个小而聚焦的插件,欢迎提 issue、PR,或直接改进文档。
开始之前
- DeepSeek Harness 处于 developer preview,官方明确会有破坏性变更。请先确认你的改动针对的是哪个
@deepseek-ai/dsh版本(当前锁定0.1.0-rc.x)。 - 本插件的核心卖点是安全模型。任何改动都不应弱化三级白名单(只读默认放行 / 写需 fullAccess / 凭据永禁)。
开发环境
git clone https://github.com/Nico0713520/dsh-github-cli.git
cd dsh-github-cli
npm install # 若 peer 解析报错,用 npm install --legacy-peer-deps
常用命令:
npm run typecheck # TypeScript 类型检查
npm test # 运行 vitest 单元测试
npm run build # tsdown 构建到 dist/
目录结构
src/
├── index.ts # 插件入口:注册 gh_cli_run / gh_auth_status
├── gh-runner.ts # 核心逻辑:命令键解析、白名单判断、gh 执行
├── gh-runner.test.ts # 安全模型单元测试
├── index.test.ts # 入口冒烟测试
└── __stubs__/dsh-tools.ts # 测试用 stub(隔离 dsh-tools 的 peer 依赖树)
如何添加一个只读命令到白名单
- 在
src/gh-runner.ts的READ_ONLY_COMMANDS里加入命令前缀(2~3 个 token,如pr diff、workflow run list)。 - 在
VALUE_FLAGS里加入该命令带值的 flag(如果有)。 - 在
src/gh-runner.test.ts里补对应断言。
提交规范
- 提交信息用 Conventional Commits 风格:
feat:/fix:/docs:/chore:/test:。 - 一个 PR 专注一件事。
测试要求
- 所有改动应附带或更新测试。
- 涉及安全模型(白名单、flag 解析、api 方法判断)的改动必须有针对性测试。
- 提交前确保
npm run typecheck和npm test全部通过。
行为准则
请友善、简洁、聚焦。这是一个社区项目,不是官方 DeepSeek 产品。
License
贡献默认采用与项目一致的 MIT 许可。