Packagist 自2022年起强制通过官方GitHub App同步,禁用手动Webhook;需安装App、确保composer.json中name与GitHub路径一致(如"acme/utils"对应github.com/acme/utils),并推送合法语义化tag(如v1.0.0)触发更新。

Packagist 不再支持手动配置 GitHub Webhook,所有自动同步必须通过 GitHub 的「Package Registry」或 Packagist 官方的「GitHub App」完成;旧版 Webhook 已于 2022 年彻底下线,直接填 URL 或发 POST 请求会返回 404 或 403。
为什么 GitHub Settings → Webhooks 页面里加不了 Packagist 地址
Packagist 自 2022 年起强制要求通过官方 GitHub App 授权接入,不再接受用户自行添加 Webhook。直接在仓库 Settings → Webhooks 里填 https://packagist.org/api/github 会失败,因为该端点已废弃,且无签名验证能力。
- 旧文档残留导致很多人还在试
https://packagist.org/api/update-package—— 这个接口早已 404 - 即使你用 GitHub Actions 模拟推送,Packagist 也不会认,除非包名、vendor 名与 GitHub owner/repo 完全匹配且已绑定
- GitHub App 是唯一受信通道,它会在 push tag 时自动触发
package:updated事件,而非靠 webhook payload 解析
怎么正确绑定 GitHub 仓库和 Packagist 包
核心动作是安装 Packagist 官方 GitHub App,并确保 Composer name 字段与 GitHub 路径一致(如 "name": "acme/utils" 对应 github.com/acme/utils)。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 访问
https://github.com/apps/packagist,点击 “Install” → 选择要同步的组织或账户 - 安装后,Push 一个带语义化版本的 tag(如
v1.0.0),不是 branch 名也不是dev-main - 确认
composer.json中name格式为vendor/package,且全部小写、无空格、不以数字开头 - 首次同步可能延迟 1–2 分钟,可查
https://packagist.org/packages/vendor/package页面右上角的 “Last update” 时间
常见同步失败原因和对应检查项
90% 的“没更新”问题出在命名或权限上,而不是网络或配置。
-
name和 GitHub 路径不一致:比如 GitHub 是my-org/my-lib,但composer.json写了"name": "mylib/core"→ 同步被忽略 - Tag 名不合法:用了
1.0、release-2.1、v2.x—— 必须是vX.Y.Z或X.Y.Z(Packagist 用 semver parser 解析) - 仓库设为私有但未在 Packagist 绑定 GitHub 账户:Packagist 不拉私仓,也不报错,只是静默跳过
- GitHub App 未覆盖该仓库:安装时选了 “Only select repositories”,但漏选了目标 repo
最常被忽略的一点:Packagist 不监听 push 事件,只响应 create 事件中的 tag 创建。删 tag、force push tag、改 tag 注解都不会触发重同步 —— 得删 tag 后重新打一个新 tag。

















