Moat — це новий CLI-інструмент, який аналізує стан безпеки профілю користувача, організації чи репозиторію в GitHub. Лише одна команда дозволяє перевірити вбудовані засоби контролю GitHub та отримати звіт із переліком активних і відсутніх налаштувань, а також тих параметрів, на які варто звернути увагу.
Ці засоби безпеки вже існують у GitHub, але вони розпорошені по десятках сторінок налаштувань. Moat збирає їх в єдиний огляд, щоб ви могли бачити повну картину. Для авторів пакетів це критично важливо, оскільки кожен реліз із GitHub потрапляє до Composer, а звідти — у застосунки, що від нього залежать.
# Що він перевіряє
Moat аналізує налаштування на рівнях користувача, організації, репозиторію, гілки, релізу та workflow. Перевірки включають:
- Two-factor authentication
- Branch protection
- Signed commits
- Secret scanning та Secret push protection
- Dependabot alerts та Security updates
- Immutable releases
- Fork pull request approval
- Workflow permissions та Pinned actions
- Зловживання
pull_request_target - Repository webhooks
- Direct collaborators
- Private vulnerability reporting
- Наявність файлу
SECURITY.md
Кожна знахідка супроводжується коротким поясненням ризиків. Звіт також містить оцінку захищеності (hardening score) разом із загальною кількістю результатів PASS та FAIL.
# Як почати роботу
Moat доступний через Homebrew або у вигляді prebuilt binaries. Після встановлення просто вкажіть назву акаунта, організації чи репозиторію:
moat <github-account-or-organization-or-repository>
Для автентифікації Moat використовує токен із GITHUB_TOKEN, GH_TOKEN або активну сесію GitHub CLI через gh auth token.
Щоб адаптувати перевірку під свої потреби, додайте файл moat.toml у корінь репозиторію. Це дозволить вимикати окремі перевірки або вказувати додаткові гілки релізів.
# Чим Moat не є
Проєкт має чітко визначені межі. Moat працює лише в режимі read-only: він не змінює налаштування і не захищає репозиторії замість вас. Інструмент не запобігає вторгненням і не усуває наслідки компрометації — він лише надає рекомендації на основі налаштувань GitHub, які ви маєте оцінити самостійно.
«Чистий» звіт не гарантує повної безпеки акаунта, а негативний — не означає, що його зламали. Moat — це чеклист для вбудованих функцій безпеки GitHub, а не повноцінний продукт для supply chain security.
Спробувати інструмент можна в репозиторії Moat на GitHub.