Обнаружение

Ревью pull request'ов

Каждый pull request в подключённом репозитории проверяется на фоне production, в который он деплоится, и вы узнаёте об этом до слияния.

Большинство инцидентов начинается с изменения. Polylane проверяет каждый pull request в подключённом репозитории на фоне production-ресурсов, в которые он деплоится, и публикует один комментарий, который говорит «pass» или «fail».

Что это даёт

Агент читает diff и живые метрики, логи и открытые проблемы ресурсов, в которые деплоится репозиторий, затем решает, может ли изменение навредить production. Вы получаете один комментарий к pull request, необязательную проверку Polylane production impact и тред в консоли с полным анализом.

Как это работает

  1. Открытие pull request в ветку по умолчанию, push в него или пометка «ready for review» запускает ревью его head-коммита. Черновики не проверяются.
  2. Следующий push заменяет ревью в процессе, так что оценивается только последний коммит.
  3. Изменения, затрагивающие только документацию, тесты или файлы CI, проходят без расследования.
  4. Polylane идёт по рёбрам деплоя репозитория к его production-ресурсам или, когда их нет, проверяет на фоне облачных аккаунтов рабочего пространства в целом.
  5. Агент расследует в треде и записывает вердикт pass или fail.
  6. Один комментарий на pull request редактируется при каждом ревью. Вердикт «fail» читается как Hold this merge с уровнем влияния и находкой; «pass» читается как Production impact unlikely или сообщает, ожидается ли, что исправление обнаруженной проблемы её закроет. Когда следующий push устраняет риск, комментарий возвращается к «pass» и говорит об этом.

Агент также может предложить улучшения наблюдаемости: одним пакетным ревью с комментариями-предложениями или стековым pull request. На вердикт они никогда не влияют.

Действия по ревью

Упомяните @polylane в комментарии к pull request, и Polylane ответит в том же разговоре; не участники вместо этого получают заметку о доступе.

Вы проситеЧто происходит
Ответить на вопросАгент отвечает из треда ревью, имея перед собой доказательства.
Посмотреть ещё разАгент снова проверяет последний push и пересматривает вердикт.
ИсправитьPolylane запускает прогон исправления и открывает стековый pull request в ветку этого pull request со ссылкой из комментария.

Вкладка Changes репозитория в консоли перечисляет каждое ревью. При «fail» доступны Fix with Polylane, которая запускает тот же прогон исправления, и Dismiss, когда риск не применим: pull request продолжает проверяться, но больше не получает комментариев, пока вы не нажмёте Restore.

СтатусОписание
In reviewPolylane проверяет последний push.
FlaggedРевью нашло риск для production.
PassedРисков для production не найдено.
ResolvedСледующий push устранил риски.
DismissedУчастник отклонил ревью; pull request больше не получает комментариев.

Настройка

Ревью включены для каждого подключённого репозитория. Settings > Pull request reviews выключает их для всего рабочего пространства и задаёт, доступны ли треды ревью тем, кто смотрит pull request. В разделе Settings > Repositories вкладка Settings репозитория добавляет три поля.

ПолеОписание
Review pull requests for production impactВыключает ревью только для этого репозитория.
Pull request review instructionsСвободный текст, который агент читает при каждом ревью: критичные для деплоя пути или вопросы, которые уже закрывают другие проверки.
Block merging on production concernsПубликует проверку Polylane production impact на каждом проверенном pull request; при риске она падает. Включено по умолчанию. Сделайте её обязательной в branch protection, чтобы блокировать слияние.

Проверка также завершается на коммитах merge queue, поскольку pull request был проверен до попадания в очередь. Вердикт «fail» может отправить письмо Production Concern Found, выключенное по умолчанию в разделе Уведомления.

Замечания по планам

Каждый план включает месячное число ревью pull request'ов; квота плана Free указана на странице Биллинг и использование, а участники получают письмо, когда она подходит к концу. Сверх квоты консоль записывает pull request как Production impact not verified, и в GitHub ничего не публикуется.

См. также