概览
dsh-plugin-github
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
### 网络:clone / push 需要更宽的沙箱权限 DSH 默认的 `workspace-write` 沙箱会挡住 git 的网络传输(实测报 `schannel: AcquireCredentialsHandle failed: SEC_E_NO_CREDENTIALS`,且 MSYS 的 `sh.exe` 无法创建信号管道)。因此: | 操作 | `workspace-write` 沙箱 | `danger-full-access` | |---|---|---| | `gh_account` / `gh_config`(用 Node `fetch`,非 git) | ✅ | ✅ | | `gh_api`(`fetch`) | ✅ | ✅ | | `gh_repo status/diff/log/branches`、`gh_file` 读写、`gh_commit`(纯本地) | ✅ | ✅ | | `gh_repo clone` / `gh_pull` / `gh_push`(走 git HTTPS) | ❌ | ✅ | 要让 AI 真正 clone 和推送,请把会话权限设为 `danger-full-access`,或在这些操作上批准一次性提权。 ### 其他 | 现象 | 原因 / 处理 | |---|---| | `gh_*` 工具一个都看不到 | 插件没装上或没重启。装完后完全退出 DSH 再启动 | | 报「还没有绑定任何账号」 | 用 `gh_account(action="bind")` 绑定,或设置 `GITHUB_TOKEN` 环境变量 | | 调用报 `value is not lossless JSON` | 插件版本过旧(输出里带 `undefined` 键)。升级到含 `output-contract.test.mjs` 的版本 | | `gh_push` 报 `allowPush` | 配置里开 `allowPush: true` 并重启 | | 401 / 认证失败 | `gh_account(action="status")` 确认凭据;私有仓库必须有 token | | 403 且 `rate_remaining: 0` | 未认证请求的限额(60/小时)用尽;绑定 token 可到 5000/小时 | | `edit` 报「oldText 出现 N 次」 | 扩大 `oldText` 让它唯一,或显式传 `count` | | 分叉导致 `pull` 失败 | 用 `rebase: true`,或先提交本地改动 |
