GitHub Copilot · 16 шагов

Как настроить код-ревью GitHub Copilot: пошаговый туториал

Copilot может ревьюить каждый pull request на GitHub: запросите ревью вручную, примените предложенные правки в один клик, а затем сделайте ревью обязательным через rulesets. Шестнадцать иллюстрированных шагов по официальному скринкасту GitHub.

Коротко: настроить код-ревью Copilot за четыре действия

  • Откройте pull request и в блоке Reviewers → Copilot нажмите Request. Обзорный комментарий и встроенные предложения обычно приходят меньше чем за 30 секунд.
  • Применяйте правки кнопкой Commit suggestion — IDE не нужна. После коммита от Copilot Autofix сканирование кода перезапускается и само закрывает алерт.
  • Сделайте обязательным: ruleset с Require a pull request before merging и галочкой Automatically request Copilot code review ставит Copilot ревьюером каждого нового pull request.
  • Опишите свои стандарты в .github/copilot-instructions.md; AGENTS.md в корне репозитория и файлы .instructions.md для отдельных путей уточняют, что Copilot проверяет.

How to automate code reviews and testing with GitHub Copilot

Видео:GitHub4:36

Открыть

Configuring code review by GitHub Copilot

Документация:GitHub Docs

Открыть

Все скриншоты на этой странице взяты из официального скринкаста GitHub (демо-репозиторий); текст написан независимо, каждая настройка сверена с GitHub Docs.

Исходное видео — официальный YouTube-канал GitHub, ссылки ведут с точными таймкодами. Комментарии Copilot на скриншотах — демо-контент из этой записи.

Настройка код-ревью GitHub Copilot шаг за шагом

Читаем ревью Copilot в вашем pull request

  1. 1

    Откройте pull request и найдите Copilot в блоке Reviewers

    Copilot появляется в блоке Reviewers сразу после создания pull request — либо потому что вы добавили его сами, либо потому что его запросил ваш ruleset. Запись в таймлайне "review requested due to automatic review settings" подтверждает, что автоматизация сработала.

    GitHub pull request conversation page showing Copilot in the Reviewers sidebar and the timeline entry review requested due to automatic review settings on pull request #11
    Едва открывшись, pull request уже стоит в очереди на ревью Copilot.Смотреть на 0:10
  2. 2

    Начните с Pull Request Overview от Copilot

    Первый комментарий Copilot — сводка: что делает pull request, какие файлы он проверил и сколько комментариев оставил. Считайте его оглавлением всего ревью.

    Copilot pull request overview comment on GitHub describing the /publishers/search endpoint with a Reviewed Changes table listing two changed files and three generated comments
    Из обзорного комментария видно, что Copilot прочитал, еще до первого встроенного замечания.Смотреть на 0:20
  3. 3

    Читайте встроенные комментарии с готовыми правками

    Встроенные комментарии попадают точно в проблемные строки. Этот помечает exec() со строковым форматированием как риск инъекции кода и прикладывает блок с предложением правки, готовой к применению.

    Copilot code review comment on a Python diff flagging exec() with string formatting as a serious code injection vulnerability with a suggested change calling __validate_id(publisher_id) instead
    Сначала серьезное: к алерту об инъекции прилагается правка в один клик.Смотреть на 0:32
  4. 4

    Проверьте замечания по стилю и аннотациям типов

    Copilot соблюдает и конвенции вашего репозитория — здесь он цитирует ваши guidelines и предлагает точную аннотацию, которой не хватает. Кнопки «палец вверх/вниз» оценивают комментарий и улучшают будущие ревью.

    Copilot review comment asking for a missing Python return type annotation with the exact code def search_publishers() -> tuple[dict, int] shown on a GitHub pull request diff
    Замечания о конвенциях цитируют ваши же правила в ответ.Смотреть на 0:52

Исправляем то, что отметили Copilot и сканирование кода

  1. 5

    Сравните находки Copilot со сканированием кода

    Бот github-advanced-security помечает тот же вызов exec() как алерт CodeQL об инъекции кода. Ниже Copilot Autofix добавляет объяснение уязвимости и предлагаемое исправление.

    CodeQL code injection alert on server/routes/publishers.py in a GitHub pull request with a Copilot Autofix comment explaining how to remove the exec call and validate the id directly
    Два ревьюера на одну строку: CodeQL бьет тревогу, Copilot Autofix выписывает рецепт.Смотреть на 1:08
  2. 6

    Применяйте предложенные правки в один клик

    У каждого блока с предложением есть кнопка Commit suggestion — правка уходит отдельным коммитом в ветку pull request без открытия IDE. Несколько предложений можно объединить в один коммит.

    Suggested change block on a GitHub pull request diff replacing exec(__validate_id(%s) % publisher_id) with a direct __validate_id call above the Commit suggestion button and a Review required merge box
    Commit suggestion записывает правку прямо в ветку pull request.Смотреть на 1:23
  3. 7

    Смотрите, как сканирование кода перезапускается само

    После принятия предложения Autofix появляется баннер "Alert fix successfully applied", у pull request появляется второй коммит, и CodeQL заново сканирует ветку — если правка помогла, алерт закрывается сам.

    GitHub banner reading Alert fix successfully applied above pull request #11 which now wants to merge two commits into main from the add-functionality branch
    Исправлено — значит перепроверено: CodeQL валидирует ветку после коммита с фиксом.Смотреть на 1:46
  4. 8

    Разберите оставшиеся комментарии на вкладке Files

    На вкладке Files changed комментарии Copilot показываются рядом с diff'ами. Откройте здесь Apply suggestion, при необходимости поправьте сообщение коммита и подтвердите — без возврата в редактор.

    Apply suggestion dialog on the GitHub Files changed tab with the commit message Commit suggestion from @Copilot and a Commit changes button over a Python diff
    Комментарии ревью остаются прикрепленными к diff на вкладке Files — вместе с предложениями.Смотреть на 2:02

