Вы когда -нибудь находились в положении, где вы хотели бы помешать своим товарищам по команде слияние неутвержденного кода из филиала разработки в основной филиал?
Вы хотите предотвратить слияние кода, который вы не уверены в его статусе сборки в основной филиале?
Недавно я оказался в этой ситуации и планирую поделиться концепцией, которая помогла мне — «защита филиала в GitHub».
Что такое защита от филиала?
Защита филиала — это акт установки правил, чтобы предотвратить определенные действия в вашей филиале (ES) без вашего одобрения.
Эта статья посвящена, предотвращая объединение филиалов (развитие и т. Д.) Таким образом, до того, как может произойти какое -либо слияние, запрос на привлечение потребует выбранного рецензента для просмотра запроса, а затем объединить коммит.
Предварительные условия
Ожидается, что у вас есть предварительные знания:
- GitHub
- Инструменты CI/CD (в этой статье Travis CI)
Проверьте эти руководства для Введение в GitHub и Создание простого файла .travis.yml
Настройка правил защиты филиала
Мы делаем следующие шаги:
- Нажмите на
Настройки
опция в вашем репозитории, а затемВетви
(Расположен в левой части страницы) - Нажмите на
Добавить правило
Чтобы создать правила (ы) для выбора
- Далее, под
Имя и название филиала
введите имя желаемой ветви защищать Для этой статьи мы выбираем следующие правила:
- «Требуется обзоры запросов на вывод перед слиянием»: мы ограничиваем количество необходимых обзоров 1 (вы можете увеличить необходимые обзоры).
- Затем мы выбираем
Включите администраторы
Чтобы гарантировать, что в качестве владельцев филиала наши запросы на привлечение должны быть рассмотрены до того, как сможет произойти слияние (я имею в виду, никто не выше ошибок 🥴)
Наконец, мы нажимаем кнопку «Сохранить изменения», чтобы сохранить наши настройки.
Настройка нашего скрипта Travis CI
Согласно документации Travis CI, «Travis CI поддерживает ваш процесс разработки путем автоматического создания и тестирования изменений кода, обеспечивая немедленную обратную связь об успехе изменения. Travis CI также может автоматизировать другие части вашего процесса разработки, управляя развертываниями и уведомлениями ».
Это инструмент непрерывной интеграции/непрерывного развертывания, который автоматически запускает тесты (ы), которые вы указываете в файле .travis.yml, и отправляет вам отчет, в котором говорится о состоянии сборки вашего коммита, таким образом, разбитый код не может быть натолкнут к производству.
Простой скрипт Трэвиса может быть написан следующим образом:
language: python python: - "3.6" # current default Python on Travis CI # command to install dependencies install: - pip install -r requirements.txt # command to run tests script: - python -m unittest test # safelist branches: only: - main - dev
Из приведенного выше сценария и в других сценариях Трэвиса команды используются для выполнения различных операций. Те, которые используются здесь:
язык: Это используется для указания языка программирования, на котором написан наш код (в данном случае Python).
Python: Мы можем указать языковую версию, чтобы запустить наши тесты.
Установка: это используется для указания команды специфики для языка для установки зависимостей, от которых зависит наш код.
Скрипт: это используется для указания команды специфики для языка для запуска наших заранее определенных тестов.
Филиалы: вариант «только» показывает ветви, которые мы хотим создать, используя SafeList (в данном случае «Main» и «Dev»)
Демонстрационное время
Теперь, чтобы проверить, работают ли все наши правила защиты филиалов и CD/CD, мы доставляем некоторый код в нашу вторичную филиал и открываем запрос на притяжение. Запрос на вытягивание потерпит неудачу. Вуаля, мы не можем объединить нашу просьбу о притяжении в главную ветвь (это смелость для меня).
Нам говорят, что наш запрос на притяжение необходимо пересмотреть, поэтому мы добавляем рецензента, нажав на значок рядом с «рецензентами».
Кроме того, наши сборки прошли (ура!), Поэтому наш рецензент будет более уверен в объединении нашего запроса на привлечение.
Более подробную информацию можно найти в GitHub Docs Анкет
Не стесняйтесь проверить мой Репозиторий На которой была построена эта статья
Я надеюсь, что с этого момента мы лучше защищаем наши филиалы.
Не стесняйтесь обращаться ко мне через LinkedIn
Селах !!
Оригинал: «https://dev.to/ladiesindevops/branch-protection-in-github-5fn9»