Владельцы репозиториев GitHub: используйте флаг --author в Git для блокировки спама от ИИ-ботов

Команда Archestra (стартап AI-платформы) тонула в спаме от AI-ботов — 253 комментария к одному баунти, 27 PR для одной функции, которые никогда не тестировались, и еженедельная очистка занимала полдня. Их репозиторий стал враждебным для реальных контрибьюторов. Им нужен был белый список, но GitHub не поддерживает его для публичных репозиториев. Их хитроумное решение: злоупотребление настройкой Limit to prior contributors и флагом Git --author.
Проблема: AI-мусор в GitHub
Боты генерировали бесконечные «планы реализации» и агрессивные ответы. Реальные контрибьюторы, такие как @ethanwater, @developerfred и @Geetk172, оставались незамеченными. Даже их первая попытка — бот репутации под названием «London-Cat» — не остановила спам. «Шериф AI» закрывал легитимные PR. Единственным реальным решением было ограничить вклад проверкой на человека.
Как работает хак с белым списком
Настройка GitHub «Limit to prior contributors» блокирует всех, кто не делал коммитов в main. Но в Git коммиты имеют два поля идентификации: автор и коммиттер. Используя --author, можно приписать коммит другому человеку — GitHub предоставляет статус контрибьютора, если email совпадает с noreply email пользователя GitHub (<id>+<username>@users.noreply.github.com).
# Узнать GitHub ID пользователя
gh api users /their-username --jq '.id'
# Сделать коммит от его имени (email = [email protected])
git commit \
--author="their-username <[email protected]>" \
-m "chore: add their-username to external contributors"
Запушьте в main, и этот пользователь сможет сразу комментировать, открывать issues и отправлять PR. В коммите внешний пользователь указан как автор; ваш аккаунт — как коммиттер. Этого достаточно, чтобы GitHub считал их «предыдущим контрибьютором».
Полный процесс онбординга
- Пользователь переходит на archestra.ai/contributor-onboard и проходит капчу, соглашаясь с правилами этичного AI.
- При отправке формы срабатывает GitHub Action, который через API узнает ID пользователя и добавляет его handle в файл
EXTERNAL_CONTRIBUTORS.md. - Action пушит коммит в
mainс авторством от внешнего пользователя — предоставляя ему статус контрибьютора немедленно.
Это ядерный вариант для стартапа, финансируемого венчурным капиталом и измеряющего активность в GitHub, но качество победило тщеславные метрики.
Хак грязный, но работает. Никакого стороннего спам-фильтра — только умное использование полей идентификации Git и двухэтапный процесс проверки.
📖 Полный источник: HN AI Agents
👀 Смотрите также

Три ключевых навыка OpenClaw для стабильной настройки: Память, Безопасность и Обнаружение.
В посте на Reddit рекомендуется сначала установить три конкретных типа навыков OpenClaw: навык исправления памяти для предотвращения потери контекста, навык локальной проверки безопасности для поиска вредоносного кода и курируемый хаб для поиска поддерживаемых инструментов.

Список ресурсов OpenClaw, составленный на основе сообщества
Репозиторий на GitHub собирает практические ресурсы по OpenClaw, охватывающие настройку, конфигурацию, системы памяти, безопасность, навыки, совместимость моделей и ссылки на сообщества, чтобы помочь разработчикам избежать распространённых пробелов в информации.

4-файловая система памяти для агентов OpenClaw без плагинов
Пользователь Reddit делится практической системой памяти, использующей четыре файла в формате markdown: USER.md для идентификации, CONTEXT.md для текущей работы, MEMORY.md для структурированных тем и ARCHIVE.md для завершённых задач. Этот подход решает проблему «агент не знает, что он знает» через улучшенную архитектуру файлов, а не за счёт увеличения памяти.

Советы по настройке OpenClaw из опыта пользователя: Gmail MCP, флаги профиля и проблемы с сетью
Пользователь, запускающий OpenClaw на Mac через UTM с виртуальной машиной Ubuntu, делится конкретными проблемами конфигурации, с которыми столкнулся: сервер Gmail MCP требует параметр html_body вместо body, необходим флаг --profile prod, чтобы избежать жестко заданной dev-идентичности, а API-ключи должны размещаться в auth-profiles.json с помощью команды paste-token.