Проверка кода

Проверка кода

Проверяйте изменения кода в клиентах ChatGPT и Codex

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

Ревью pull request

Плагин Code Review показывает описание pull request, изменённые файлы, комментарии и проверки. Используйте его, чтобы исследовать потенциальные проблемы перед одобрением.

Ревью кода в GitHub общедоступно. Поддержка merge request GitLab в Code Review доступна в предварительной версии. Чтобы запускать облачные ревью из GitLab с помощью @codex review или автоматических ревью merge request, см. Ревью merge request GitLab с помощью Codex.

Сведения о ревью, запускаемых из репозитория, см. в руководстве по интеграции с GitHub и разделе Настройка среды Codex Cloud (Legacy).

Настольное приложение включает Code Review. Вы можете закрепить его на боковой панели приложения из списка установленных плагинов.

Просмотр pull request

  1. Откройте Code Review на боковой панели.
  2. Подключите аккаунт сервиса исходного кода, когда появится запрос. Используйте аккаунт с доступом к репозиторию, который хотите проверить.
  3. Выберите pull request на боковой панели или введите ссылку на него в поле поиска.
  4. Откройте Сводку, чтобы просмотреть описание, активность, комментарии и проверки. Откройте Изменения, чтобы изучить изменённые файлы и комментарии рядом с diff.

Поиск ревью, требующих внимания

Используйте личную папку входящих, чтобы находить pull request GitHub в разных репозиториях. Выберите Назначено мне для ревью, запрошенных у вас, Назначено моей команде для запросов к команде или Создано мной, чтобы вернуться к собственным изменениям. Проверьте статус ревью, затем откройте pull request, чтобы изучить замечания и проверки.

Чтобы вернуться к проверке позже, нажмите значок закрепления на её панели инструментов. Пул-реквест появится в разделе Закреплённые на боковой панели.

Изучите изменённые файлы и связанные пул-реквесты

В разделе Изменения выберите Отметить как просмотренный для файла после его проверки. Нажмите этот элемент ещё раз, чтобы снять отметку. Отметки о просмотре относятся к отображаемой версии.

Если изменения распределены между зависимыми пул-реквестами, используйте Стек в разделе Сводка, чтобы открыть связанный пул-реквест и изучить его diff, комментарии и проверки. Этот раздел появляется, когда Code Review обнаруживает стек открытых пул-реквестов.

Ознакомьтесь с результатами автоматической облачной проверки

Если подключён коннектор ChatGPT Codex, предоставлены необходимые разрешения для репозитория и включены автоматические проверки, Codex может проверить пул-реквест GitHub ещё до того, как вы его откроете. Комментарии появляются в GitHub и Code Review.

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

Сопоставьте замечания по результатам проверки с diff. Автоматические облачные проверки выполняются отдельно от проверок, которые вы запускаете в чате пул-реквеста.

Задавайте вопросы об изменении

В чате пул-реквеста опишите ожидаемое поведение и попросите Codex объяснить или исследовать изменение.

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

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

Например, пул-реквест добавляет фильтры Открытые и Закрытые на доску задач. Вы ожидаете, что Все останется фильтром по умолчанию, а при отсутствии подходящих задач будет отображаться пустое состояние:

Walk me through this pull request. Focus on the default filter and what
happens when there are no matching issues. All should remain the default.

Попросите привести подтверждения:

Show me the code path and tests for the no-matches case. Explain what is
covered and what still needs verification.

Проверьте, соответствуют ли упомянутые diff и тесты ожидаемому поведению.

Выберите замечание, чтобы просмотреть его объяснение и соответствующие строки в разделе Изменения. Сопоставьте его с последним diff, ожидаемым поведением и тестами, прежде чем решить, нужно ли исправление. Чтобы остановить выполняющуюся проверку, используйте её чат.

Настройте проверку

Нажмите значок шестерёнки Инструкции по проверке рядом с Проверить с помощью Codex. Вы также можете изменить эти инструкции в разделе Настройки > Проверка кода.

Задайте для Codex критерии и формат отчёта, которые будут применяться ко всем вашим проверкам, например:

Start with a short summary. Prioritize behavior changes, data loss, and
missing edge-case tests. For each finding, explain the triggering input,
expected behavior, and actual behavior. Use our team's concise review style.

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

При желании выберите Комикс, Визуализация или PDF, чтобы добавить предложенную инструкцию для объяснения изменения в этом формате. При необходимости отредактируйте текст, затем выберите Сохранить или Запустить проверку.

Делитесь замечаниями и работайте с обратной связью

Проверка пул-реквеста в чате не публикует комментарии, не одобряет его и не выполняет слияние. Вы сами выбираете, какими замечаниями поделиться.

Убедившись, что проблема действительно существует, попросите Codex помочь подготовить комментарий по результатам проверки:

Using the team review guidelines we discussed, draft a comment describing
the no-matches behavior we verified, what should happen instead, and the test
that would cover it. Keep the comment as a draft.

Перед публикацией проверьте ссылки на файлы и строки в черновике. Храните черновики в чате, пока не будете готовы: публикация в разделе Сводка или Изменения отправляет комментарий на исходную платформу сразу, не дожидаясь нажатия Отправить результаты проверки.

