# github-webhooks

Скилл для приёма и проверки вебхуков GitHub: подсказывает, как разобрать подпись и обработать события push, pull_request, issues и release.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 487 установок · ★ 94
- Автор: hookdeck
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/hookdeck/webhook-skills/tree/HEAD/skills/github-webhooks/SKILL.md
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/skills/github-webhooks

## Что делает

Скилл закрывает тему вебхуков GitHub целиком: как принять запрос, как убедиться, что он действительно от GitHub, и как разложить события по типам. Внутри есть готовые функции проверки подписи на Node и Python, таблица частых событий (`push`, `pull_request`, `issues`, `release`, `workflow_run`, `ping`) и разбор важных заголовков.

Главное, на чём спотыкаются, — проверка подписи. GitHub подписывает сырое тело запроса через HMAC-SHA256 и присылает дайджест в `X-Hub-Signature-256` в формате `sha256=<hex>`. Скилл настаивает: берите именно этот заголовок, а не устаревший SHA-1 `X-Hub-Signature`, передавайте **сырое** тело и сравнивайте время-безопасно. Если парсер разобрал JSON до проверки, подпись не сойдётся.

Для полных обработчиков с маршрутами, диспетчеризацией событий и тестами в репозитории лежат примеры на Express, Next.js и FastAPI. Перед запуском понадобится переменная окружения `GITHUB_WEBHOOK_SECRET` — то же значение, что вы указали при создании вебхука в GitHub. Для локальной отладки есть туннель: `npx hookdeck-cli listen 3000 github --path /webhooks/github`, аккаунт для этого не нужен.

## Требования
- Работает с: GitHub

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add hookdeck/webhook-skills --skill github-webhooks -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/github-webhooks/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/github-webhooks/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add hookdeck/webhook-skills --skill github-webhooks -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/github-webhooks/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add hookdeck/webhook-skills --skill github-webhooks -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/github-webhooks/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install hookdeck/webhook-skills github-webhooks
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/github-webhooks/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add hookdeck/webhook-skills --skill github-webhooks -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/hookdeck/webhook-skills --path skills/github-webhooks
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/github-webhooks/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add hookdeck/webhook-skills --skill github-webhooks -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/hookdeck/webhook-skills/tree/HEAD/skills/github-webhooks/SKILL.md

## Когда брать
- проверить подпись вебхука GitHub и отсечь поддельные запросы
- разобрать, чем отличаются события push, pull_request и issues
- починить падающую проверку `X-Hub-Signature-256`
- поднять локальный туннель, чтобы тестировать вебхуки без деплоя
- написать обработчик события release или workflow_run

## Примеры запросов агенту
- Помоги настроить обработчик вебхуков GitHub на Express: проверка подписи, потом разбор события
- У меня не проходит проверка `X-Hub-Signature-256`, посмотри код и найди ошибку
- Сделай обработчик события pull_request с идемпотентностью и логированием

## Похожие
- [cyrus-setup-github](https://affpapa.org/nevibecode/skills/cyrus-setup-github.md) — скилл · 1000 установок
- [github-workflow-automation](https://affpapa.org/nevibecode/skills/ruvnet-github-workflow-automation.md) — скилл · 1300 установок
- [setup-zoom-webhooks](https://affpapa.org/nevibecode/skills/setup-zoom-webhooks.md) — скилл · ★ 7596
- [github-research](https://affpapa.org/nevibecode/skills/github-research.md) — скилл · 1800 установок
- [read-github](https://affpapa.org/nevibecode/skills/read-github.md) — скилл · 1200 установок
- [github-ops](https://affpapa.org/nevibecode/skills/github-ops.md) — скилл · 1500 установок

Из того же набора: [hookdeck/webhook-skills](https://affpapa.org/nevibecode/by/hookdeck/webhook-skills.md) — 2 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
