GitHub · Deployments API · Lighthouse · OpenClaw · удалённый Mac · 2026

OpenClaw на фронтенде в 2026 году:
шлюз на удалённом Mac для GitHub Deployments — Lighthouse, пороги и читаемая сводка в pull request

22.04.2026 Релизная автоматизация и перфоманс 11 мин чтения
Постоянный slug (один каталог): 2026-openclaw-remote-mac-github-deployments-lighthouse.html

Для кого: командам, которым нужно, чтобы страница Deployments в GitHub отражала реальный прогон Lighthouse после публикации превью, а не только зелёный чек сборки. Ниже — связка вебхук платформы, Deployments API и воркер на удалённом Mac с порогами и короткой таблицей в PR. Полезные материалы: метрики и сводка в PR, Lighthouse до деплоя, токены и E2E на шлюзе. Домашняя без входа: главная, каталог блога.

Когда превью уже открыто по ссылке из pull request, разработчики ожидают единый источник правды: цвет в Deployments, комментарий с цифрами и ссылкой на артефакт. Этот материал даёт пошаговый сценарий через шлюз OpenClaw на удалённом Mac, таблицу выбора сигнала, блок про минимальные права и таблицу разборов HTTP. В конце — переход на страницы без логина для заказа узла.

01 Три ограничения, если просто «поставить Lighthouse в Actions»

1) Среда не совпадает с пользователем. Linux runner не воспроизводит шрифты WebKit и задержки macOS, которые видит команда дизайна на реальном железе.

2) Рассинхрон дашбордов. Внешний хостинг сообщил об успехе, а GitHub Deployments остался пустым или вечно жёлтым, потому что никто не обновил deployment_status после асинхронного прогона.

3) Пермиссивный токен. Широкий PAT упрощает прототип, но увеличивает площадь компрометации; для автоматизации нужны отдельные ключи с узкими правами и ротацией.

02 Матрица: вебхук деплоя и опрос GitHub API

Идея связки: внешнее событие будит шлюз, шлюз держит идемпотентность и очередь, а Deployments API даёт пользователю предсказуемый статус в интерфейсе GitHub.

Сигнал Когда достаточно Риск
Подписанный вебхук от Pages, Vercel или собственного оркестратора Нужна низкая задержка после публикации URL и известный секрет на периметре. Повторная доставка и большие тела запроса — гасите через ключ идемпотентности и лимит размера.
Опрос workflow_run или Deployments REST Когда вебхук недоступен из периметра клиента или требуется сверка нескольких систем. 429 и задержки отображения; кэшируйте метаданные и не опрашивайте чаще согласованного интервала.
Смешанный режим Вебхук ставит задачу в очередь, опрос подтверждает запись deployment и закрывает гонки. Сложность кода; документируйте порядок вызовов и таймауты в одном runbook.

03 Воспроизводимые шаги HowTo

  1. Контракт ingress. Примите POST на шлюз OpenClaw, проверьте подпись общим секретом или HMAC, ответьте 202 Accepted и сохраните delivery_id в NDJSON лог.
  2. Создание deployment. По полезной нагрузке извлеките sha, номер pull request и целевой preview_url; вызовите REST создания deployment для фиксированного environment и немедленно создайте статус in_progress с описанием воркера.
  3. Очередь на удалённом Mac. Поставьте задачу в локальную очередь launchd или простой FIFO на арендованном Mac с установленным Chrome стабильной ветки; не выполняйте десятиминутный Lighthouse внутри обработчика HTTP.
  4. Lighthouse и пороги. Запустите измерение против preview_url после короткого прогрева; сравните LCP, CLS и TBT с файлом thresholds.json в репозитории и сохраните полный JSON отчёта как артефакт прогона без секретов в имени файла.
  5. Обновление статуса. При успехе отправьте success со ссылкой на артефакт; при провале — failure с одной строкой причины и ключевой метрикой, чтобы дежурный не открывал сырой лог.
  6. Сводка в PR. Сформируйте markdown таблицу из трёх столбцов метрика значение порог и приложите ссылку на скачивание JSON; используйте заголовок Idempotency-Key из пары sha и deployment id чтобы повтор вебхука не плодил комментарии.
  7. Наблюдаемость. Прокиньте те же поля в совместимый отчёт как в смоук OpenAPI на шлюзе для единого поиска по git_sha в мониторинге.

04 Минимальные права и разделение секретов

Для GitHub App или fine-grained PAT держите отдельный credential только для робота шлюза: создание deployment, запись deployment status, чтение метаданных pull request и создание комментария. Право на содержимое репозитория ограничьте чтением коммита и списка проверок если это действительно нужно связке. Секрет вебхука храните вне репозитория; токен выдачи статусов ротируйте чаще, чем долгоживущий ключ ingress. На стороне OpenClaw маскируйте заголовки авторизации в логах и запретите echo переменных окружения в общий чат.

Смысл связки вебхука и статуса: вебхук даёт момент времени и контекст платформы, а API фиксирует состояние для интерфейса GitHub и для правил защиты ветки. Если обновлять только комментарий без deployment status, ревьюеры увидут цифры, но индикатор окружения останется вводящим в заблуждение.

05 Типовые сбои и короткий разбор

Симптом Вероятная причина Действие
401 или 403 на GitHub Истёкший токен, неверный installation id или запрет fine-grained на репозиторий. Проверьте часы на Mac, пересоздайте короткоживущий токен, сузьте и заново выдайте scope только для нужных эндпоинтов.
422 при статусе Недопустимое значение state или конфликт контекста deployment. Сверьте перечень допустимых состояний в документации API и порядок переходов in_progress success failure.
429 при серии комментариев Повторы вебхука без идемпотентности или слишком частый опрос. Введите exponential backoff для REST, унифицируйте ключ идемпотентности и объединяйте обновления в один комментарий по sha.
Lighthouse нестабилен Холодный превью, CDN кэш и соседние нагрузки на общем хостинге. Фиксируйте три прогона и медиану, держите прогрев и одинаковый регион egress с удалённого Mac.
Статус вечно in_progress Воркер упал после принятия вебхука или зависла очередь. Таймаут с автоматическим failure, алерт в канал дежурных, ручной replay с тем же deployment id после починки.

Если команда уже строит цепочки через хостинг без GitHub Deployments, начните с зеркалирования статуса в deployment только для превью веток, затем расширьте на production после стабилизации порогов.

06 Что зафиксировать в тикете и в артефакте

Обязательные поля

Идентификатор deployment, sha коммита, preview_url, версия Chrome на удалённом Mac, имя environment и хэш файла порогов из git.

Порог приёмки

Три метрики производительности и один доступности с явным сравнением значение к порогу в таблице PR без вложенных вложений с секретами.

Операционный резерв

Runbook на ручной failure и повтор вебхука, контакт дежурного и ссылка на лог шлюза OpenClaw с отфильтрованными токенами.

MacWww · удалённый Mac · OpenClaw и QA

Запустите Lighthouse и статусы Deployments на арендованном Mac без своей стойки

Откройте главную macwww.com, изучите тарифы и раздел помощь, затем оформите покупку или аренду узла для круглосуточного воркера. Каталог статей: блог; смежная тема — метрики в PR.

Deployments API Lighthouse Минимальные права
Mac для Deployments и Lighthouse