用途:接收 Docker Hub 仓库级 Webhook(仓库 → Webhooks 页配置名称与目标 URL,推送时触发)。适用于构建镜像推送后的通知/部署接收端。
主要能力:说明 Docker Hub 的两大特殊性——无签名验证(无签名头、无共享密钥、无 HMAC、无时间戳、无 token 字段),且只有一个 push 触发、payload 无 event/type/action 字段,应按 repository.repo_name 与 push_data.tag 路由。覆盖 payload 字段(push_data.tag/pusher/pushed_at,repository.repo_name/namespace/name/is_private/repo_url,callback_url,dhi_metadata)、DHI 镜像附加的 dhi_metadata 结构、创建权限、255 字符 URL 限制、投递历史与本地调试钩子。
必要用法:无签名可验,可在注册 URL 中放置长随机令牌并以常数时间比较,令牌未设置时失败关闭(500);对 payload 做防御性校验(tag 与 repo_name 必须为非空字符串),用 DOCKER_HUB_ALLOWED_REPOS 做仓库白名单;把 payload 当不可信提示,必要时用 GetRepositoryTag 或按 digest 复核。public 仓库无需鉴权,private 需以 PAT/OAT 换取 JWT。环境变量:DOCKER_HUB_WEBHOOK_TOKEN(必填)、DOCKER_HUB_ALLOWED_REPOS、DOCKER_HUB_API_IDENTIFIER、DOCKER_HUB_API_TOKEN。本地可用 npx hookdeck-cli listen 3000 docker-hub --path /webhooks/docker-hub。
限制:Docker Hub 无签名、无事件类型、无握手、无源 IP 白名单;callback_url 为已弃用字段,不得回调;push_data 无 digest;重试策略、超时与请求头未文档化;官方未提供该来源的 Hookdeck 指南;本技能不涵盖 Docker Build Cloud、Docker Scout、自托管 registry 通知、GitHub Container Registry 或 Docker Engine 事件。