Skip to content

GitMate 1.13.0

Choose a tag to compare

@alanhaskey alanhaskey released this 22 Oct 02:26
· 2 commits to main since this release

这一版不改功能,只让包可以直接发布到 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 走。