Нажмите Отправить результаты проверки, чтобы выбрать Оставить комментарий, Одобрить или Запросить изменения и отправить результаты проверки на исходную платформу. Проверьте выбранное решение и комментарий к проверке перед отправкой.

Если вы автор, вернитесь к своему пул-реквесту и попросите Codex учесть конкретные замечания. Изучите полученные изменения и запустите соответствующие тесты. Перед одобрением или слиянием проверьте последнюю версию, результаты проверок и неустранённые замечания.

Редактирование описаний пул-реквестов с прикреплёнными изображениями не поддерживается в Code Review. Чтобы изменить такое описание, откройте пул-реквест в GitHub.

Продолжите работу в чате

Когда в разделе Сводка отображается пункт Обсуждения, выберите ссылку на чат, чтобы вернуться к этому разговору. Здесь находятся ваши чаты, связанные с пул-реквестом.

В Codex выберите Исправить в разделе Проверки открытого пул-реквеста, чтобы прикрепить к чату данные о неудачных проверках. Это подготовит сообщение, но не отправит его. Проверьте или добавьте свой запрос, затем отправьте его, чтобы попросить Codex разобраться в проблеме. Изучите полученные изменения и повторно запустите соответствующие тесты, прежде чем отправлять исправление в удалённый репозиторий.

Доступные диагностические данные зависят от сервиса, выполняющего проверки. Для сторонних систем CI Codex может использовать статус и вывод, переданные в GitHub.

Проверка локальных изменений

Встроенная команда Codex /review проверяет изменения в вашей рабочей копии Git, а плагин Code Review работает с пул-реквестами. Выберите свой клиент, чтобы увидеть соответствующие инструкции.

Проверка в приложении

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

Чтобы попросить Codex проверить изменения, введите /review в поле ввода. Выберите Проверить относительно базовой ветки или Проверить незакоммиченные изменения. Codex выводит приоритизированные замечания, не изменяя ваше рабочее дерево.

Для работы панели проверки проект должен находиться в репозитории Git. Если ваш проект ещё не является репозиторием Git, приложение предложит создать его.

Выбор области проверки

Какие изменения отображаются

Панель проверки отражает состояние вашего репозитория Git, а не только изменения, внесённые Codex. Она включает изменения Codex, изменения, сделанные вами, и любые другие незакоммиченные изменения в репозитории.

По умолчанию панель проверки показывает изменения Не добавлено в индекс. Выберите Добавлено в индекс для индекса Git, Коммит для выбранного коммита, Ветка для разницы относительно вашей базовой ветки или Последний ход для последнего хода ассистента.

Проверка нескольких репозиториев

Если локальный проект включает несколько папок, связанных с разными репозиториями Git, панель проверки может показывать изменения из каждого репозитория. Откройте переключатель репозиториев в заголовке панели проверки, чтобы просмотреть другой репозиторий и увидеть добавленные или удалённые строки, не покидая текущую панель проверки.

Выберите Последний ход, чтобы увидеть последние изменения ассистента во всех подключённых репозиториях. Для этого представления переключатель репозиториев показывает Все репозитории. Другие области проверки, например Не добавлено в индекс, Добавлено в индекс и Ветка, применяются к выбранному вами репозиторию.

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

Результаты проверки кода

Замечания проверки отображаются как встроенные комментарии в панели проверки.

По умолчанию проверки выполняются в текущем чате. В разделе Настройки > Общие > Проверка кода выберите Отдельно, чтобы начать проверку в отдельном чате. См. настройки разработчика.

Комментарии к строкам кода, отображаемые на панели проверки

Если вы попросите Codex применить найденные исправления, будут действовать ваши обычные настройки песочницы и подтверждений.

Навигация по панели проверки

Встроенные комментарии для обратной связи

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

Чтобы оставить встроенный комментарий:

  1. Откройте панель проверки.
  2. Наведите указатель на строку, которую хотите прокомментировать.
  3. Нажмите появившуюся кнопку +.
  4. Напишите свой комментарий и отправьте его.
  5. Закончив оставлять комментарии, отправьте сообщение в чат.

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

Codex воспринимает встроенные комментарии как указания по проверке. Оставив комментарии, отправьте дополнительное сообщение, явно описывающее ваше намерение, например: «Учти встроенные комментарии и внеси только минимально необходимые изменения».

Добавление файлов в индекс и отмена изменений

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

Добавлять в индекс, убирать из него или отменять изменения можно на следующих уровнях:

  • Вся разница: используйте кнопки действий в заголовке панели проверки, например Добавить всё в индекс или Отменить всё.
  • Отдельный файл: добавьте в индекс, уберите из него или отмените изменения отдельного файла.
  • Отдельный блок: добавьте в индекс, уберите из него или отмените один блок изменений.

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

Состояния добавленных и не добавленных в индекс изменений

Git может одновременно хранить добавленные и не добавленные в индекс изменения одного файла. В таком случае панель может показывать один и тот же файл в обоих представлениях. Это нормальное поведение Git.