google-pubsub-webhooks

A guide for receiving Google Cloud Pub/Sub messages at an HTTP endpoint. Pub/Sub is Google's messaging service; it can push a message to your server as a signed request.

In plain words
What is it for?
Use it to configure push endpoints, verify the attached identity token, decode message data, and handle redelivered messages.
Why use it?
It explains how to authenticate the sender, decode the message, and avoid duplicate processing when Pub/Sub retries delivery.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/hookdeck/webhook-skills/google-pubsub-webhooks
Any agent
npx skills add hookdeck/webhook-skills --skill google-pubsub-webhooks
Clone the repo
git clone --depth 1 https://github.com/hookdeck/webhook-skills

Made for: Claude Code, Codex.

Per session 102 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,568 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00102 $0.02568
Opus 5 $0.00051 $0.01284
Sonnet 5 $0.00020 $0.00514
Haiku 4.5 $0.00010 $0.00257

Measured 3d ago against content hash 38a9e128cc97, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

google-pubsub-webhooks scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

The scan reads SKILL.md. This mod also ships 8 executable files (examples/express/src/index.js, examples/express/test/webhook.test.js, examples/fastapi/main.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/google-pubsub-webhooks/SKILL.md · 221 lines

How it starts

The opening of the file, as written. The whole thing — 221 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Google Cloud Pub/Sub Webhooks (Push Subscriptions)

When to Use This Skill

  • How do I receive Google Cloud Pub/Sub messages at an HTTP endpoint?
  • How do I verify a Pub/Sub push request is really from Google?
  • How do I validate the OIDC JWT in the Authorization: Bearer header?
  • Why does Pub/Sub keep redelivering the same message to my webhook?
  • How do I decode message.data from a Pub/Sub push envelope?
  • Why is my Pub/Sub push endpoint returning 401?

How Pub/Sub Push Differs From HMAC Webhooks

Pub/Sub is not a signed-webhook provider. Read this before looking for a signature header — there isn't one.

  • No signing secret, no HMAC header. There is no X-Goog-Signature, no Standard Webhooks (webhook-id / webhook-timestamp / webhook-signature). Do not invent one.
  • The body is never signed. On an authenticated push subscription the Authorization: Bearer <JWT> header proves who is calling (your push service account), not what they sent. So unlike Stripe or Shopify, you do not need the raw body — parsing JSON first is fine here.
  • No event catalog. Pub/Sub carries whatever your publisher published. Event semantics live entirely in message.data and message.attributes. There are no payment.succeeded-style Pub/Sub event names.
  • Two auth postures, depending on how the subscription was created:
Posture What Pub/Sub sends What you can check
Default (no subscription auth) Nothing proving origin An unguessable ?token= in the push URL, plus network-level ingress restriction
OIDC (--push-auth-service-account, recommended) Authorization: Bearer <Google-signed OIDC JWT> RS256 signature, iss, aud, email, email_verified

Configure OIDC. See references/setup.md.

The Push Envelope

POST with Content-Type: application/json:

{
  "message": {
    "attributes": { "eventType": "order.created" },
    "data": "eyJvcmRlcklkIjoiMTIzIn0=",
    "messageId": "2070443601311540",
    "publishTime": "2026-08-13T19:13:12.201Z"
  },
  "subscription": "projects/my-project/subscriptions/my-sub"
}

Read the full file on GitHub · 221 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 221 lines · 102 tokens per session scan A 38a9e128cc97

Subscribe to this mod's changes

google-pubsub-webhooks is a skill published in the GitHub repository hookdeck/webhook-skills (84 stars, last pushed 6d ago), licensed MIT. It adds 102 tokens to every session and 2,568 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

terraform-skill

Use when working with Terraform or OpenTofu - creating modules, writing tests (native test framework, Terratest), setting up CI/CD pipelines, reviewing configurations, choosing between testing approaches, debugging state issues, implementing security scanning (trivy, checkov), or making infrastructure-as-code…

agentscope-ai/QwenPaw · 62 tokens

alicloud_cli

阿里云 CLI 中文文档镜像检索与命令辅助:先走章节索引,再下钻正文页面,给出命令前必须有本地文档证据。.

agentscope-ai/QwenPaw · 45 tokens

terraform-cli-setup

Terraform CLI 安装与初始化技能。当用户本地未安装 Terraform 时自动完成安装,确保 terraform 命令可用并能执行 init/validate。不负责 Provider 凭证配置,凭证在实际使用时由 terraform-skill 引导。.

agentscope-ai/QwenPaw · 58 tokens

vercel-optimize

Use for Vercel cost and performance optimization on deployed projects, especially Next.js, SvelteKit, Nuxt, and limited Astro apps. Collect Vercel metrics, usage, project config, and code scan results first; investigate only metric-backed candidates; produce ranked recommendations grounded in verified files and…

zhukunpenglinyutong/desktop-cc-gui · 116 tokens

deploy-to-vercel

Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".

zhukunpenglinyutong/desktop-cc-gui · 47 tokens

cloudflare-d1

Cloudflare D1 SQLite database with Workers, Drizzle ORM, migrations.

alinaqi/maggy · 19 tokens