这个项目能做什么
GitHub Actions Pins 是一个维护仓库,其目的是跟踪 GitHub Actions 的固定元数据,以便工作流可以固定不可变的修订版本,而不是可移动的标签。README 将该仓库描述为一个跟踪列表而非应用程序,其实际输出是一个可供其他项目消费的机器可读文件。
事实来源是一个名为 actions.csv 的文件。每一行包含两列:action 和 ref_override。当不需要覆盖时,ref_override 列保持为空,这在保持列表可读性的同时,仍允许为特定条目强制指定引用。
列表的变更通过一个基于 Issue 的流程进行。名为 gh pin 的命令可以开启一个标题为 "Add actions to pin list" 且带有 pins 标签的 Issue。添加该标签即表示批准请求。随后,一个 Issue 工作流会验证 Issue 中提交的 owner/action@ref 条目,并在成功后开启一个自动合并的 pull request,以同时更新 actions.csv 和 pins.json。由于 pull request 设置为自动合并,批准的添加项将在无需手动合并的情况下被纳入。
有几条规则决定了条目的解析方式。Action 子路径仍属于固定键的一部分,因此指向 Action 子目录的工作流步骤被视为独立的键。然而,元数据是针对根 owner/repo 而非子路径进行解析的。已经引用完整 commit SHA 的条目完全不需要添加到固定列表中,因为此类引用在结构上就是不可变的。
生成的 pins.json 被发布并部署到 https://unfun.co/pins.json,为消费者提供了一个用于获取当前固定数据的稳定 URL。
该项目由 Daniel Morris 创建,采用 MIT 许可证发布;README 包含 2026 年的版权声明,并链接到仓库中的 LICENSE.md 文件。
评论
0 评分人数达到10人后显示
登录后参与讨论。