# attester-import-check

Хук перехватывает запись кода в GitHub Copilot и проверяет имена пакетов PyPI и npm через сервис attester.dev. Он блокирует добавление несуществующих библиотек.

- хук · `type=hook` · GitHub Copilot · ★ 40451
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/hooks/attester-import-check
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/hooks/attester-import-check

## Что делает

Скрипт срабатывает на событии `preToolUse` перед тем, как агент применит изменения к файлам. Он парсит импорты и опрашивает базу attester.dev. База сверяется с опубликованными пакетами PyPI и npm. Поэтому вердикт оракула детерминирован. Если библиотека не существует, хук прерывает операцию с кодом 1.

Без Python 3.10+ в системе скрипт проверки не запустится. Сторонние библиотеки не требуются. Бесплатный тариф даёт 25 запросов в сутки на IP-адрес со сбросом в 00:00 UTC. Ответы о найденных пакетах кэшируются на 30 дней в файле `~/.cache/attester-import-check/cache.json`, поэтому повторные правки лимит не тратят. При сбое сети или исчерпании квоты хук не блокирует работу, а завершается с кодом 0.

Проверка рассчитана только на публичные реестры. Приватные пакеты оракул не увидит. Модули с несовпадающими именами вроде `PIL` или `yaml` придётся вносить в файл `.attester-allowlist` вручную. Динамические вызовы через `__import__` и псевдонимы путей сборщика хук тоже пропускает.

## Установка

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

**Вручную: положить файлы**
- Файл: `.claude/settings.json` — Блок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/hooks/attester-import-check

## Когда брать
- заблокировать установку несуществующих библиотек PyPI и npm
- предотвратить внедрение галлюцинированных зависимостей в код
- добавить исключения для нестандартных импортов через `.attester-allowlist`
- кэшировать результаты проверки пакетов на диске

## Примеры запросов агенту
- Добавь в `main.py` парсинг HTML-страниц через библиотеку BeautifulSoup.
- Напиши утилиту на Node.js для работы с датами и подключи нужный npm-пакет.
- Создай скрипт для валидации входных данных с использованием сторонней библиотеки.

## Похожие
- [dependency-checker](https://affpapa.org/nevibecode/hooks/dependency-checker.md) — хук · 2314 установок
- [security-scanner](https://affpapa.org/nevibecode/hooks/security-scanner.md) — хук · 2256 установок
- [file-protection](https://affpapa.org/nevibecode/hooks/file-protection.md) — хук · 1668 установок
- [command-logger](https://affpapa.org/nevibecode/hooks/command-logger.md) — хук · 952 установки
- [shell-wrapper-guard](https://affpapa.org/nevibecode/hooks/shell-wrapper-guard.md) — хук · 212 установок

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 954 карточки

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

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