github - включить блокировку ветки

Как администратор GitHub, я хотел бы заблокировать определенную ветку в GitHub для всех пользователей. Например, если я не хочу, чтобы кто-то нажимал на ветку Master / Production или Project, как я могу это сделать.

Есть ли способ напрямую заблокировать ветку на сервере GitHub вместо использования каких-либо хуков на стороне клиента? Существуют ли какие-либо сторонние инструменты / api / скрипты, которые могут помочь в этом?


person Saurabh Porwal    schedule 30.03.2015    source источник
comment
С сентября 2015 года вы можете защищать ветки прямо в Github: github.com/blog/   -  person Matt Grande    schedule 28.07.2016


Ответы (2)


@Saurabh, я сделал то же самое в соответствии с вашими требованиями на GitHub:

  • Перейдите в Настройки.
  • Перейдите в Филиалы
  • Нажмите на Добавить правило рядом с правилами защиты веток.
  • Установите флажок Требовать проверку запросов на вытягивание перед объединением.

Эти шаги применяют блокировку, например, к master, чтобы никто из соавторов не мог отправить код в эту ветвь. Код можно объединить только с помощью запросов на вытягивание.

Ссылка на документацию

Скриншоты:

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Примечание. Защищенные филиалы доступны для пользователей Pro, Team и Enterprise

Обратите внимание, только профессиональная функция

person CrazyPro007    schedule 11.04.2019

Самое простое решение - иметь эту ветку в собственном репо (для которого не объявляются соавторы).

В противном случае GitHub не предоставляет никакой встроенной функции «защиты веток», как указано в разделе «Как защитить« master »в github? "

Вы можете настроить веб-перехватчик, который на событие push может отклонить push, если ветка имеет заданное имя.

Примером может служить terite/pull-to-master, который защищает master:

if (json.ref != 'refs/heads/master')
  return cb([200, 'Skipping, not master']);

Это не ловушка на стороне клиента, но она требует, чтобы клиент прослушал полезную нагрузку JSON события push, чтобы отреагировать на нее.

person VonC    schedule 30.03.2015