bmmmm/gh-comparereleaseii
GitHub: bmmmm/gh-comparereleaseii
一个 GitHub CLI 扩展,通过比照实际代码 diff 来自动核实 release notes 中描述的变更是否属实。
Stars: 0 | Forks: 0
# gh-comparereleaseii
[comparereleaseii](https://github.com/bmmmm/comparereleaseii) 作为一个 GitHub CLI
扩展 —— 根据实际的代码 diff 来核实发布说明,并且依托于
你已经在 GitHub 授权方面信任的工具。
## 安装
```
$ gh extension install bmmmm/gh-comparereleaseii
$ gh comparereleaseii restic/restic --tag v0.19.1 --html report.html
```
环境要求:Node.js ≥ 24(该工具直接运行其 TypeScript 代码 —— 无需
构建,无需安装包),以及一个用于判定 LLM 结论的评判器 ——
可以是 [`claude`](https://code.claude.com) CLI、一个 `ANTHROPIC_API_KEY`,或者是任何
兼容 OpenAI 的本地服务器。如果没有这些,确定性阶段仍然会
运行。首次调用需要网络访问权限,并会向
扩展目录中拉取大约 1 MB 的数据。
## 更新是如何工作的 —— 以及在你的机器上运行的内容
该扩展只是一个轻量级的封装。在首次使用时,它会将
[bmmmm/comparereleaseii](https://github.com/bmmmm/comparereleaseii) 克隆到
扩展自身的目录中,并检出记录在
[`tool.pin`](tool.pin) 中的**确切 commit** —— 永远不是分支,也永远不是可移动的 tag;这个封装
会拒绝任何非 40 位十六进制 commit hash 的内容。
这个 pin 会自动跟踪上游的发布版本:一个
[每日运行的 workflow](.github/workflows/bump-pin.yml) 会将最新的
comparereleaseii 发布版本解析为其 commit SHA,并提交新的 pin。你
可以通过常规的以下命令来获取更新:
```
$ gh extension upgrade comparereleaseii
```
安全性特征 —— 以及坦诚的局限性:
- **SHA-pin 锁定**:所运行的代码由 commit hash 标识,可以
在本仓库的历史记录中进行审计(`git log -- tool.pin`)。上游被移动或重定向的 tag
无法更改在你机器上运行的内容,并且在运行过程中绝对不会在后台进行任何更新 ——
只有 `gh extension upgrade` 才会移动 pin。
- **无第三方 actions**:版本更新 workflow 仅使用限定于仓库作用域的
`GITHUB_TOKEN` 来调用 GitHub API —— 没有外部 action,也没有涉及任何 secret。
- **无安装钩子,无依赖包**:在安装时不会执行任何内容;
该工具本身在 runtime 没有任何依赖。
- **坦诚说明局限性**:该 pin 会在无人值守的情况下跟踪上游的最新发布版本
—— 它是一个防篡改记录,而不是一个人工审查的关卡。如果
上游账户本身被攻破,恶意的发布版本会在一天加上你下次执行 `gh extension upgrade` 的时间内传播开来。这两个仓库
拥有相同的所有者,因此信任锚点就是那一个账户。
如果该工具的检出内容损坏,只需将其删除并重新运行 —— 这个
封装会重新拉取被 pin 住的 commit:
```
$ rm -rf ~/.local/share/gh/extensions/gh-comparereleaseii/tool
```
## 支持
如果这个工具对你有帮助,你可以在
[ko-fi.com/bmabma](https://ko-fi.com/bmabma) 支持我们的开发。
## 许可证
GPL-3.0-or-later —— 详见 [LICENSE](LICENSE)。
标签:AI辅助, C2, GitHub CLI 扩展, MITM代理, SOC Prime, 代码审查, 开发工具, 网络调试, 自动化