Github добавил настройки доступа к веткам (protected branches)

image

Гитхаб — великолепный агрегатор репозиториев и инструмент для коллективной работы. К сожалению, многие возможности конфигурирования на стороне сервера (вроде коммит хуков) остаются недоступными. Но ситуация постепенно меняется в лучшую сторону.

Случилось то, чего многие ждали довольно долго. А именно: недавно была анонсирована фича, под названием protected branches, которая позволяет настроить правила работы с ветками в рамках репозитория. Да, теперь можно запретить force push в master!

Под катом скриншоты и выдержки из блога разработчиков.

Функция защищенных веток (protected branches) дает возможность администраторам репозиториев запретить операцию force push в заданные ветки.

Если опция активна для ваших репозиториев, мы можете настроить ее на вкладке в настройках репозитория:

скриншот настроек ветки
661fc0561aae4fb9885108384ef9e369.png

В дополнение к возможности блокировки force push, можно выставить список обязательных проверок (status checks). Эта функциональность работает благодаря Status API, соответственно поставить на проверку можно любое интегрируемое действие, такое как запуск сборщика, прогон тестов, прогон статического анализатора и т.п.

Если хотя бы одна из обязательных проверок не проходит, кнопка «Merge» не будет активна:

52723046c3a743308037d2bcca1ae70d.png

Для того чтобы статусам можно было доверять, ветка должна быть актуальной. Это позволяет гарантировать, что после слияния ничего не сломается. Новая кнопка «Update branch» позволяет одним нажатием влить последнее состояние базовой ветки (например master) в текущую, а затем выполнить проверки:

5447ca15e53b4260ae09f26a5d8d9110.png

Больше информации по теме можно получить на странице помощи.

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

До появления защищенных веток, отдельным разработчикам рекомендовали выставлять хуки на операцию push, чтобы локально предотвратить святотатство. Понятное дело, что это все равно не давало 100% гарантий.

В других иных коллективах бывает принята модель, при которой каждый сотрудник должен сделать форк репозитория и выставлять пул реквесты из него. Соответственно, прямой доступ к репозиторию дается только избранным. Однако это не всегда оказывается удобным.

Будем надеяться, что гитхаб будет радовать нас и впредь.

P.S.: Опция была анонсирована 3 сентября. На данный момент у меня в публичном репозитории она работает (кстати, мы выпустили очередной релиз :).

© Habrahabr.ru