Start Debugging

Copilot Code Review теперь может одобрять pull request'ы

Changelog GitHub от 2026-09-01 разрешает Copilot отправлять одобряющее ревью, которое удовлетворяет правилу обязательных одобрений в репозитории. По умолчанию выключено, ограничивается glob-масками файлов и сбрасывается при новых коммитах. Разбираем, что реально меняется в защите веток.

2026-09-01 GitHub выпустил изменение, которое переводит Copilot Code Review из роли комментатора в роль инстанции, принимающей решение: Copilot code review can now approve pull requests. Функция доступна в публичной предварительной версии для Copilot Pro, Pro+, Max, Business и Enterprise.

Здесь появились две разные вещи, и именно их смешение приводит команды к неприятным сюрпризам.

Оценка это не одобрение

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

Вторая вещь это настоящее одобряющее ревью, которое отправляет copilot-pull-request-reviewer[bot] и которое засчитывается в правило обязательных одобрений репозитория ровно так же, как одобрение коллеги. Оно выключено по умолчанию, и включить его должен администратор на уровне предприятия, организации или репозитория.

Если в вашем репозитории в ruleset ветки стоит “Require 1 approval” и вы это включаете, вы не добавили ревьюера. Вы сделали человека необязательным.

Ограничьте область glob-масками до включения

Настройка уровня репозитория принимает список glob-масок файлов, по одной на строку, и засчитывает одобрение Copilot только “в pull request’ах, где каждый изменённый файл соответствует одной из масок”. Ключевое слово здесь каждый. Pull request, который затрагивает docs/setup.md и src/Payments/Charge.cs, не получит засчитываемого одобрения, если ваш список масок покрывает только документацию. Это и есть правильная стартовая позиция: начинайте с путей, где ошибочное одобрение обходится дёшево.

Одобрения также сбрасываются при пуше новых коммитов, как и одобрение человека в репозитории, настроенном на сброс устаревших ревью. То есть сценарий отказа это не старая подпись, пережившая force push.

Автоматическое ревью это правило ruleset, и его можно задать скриптом

Переключатель одобрения живёт в настройках, но само наличие ревью от Copilot задаётся правилом ruleset ветки (copilot_code_review), поэтому его можно создать через API, а не кликами:

gh api repos/OWNER/REPO/rulesets --method POST --input - <<'JSON'
{
  "name": "copilot-review-main",
  "target": "branch",
  "enforcement": "active",
  "conditions": { "ref_name": { "include": ["refs/heads/main"], "exclude": [] } },
  "rules": [
    {
      "type": "copilot_code_review",
      "parameters": {
        "review_on_push": true,
        "review_draft_pull_requests": false
      }
    }
  ]
}
JSON

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

gh api "repos/OWNER/REPO/pulls/123/reviews" \
  --jq '.[] | select(.user.login == "copilot-pull-request-reviewer[bot]") | {state, submitted_at}'

Прогоните это по слитым pull request’ам, и вы получите число, которое действительно важно: сколько слияний прошли порог одобрения без участия человека. Включение review_on_push также многократно увеличивает расход premium requests, что складывается с тем, что уровень усилий ревью по умолчанию меняется с Lite на Balanced 2026-09-28.

Включайте сначала на сгенерированных файлах и документации. Расширяйте, когда получите цифры аудита, но не раньше.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Назад