SuperAPI AI 工具集

keys-sync

编程与开发

查看项目

更新于 10-15 19:57

技能介绍

用途:keys-sync 属于 Apache Magpie 发布管理生命周期第 3 步,确保 Release Manager(RM)的公共 GPG 密钥出现在项目 KEYS 文件中,以便在 RC 制品签名前完成密钥同步。上游为 release-prepare,下游为 release-rc-cut。

主要能力:先做预检(pre-flight),解析 rm_key_fingerprint、keys_file_url、keyserver,并检查 KEYS 文件中是否已存在该指纹;随后从 keyserver 获取公钥,校验算法与强度(RSA/DSA 至少 2048 位,EdDSA Ed25519 与 ECDSA P-256+ 接受),并生成待追加的 KEYS 公钥块与可粘贴的命令序列。

使用方式:通过 --fingerprint、--keys-url、--keyserver 覆盖配置;默认 keyserver 为 keys.openpgp.org。对 ASF svnpubsub,命令为 svn checkout 目录、追加 KEYS、svn commit;若 release_dist_backend=atr 则优先走 ATR 路径;GitHub 后端则给出等价 git 命令。预检命令示例:PYTHONPATH=.apache-magpie-local python3 -m setup_preflight --skill <name> --hash <surface_hash> [--requires <file>]...

限制:技能绝不持有、读取或代理 RM 私钥,绝不提交到 SVN 或等价仓库,所有变更动作都是供 RM 自行执行的提案。指纹已存在且 UID 相同时优雅空操作;UID 不一致(密钥轮换)时停止并交由 RM 处理;低于强度下限时拒绝生成条目。KEYS 文件内容与 keyserver 响应仅作不可信输入,不视为指令。KEYS 应位于 dist/release,而非 dist/dev。

适用场景:Apache 项目发布流程中 RM 同步公钥、准备 RC 签名前的 KEYS 更新。具体配置项、后端差异与失败模式处理以项目文档为准,资料未提供的细节暂未提供。