Repository navigation
GitMate 1.13.0
这一版不改功能,只让包可以直接发布到 npm —— 因为新机器从市场安装时报了:
git 无法在无人值守的情况下完成 SSH 认证。如果你的 SSH key 设了密码,请用 ssh-agent(ssh-add)…
这不是插件的 bug,是那个网络的 bug
我读了市场(dshmarket)的安装代码,路径是:
installTargetFor(entry)
→ entry.npm (若有)
→ entry.tarball (若有)
→ github:owner/repo ← 你的条目走这条
而 github: 由 pnpm 解析成 codeload 的 HTTPS tarball,SSH 只是 HTTPS 失败之后的兜底。所以在那台机器上是 codeload 先失败,才落到 SSH,又被市场的 BatchMode=yes 快速失败 —— 报的是这个组合。
佐证:这个包没有安装脚本、没有依赖,装的时候只是解一个 tarball;那条 tarball URL 从别的网络访问是 200 / 162 KB。所以插件内容不可能是原因。
手边的绕法
# 走 github.com 的 HTTPS,而不是 codeload(不同的网络路径)
dsh plugin --profile desktop add "git+https://github.com/alanhaskey/dsh-gitmate.git#v1.13.0"或者按市场自己的建议配 ssh-agent / GIT_SSH_COMMAND。
长期修法:发布到 npm(本次已备好)
市场的条目格式里不允许手写 npm: 字段(contributing 明说会被校验拒绝)—— 它从 registry 自动采集映射,所以发布是唯一途径。发布之后安装走 registry,不再碰 GitHub 与 SSH。
已确认就绪:
| 项 | 状态 |
|---|---|
repository / homepage / bugs |
已指向本仓库(市场关联的硬要求)✓ |
npm 包名 dsh-gitmate |
registry 上是空的 ✓ |
prepublishOnly |
已加:发布前先跑 617 项断言 ✓ |
npm pack --dry-run |
16 个文件、117.6 kB,只有 lib/、locale/、icon、cordis.patch.yml、两个 README、LICENSE ✓ |
发布本身需要账号凭证,命令是:
cd /path/to/dsh-gitmate
npm login
npm publish # 有 2FA 时加 --otp=XXXXXX发布后市场会自动把条目关联到 npm,之后所有安装都从 registry 走。