Рубрики
Uncategorized

Защита от ветви в GitHub

Когда -либо находился в положении, где вы хотите, чтобы вы могли помешать своим товарищам по команде слияние неутвержденного кода … Tagged с DevOps, GitHub, программированием.

Вы когда -нибудь находились в положении, где вы хотели бы помешать своим товарищам по команде слияние неутвержденного кода из филиала разработки в основной филиал?

Вы хотите предотвратить слияние кода, который вы не уверены в его статусе сборки в основной филиале?

Недавно я оказался в этой ситуации и планирую поделиться концепцией, которая помогла мне — «защита филиала в 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»