Claude Code, Skill
Webhook Skills
This repository contains webhook-related skills for AI coding agents that need to receive, verify signatures, handle events, retry deliveries, or debug webhook integrations from various providers (see Provider Webhook Skills table below).
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit dfe206e8ff0e.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST SECRETS_PATH_DOTENV OBFUSCATION_ENCODED_BLOB SECRETS_ENV_READ
Why this grade
- NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
scripts/test-agent-scenario.sh, line 53
if command -v curl &> /dev/null; then - NETWORK_UNNAMED_HOST Low
Calls a fixed host that the description does not name.
scripts/test-agent-scenario.sh, line 53
if command -v curl &> /dev/null; then - SECRETS_PATH_DOTENV Low
Mentions a .env file.
AGENTS.md, line 35
│ │ ├── .env.example - OBFUSCATION_ENCODED_BLOB Low
Contains a long base64 shaped string in a file that should be readable.
providers.yaml, line 1
# Webhook Providers - Source of Truth - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
AGENTS.md, line 699
process.env.WEBHOOK_SECRET = '
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Pass
No shell or command execution found, and no extra permission was declared.
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address. can reach api.anthropic.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
scripts/test-agent-scenario.sh, line 53
if command -v curl &> /dev/null; then
scripts/test-agent-scenario.sh, line 54
if ! curl -s --max-time 5 https://api.anthropic.com > /dev/null 2>&1; then
scripts/skill-generator/lib/git.ts, line 71
await git.fetch('origin', baseBranch);
Show more
skills/airtable-webhooks/examples/express/src/index.js, line 78
const res = await fetch(url, { headers: { Authorization: `Bearer ${token}` } });
skills/airtable-webhooks/examples/nextjs/app/webhooks/airtable/route.ts, line 76
const res = await fetch(url, { headers: { Authorization: `Bearer ${token}` } });
skills/airtable-webhooks/references/setup.md, line 22
curl -X POST \
skills/aws-sns-webhooks/examples/express/src/index.js, line 63
const response = await fetch(message.SubscribeURL);
skills/aws-sns-webhooks/examples/fastapi/main.py, line 44
_cert_cache[url] = httpx.get(url, timeout=5).content
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
AGENTS.md, line 699
process.env.WEBHOOK_SECRET = '
scripts/skill-generator/lib/github.ts, line 16
const token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
AGENTS.md, line 35
│ │ ├── .env.example
Show more
skills/adyen-webhooks/SKILL.md, line 78
const valid = validator.validateHMAC(item, process.env.ADYEN_HMAC_KEY);
skills/adyen-webhooks/examples/express/src/index.js, line 14
const HMAC_KEY = process.env.ADYEN_HMAC_KEY;
skills/adyen-webhooks/examples/express/src/index.js, line 23
const pass = process.env.ADYEN_WEBHOOK_PASSWORD;
skills/adyen-webhooks/examples/fastapi/main.py, line 17
HMAC_KEY = os.environ.get("ADYEN_HMAC_KEY", "")
skills/adyen-webhooks/examples/fastapi/main.py, line 69
password = os.environ.get("ADYEN_WEBHOOK_PASSWORD")
skills/adyen-webhooks/examples/nextjs/app/webhooks/adyen/route.ts, line 28
const pass = process.env.ADYEN_WEBHOOK_PASSWORD;
AGENTS.md, line 270
├── .env.example # Required environment variables
AGENTS.md, line 299
3. Add your {Provider} webhook signing secret to `.env`
scripts/validate-provider.sh, line 157
"examples/express/.env.example"
scripts/validate-provider.sh, line 166
"examples/nextjs/.env.example"
scripts/validate-provider.sh, line 175
"examples/fastapi/.env.example"
scripts/skill-generator/index.ts, line 16
// Load .env from skill-generator directory
scripts/skill-generator/index.ts, line 17
config({ path: join(__dirname, '.env') });
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Concern
contains an encoded blob in a file that should be readable.
OBFUSCATION_ENCODED_BLOB
providers.yaml, line 1
# Webhook Providers - Source of Truth
skills/bigcommerce-webhooks/examples/nextjs/app/webhooks/bigcommerce/route.ts, line 1
// Generated with: bigcommerce-webhooks skill
skills/volume-webhooks/examples/fastapi/test_webhook.py, line 45
"authorization": "SHA256withRSA hnHI6qoo7p37NwtBFj332TWC9UUHFiMlwgKsI2XV+L1xKbIK4Vp+3b3bczrdM+8bLXNTRMvJJJ+5zr5uBXBhl9enN3Sfq/4q3gmdq1pGd0Gz0YaRUZxhNG2tkVq7LGtKeeWzg5PxfCy7PeD3D71C
Show more
skills/volume-webhooks/examples/fastapi/test_webhook.py, line 49
"authorization": "SHA256withRSA Th+qWdYLLh436/L0pZOgFgjfNa8jcLE5VTMM4IYEQz1yVkljudt0XMgShhWjqhy2+f0puV+FXfh3PWP3DMAV8FlgYdciyPpLqijy5Ruo2ALz0LPgunT/o6Y+7NAfWCnVDfWT17yqokeN+70QCX/W
skills/volume-webhooks/references/verification.md, line 122
Authorization: SHA256withRSA hnHI6qoo7p37NwtBFj332TWC9UUHFiMlwgKsI2XV+L1xKbIK4Vp+3b3bczrdM+8bLXNTRMvJJJ+5zr5uBXBhl9enN3Sfq/4q3gmdq1pGd0Gz0YaRUZxhNG2tkVq7LGtKeeWzg5PxfCy7PeD3D71C+Sn
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit dfe206e8ff0e. can reach a host that is not written as a fixed address. can reach api.anthropic.com. The description does not name that host. reads a credential or environment file. contains an encoded blob in a file that should be readable.
Date and source
Date checked:
github.com
Commit graded: dfe206e8ff0e88d787c506baae08f0e0f3b7e0d1
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.