Проверка кода
Проверка кода
Проверяйте изменения кода в клиентах ChatGPT и Codex
- Настольное приложение ChatGPT Проекты, файлы и длительные задачи на компьютере.
- Веб-версия ChatGPT Чаты, проекты и Work в браузере.
- Codex CLI Codex в вашем терминале.
- Расширение Codex для IDE 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
- Откройте Code Review на боковой панели.
- Подключите аккаунт сервиса исходного кода, когда появится запрос. Используйте аккаунт с доступом к репозиторию, который хотите проверить.
- Выберите pull request на боковой панели или введите ссылку на него в поле поиска.
- Откройте Сводку, чтобы просмотреть описание, активность, комментарии и проверки. Откройте Изменения, чтобы изучить изменённые файлы и комментарии рядом с 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 работает с пул-реквестами.
Выберите свой клиент, чтобы увидеть соответствующие инструкции.
В ChatGPT Work загрузите код, который нужно проверить, или предоставьте к нему доступ через установленный плагин системы управления исходным кодом. В запросе укажите pull request, ветку, коммит, файлы и критерии проверки.
Проверка в приложении
Откройте панель проверки, чтобы понять, что изменилось, оставить комментарии к конкретным строкам и решить, какие изменения добавить в индекс, отменить, закоммитить или отправить в удалённый репозиторий.
Чтобы попросить Codex проверить изменения, введите /review в поле ввода. Выберите
Проверить относительно базовой ветки или Проверить незакоммиченные изменения. Codex выводит
приоритизированные замечания, не изменяя ваше рабочее дерево.
Для работы панели проверки проект должен находиться в репозитории Git. Если ваш проект ещё не является репозиторием Git, приложение предложит создать его.
Введите /review, чтобы открыть предустановленные варианты проверки в CLI. Codex запустит отдельного рецензента,
который прочитает выбранные изменения и сообщит о приоритетных замечаниях с конкретными рекомендациями,
не изменяя рабочее дерево.
Введите /review в поле ввода расширения IDE. Выберите Проверить относительно базовой
ветки или Проверить незакоммиченные изменения. Codex сообщит о приоритетных замечаниях,
не изменяя рабочее дерево.
Команда /review отображается, только если открытый проект находится в репозитории
Git.
Выбор области проверки
Укажите в запросе pull request, ветку, коммит или файлы, которые нужно проверить. Чтобы проверить локальные файлы, недоступные через установленный плагин системы управления исходным кодом, загрузите их в чат.
Какие изменения отображаются
Панель проверки отражает состояние вашего репозитория Git, а не только изменения, внесённые Codex. Она включает изменения Codex, изменения, сделанные вами, и любые другие незакоммиченные изменения в репозитории.
По умолчанию панель проверки показывает изменения Не добавлено в индекс. Выберите Добавлено в индекс для индекса Git, Коммит для выбранного коммита, Ветка для разницы относительно вашей базовой ветки или Последний ход для последнего хода ассистента.
Проверка нескольких репозиториев
Если локальный проект включает несколько папок, связанных с разными репозиториями Git, панель проверки может показывать изменения из каждого репозитория. Откройте переключатель репозиториев в заголовке панели проверки, чтобы просмотреть другой репозиторий и увидеть добавленные или удалённые строки, не покидая текущую панель проверки.
Выберите Последний ход, чтобы увидеть последние изменения ассистента во всех подключённых репозиториях. Для этого представления переключатель репозиториев показывает Все репозитории. Другие области проверки, например Не добавлено в индекс, Добавлено в индекс и Ветка, применяются к выбранному вами репозиторию.
Выберите одну из следующих областей проверки /review:
- Проверить относительно базовой ветки — находит базу слияния и проверяет различия вашей ветки.
- Проверить незакоммиченные изменения — включает индексированные, неиндексированные и неотслеживаемые файлы.
- Проверить коммит — проверяет точный набор изменений выбранного коммита.
- Пользовательские инструкции по проверке — сосредоточивает проверку на заданных вами критериях.
Выберите одну из следующих областей проверки /review:
- Проверить относительно базовой ветки — сравнивает текущую ветку с выбранной вами веткой.
- Проверить незакоммиченные изменения — проверяет изменения в рабочем дереве.
Работа с результатами проверки
Замечания по результатам проверки отображаются в веб-чате. Запросите подтверждающие сведения, попросите выполнить более узкую дополнительную проверку или предложите ChatGPT подготовить исправленные файлы.
Результаты проверки кода
Замечания проверки отображаются как встроенные комментарии в панели проверки.
По умолчанию проверки выполняются в текущем чате. В разделе Настройки > Общие > Проверка кода выберите Отдельно, чтобы начать проверку в отдельном чате. См. настройки разработчика.
Проверка отображается в расшифровке как отдельная реплика. Задайте review_model в
config.toml, если хотите использовать для проверок модель, отличную от модели текущего
сеанса.
По умолчанию проверка выполняется в текущем чате. Задайте для chatgpt.reviewDelivery значение
detached, если хотите, чтобы /review запускала отдельный чат для проверки. См.
справочник по настройкам расширения IDE.
Если вы попросите ChatGPT подготовить исправленные файлы, по-прежнему будут применяться доступные чату инструменты и разрешения рабочей области.
Если вы попросите Codex применить найденные исправления, будут действовать ваши обычные настройки песочницы и подтверждений.
Навигация по панели проверки
- Нажатие на имя файла обычно открывает этот файл в выбранном редакторе. Вы можете выбрать редактор по умолчанию в настройках разработчика.
- Нажатие на фон имени файла разворачивает или сворачивает diff.
- Нажатие на отдельную строку с зажатой клавишей Command открывает эту строку в выбранном редакторе.
- Если изменение вас устраивает, вы можете добавить его в индекс или отменить ненужные изменения.
Встроенные комментарии для обратной связи
Встроенные комментарии позволяют прикреплять замечания непосредственно к конкретным строкам разницы. Часто это самый быстрый способ направить Codex к правильному исправлению.
Чтобы оставить встроенный комментарий:
- Откройте панель проверки.
- Наведите указатель на строку, которую хотите прокомментировать.
- Нажмите появившуюся кнопку +.
- Напишите свой комментарий и отправьте его.
- Закончив оставлять комментарии, отправьте сообщение в чат.
Поскольку комментарии привязаны к строкам, Codex может ответить точнее, чем при общей инструкции.
Codex воспринимает встроенные комментарии как указания по проверке. Оставив комментарии, отправьте дополнительное сообщение, явно описывающее ваше намерение, например: «Учти встроенные комментарии и внеси только минимально необходимые изменения».
Добавление файлов в индекс и отмена изменений
Панель проверки содержит действия Git, позволяющие сформировать разницу перед созданием коммита.
Добавлять в индекс, убирать из него или отменять изменения можно на следующих уровнях:
- Вся разница: используйте кнопки действий в заголовке панели проверки, например Добавить всё в индекс или Отменить всё.
- Отдельный файл: добавьте в индекс, уберите из него или отмените изменения отдельного файла.
- Отдельный блок: добавьте в индекс, уберите из него или отмените один блок изменений.
Используйте добавление в индекс, когда хотите принять часть работы, и отмену, когда хотите отбросить её.
Состояния добавленных и не добавленных в индекс изменений
Git может одновременно хранить добавленные и не добавленные в индекс изменения одного файла. В таком случае панель может показывать один и тот же файл в обоих представлениях. Это нормальное поведение Git.