Composer在代码发布阶段不参与也不提供任何签名校验能力,它只负责根据composer.json中的source.url和source.reference执行git clone和git checkout,全程跳过git tag -v,不验证tag签名、不解析version字段、不校验提交可信性。

composer 在代码发布阶段**不参与、也不提供任何签名校验能力**。它不是签名工具,不生成签名,也不验证你本地提交或打 tag 的行为是否可信。
发布阶段的安全签名校验,完全由 Git 和开发者手动控制,composer 只负责消费——它读取 composer.json 中的 source.url 和 source.reference,然后执行 git clone 和 git checkout,**全程跳过 git tag -v**。
常见错误现象:
- 以为在
composer.json里写"version": "v3.2.1"就能自动验签 → 实际无效,composer不解析该字段用于验证 - 看到 Packagist 页面显示 “Verified” 就认为本地安装时已校验 → 那只是作者上传时附带了签名,
composer install默认根本不会去验 - 用
dev-main或dev-develop分支安装 → 这些分支没有 tag,天然无签名,内容随时可变,风险极高
真正有效的发布阶段签名校验,只有这三步:
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 作者必须对 release tag 执行
git tag -s v3.2.1 -m "Release 3.2.1"(用私钥签名) - 公钥需提前公布(如 GitHub Profile、官网文档),并被使用者导入本地 GPG 密钥环:
gpg --import author.pub.asc - 使用者手动验证:
git clone <url> && cd <repo> && git tag -v v3.2.1,输出含Good signature且指纹匹配才算可信
注意:composer 对 VCS 类型依赖从不调用 git tag -v,也不会因 tag 未签名而报错或降级。它只关心能否成功 checkout 到指定 commit —— 即使那个 commit 是恶意注入的,只要 hash 正确,composer 就认为“安装成功”。
composer 的角色仅限于依赖分发环节,不是代码来源审计工具。发布阶段的签名责任,始终在开发者和 Git 工具链身上。

















