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