Разрешить пуши в защищённые ветки

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

Когда устанавливается требование PR в ветку все пользователи, включа
Иногда требуется снять эти ограничения для отдельного пользователя/пользователей. В основном - для роботов с задачами автоматизации.

Делается это несколько не очевидно:

  1. Для пользователя, от имени которого будут коммиты нужно создать персональный токен. С правами, достаточными для доступа к целевому репозиторию.
  2. Добавить токен как секрет репозитория/организации, наприме BOT_SECRET (имя переменной неважно, главное без префикса GITHUB_).
  3. В настройках задачи объявить переменную окружения GH_TOKEN со значением секрета
jobs:  
  publish:  
    env:  
      GH_TOKEN: ${{ secrets.BOT_SECRET }}  
  1. На шаге чекаута использовать этот же токен
steps:  
- uses: actions/checkout@v3  
  with:  
    token: ${{ secrets.BOT_SECRET }}
  1. В настройках защищённой ветки включить галочку ограничения пуша в ветку. Это нужно сделать даже если уже включено требование pull-реквестов. При установке этой галочки администраторы и перечисленные пользователи смогут пушить в ветку без пулл-реквестов даже если такое требование установлено галочкой требования пулл-реквестов.
    Разрешить пуши в защищённые ветки админам.png