Проверка запросов на включение изменений GitHub с помощью Codex

Настройте проверку кода с помощью Codex для pull request в GitHub, запрашивайте проверку командой @codex review, включите автоматические проверки и настройте правила проверки.

Используйте проверку кода Codex, чтобы получить дополнительную содержательную проверку запросов на включение изменений GitHub. Codex проверяет различия в запросе на включение изменений, следует рекомендациям вашего репозитория и публикует стандартную проверку кода GitHub, сосредоточенную на серьёзных проблемах. Security Review, доступная в режиме предварительной исследовательской версии, обеспечивает более глубокую проверку потенциальных проблем безопасности в запросе на включение изменений.

Перед началом работы

Убедитесь, что у вас есть:

Настройка проверки кода с помощью Codex

Чтобы настроить автоматические проверки, вам потребуется подключённый репозиторий GitHub и разрешение на отправку изменений в GitHub или права администратора для изменения его настроек.

  1. Подключите репозиторий GitHub к Codex.
  2. Перейдите в настройки Codex.
  3. Выберите репозиторий, затем включите Автоматическая проверка в разделе Проверка кода.

Запрос проверки с помощью Codex

  1. Упомяните @codex review в комментарии к запросу на включение изменений.
  2. Подождите, пока Codex отреагирует (👀) и опубликует результаты проверки.

Codex публикует результаты проверки в запросе на включение изменений, как это сделал бы ваш коллега. В GitHub Codex отмечает только проблемы уровней P0 и P1, чтобы комментарии проверки были сосредоточены на рисках с высоким приоритетом.

Включение автоматических проверок

Чтобы включить автоматические проверки своих пул-реквестов, включите Автоматическая проверка в разделе Личные настройки в настройках Codex. Укажите, когда запускать проверки, с помощью параметра Условие запуска проверки. Это применяется к репозиториям, в которых включена проверка кода, и не требует комментария @codex review.

Настройка того, что проверяет Codex

Codex ищет в репозитории файлы AGENTS.md и следует применимым правилам проверки кода. Добавьте раздел ## Code Review Rules в файл, ближайший к коду, на который распространяются правила. Когда это уместно, используйте заголовки ###, чтобы сгруппировать связанные проверки.

Например, сервис формирования отчётов об экспериментах может предотвратить изменение поведения после воздействия для сравнительной когорты:

## Code Review Rules

### Experiment cohorts

- Do not filter treatment comparisons on post-exposure behavior, including conversion or retention.
  Safe path: build cohorts from assignment or exposure; report conversion as an outcome.

Поместите правила для всего репозитория в корневой файл AGENTS.md, а правила для конкретного сервиса — во вложенный файл, например services/experiment_reporting/AGENTS.md. Codex применяет корневые и более конкретные правила, относящиеся к каждому изменённому файлу, поэтому для несвязанных изменений не требуется контекст конкретного сервиса.

Начните с двух или трёх кратких правил, описывающих проверки, которые часто поясняют рецензенты. Полезные правила:

  • Сосредоточьтесь на существенном поведении, характерном для репозитория. Опишите ограничение совместимости, границу данных или небезопасный побочный эффект, который следует отмечать, а также объясните, почему это важно.
  • Укажите безопасный вариант или исключение. Предоставьте Codex достаточно контекста, чтобы отличить реальную проблему от ожидаемого поведения.
  • Делайте правила узкими по области применения и устойчивыми. Описывайте ожидаемые результаты, а не имена функций, которые могут измениться, и размещайте правила рядом с кодом, к которому они относятся.
  • Оставьте механические проверки для CI. Не включайте форматирование, линтинг и другие детерминированные проверки в правила проверки кода.

Откройте репрезентативный pull request и запросите проверку с помощью @codex review. Уточняйте правила на основе выявленных проблем и полученной обратной связи, а также сужайте или удаляйте правила, создающие лишний шум.

Правила проверки кода направляют Codex, но не заменяют тесты, защиту ветвей или обязательные подтверждения.

Чтобы однократно сосредоточить проверку на определённом аспекте, укажите его в комментарии к pull request:

@codex review for issues in the database migration

Security Review

Security Review — это дополнительная проверка для клиентов, которые хотят уделить особое внимание проблемам безопасности в запросах на включение изменений. Она глубже, чем Code Review, анализирует риски, связанные с безопасностью, включая различия в запросе на включение изменений, дополнительный контекст репозитория и настроенные модели угроз или рекомендации по безопасности.

Code Review также может выявлять проблемы безопасности в рамках общей проверки, поэтому некоторые результаты Code Review и Security Review могут иногда совпадать.

Настройка Security Review

Более подробные инструкции по настройке и доступные параметры см. в разделе Security Review.

  1. Подключите репозиторий GitHub к Codex.
  2. Перейдите в настройки Codex.
  3. Выберите репозиторий. В разделе Проверка уязвимостей безопасности включите Автоматическая проверка безопасности и выберите, чьи пул-реквесты проверять, с помощью параметра Проверка. Установите для параметра Условие запуска значение При каждом запуске проверки кода, чтобы запускать её вместе с проверкой кода.

Запрос Security Review

Чтобы вручную запросить Security Review, добавьте этот комментарий к запросу на включение изменений:

@codex security review

Во время выполнения проверки Codex оставляет реакцию, а затем публикует сведения о найденных проблемах безопасности непосредственно в запросе на включение изменений. Откройте связанную задачу Codex и выберите вкладку Отчёт о безопасности, чтобы просмотреть полный отчёт.

Работа с результатами проверки

После того как Codex опубликует результат проверки, вы можете попросить его исправить проблемы в том же pull request, оставив ещё один комментарий:

@codex fix the P1 issue

Codex запускает облачный чат прежней версии, используя пул-реквест как контекст, и может отправить исправление в ветку, если у него есть соответствующее разрешение.

Другие задачи для Codex

Если вы упомянете @codex в комментарии с любым текстом, кроме review, Codex запустит облачный чат прежней версии, используя ваш пул-реквест как контекст.

@codex fix the CI failures

Устранение неполадок при проверке кода

Если Codex не реагирует или не публикует результат проверки:

  • Убедитесь, что вы включили проверку кода для репозитория в настройках Codex.
  • Убедитесь, что пул-реквест относится к репозиторию GitHub, подключённому к Codex.
  • Используйте точную команду запуска @codex review в комментарии к пул-реквесту.
  • Для автоматических проверок проверьте параметр Автоматическая проверка в настройках репозитория и разделе Личные настройки в настройках Codex. Убедитесь, что событие пул-реквеста соответствует настроенным условиям запуска проверки.