Делаем ревью обязательным: rulesets и инструкции

  1. 9

    Создайте ruleset, который сам запрашивает ревью Copilot

    В Settings → Rulesets → New ruleset укажите ветку по умолчанию, разверните Require a pull request before merging, поставьте Required approvals = 1 и отметьте Automatically request Copilot code review. Теперь каждый новый pull request получает Copilot ревьюером — никому не нужно помнить про кнопку Request.

    GitHub ruleset editor with Require a pull request before merging expanded showing Required approvals set to 1 and the Automatically request Copilot code review checkbox ticked
    Эта галочка ставит Copilot ревьюером каждого нового pull request на целевых ветках.Смотреть на 2:26
  2. 10

    Сделайте обязательными проверки статуса, охраняющие merge

    В том же ruleset включите Require status checks to pass и добавьте задания backend-tests и frontend-tests из GitHub Actions workflow вашего репозитория. Теперь merge ждет зеленого.

    GitHub ruleset Require status checks to pass section listing backend-tests and frontend-tests GitHub Actions workflows as required status checks for merging
    Два задания из Actions репозитория теперь охраняют каждый merge.Смотреть на 2:32
  3. 11

    Блокируйте merge при открытых алертах безопасности

    Здесь же в ruleset отметьте Require code scanning results и добавьте CodeQL с порогом — Security alerts: High or higher, Alerts: Errors. Находка высокой серьезности замораживает merge, пока ее не исправят.

    GitHub ruleset Require code scanning results setting with the CodeQL tool configured to block on Security alerts High or higher and Errors under Required tools and alert thresholds
    Порог CodeQL решает, какие алерты останавливают pull request.Смотреть на 2:42
  4. 12

    Опишите Copilot ваши стандарты письменно

    Добавьте в репозиторий .github/copilot-instructions.md и опишите стек и правила — Copilot Review читает этот файл перед каждым ревью и цитирует ваши guidelines в комментариях.

    GitHub file view of .github/copilot-instructions.md on the main branch opening the Tailspin Toys Crowd Funding Development Guidelines preview with a code standards section
    Файл лежит в .github, и каждое ревью Copilot его наследует.Смотреть на 2:53

Ревьюим pull request'ы, которые создает сам Copilot

  1. 13

    Относитесь к pull request'ам Copilot как к чужому коду

    Copilot и сам создает pull request'ы — и его код заслуживает той же проверки. Откройте его pull request, прочитайте написанное им описание и убедитесь, что перед merge требуется ревью человека.

    Draft pull request #13 authored by Copilot from the copilot/fix-12 branch with a Copilot requested your review banner and a backend changes description on GitHub
    Copilot открыл этот pull request из ветки copilot/fix-12 и сам запросил ревью человека.Смотреть на 3:12
  2. 14

    Запустите ветку в codespace до одобрения

    Откройте codespace на ветке Copilot и запустите приложение. Фильтр по звездам, который собрал Copilot, работает — значит, потрогайте функцию руками, а не только читайте diff.

    Tailspin Toys web app running in a GitHub codespace with the rating filter set to 4+ Stars and the featured games grid filtered down to highly rated titles
    URL codespace отдает ветку Copilot вживую — фильтр стоит на 4+ stars.Смотреть на 3:42
  3. 15

    Просите изменения упоминанием @copilot

    Заметили пробел? Оставьте комментарий в pull request с упоминанием @copilot и конкретикой. Copilot отправит дополнительные коммиты в тот же pull request — без жалоб на scope creep.

    GitHub comment box on a Copilot authored pull request with a typed message asking copilot to fill the star display based on the decimal part of a game rating
    Одного комментария @copilot достаточно, чтобы вернуть агента к работе.Смотреть на 3:57
  4. 16

    Одобряйте запуски workflow в pull request'ах Copilot

    Из соображений безопасности Actions в pull request'е от Copilot ждут одобрения человека. Нажмите Approve workflows to run и дождитесь зеленого у backend-tests, frontend-tests и CodeQL перед merge.

    GitHub checks panel on a Copilot pull request showing Run tests backend-tests and frontend-tests pull_request workflows queued as Required and waiting for approval
    «В очереди» значит: ждут именно вас. PR'ам Copilot нужен один человеческий клик, чтобы запустились Actions.Смотреть на 4:18

Код-ревью GitHub Copilot: частые вопросы

Похожие гайды