Как защитить "хозяина" в github?

У меня есть несколько участников в моем проекте github. Я хочу разрешить только одному из них "нажимать" на мастер. И этот парень не я (владелец репозитория). Можно ли это сделать?

Ответ 1

Затем, когда этот вопрос был отправлен, GitHub не разрешал вам указывать права доступа на уровне ветки. Вы можете делать это только на уровне репозитория. Так что вы запрашиваете, было невозможно.

Если вы хотите обойти это ограничение, я лично вижу два варианта:

  • вы могли бы использовать какие-то фиксации фиксации и т.д., чтобы хотя бы сообщить кому-то, что произошло что-то не так.
  • Если вам действительно нужен этот жесткий контроль, вы можете использовать два репозитория, один из которых содержит только вашу "ведущую" ветвь. Тогда вам нужно будет убедиться, что только ваш "парень" получает доступ на запись в главный репозиторий

Я думаю, что это проще решить с какой-то организацией. В моей команде мы никогда ничего не нажимаем на мастер, но вместо этого всегда создаем запросы на тяну. Это гарантирует, что по крайней мере кто-то посмотрит, прежде чем код будет объединен, и вы также можете определить политику, которую только ваш "парень" может объединить запросы на тягу.

Обновление

GitHub теперь объявила, что они будут внедрять новую функцию, называемую защищенными ветвями. Эта функция присутствует в других дистрибутивах git, таких как Atlassian Stash в течение многих лет. Это позволит вам защитить некоторые ветки от толчков. Однако он по-прежнему не позволяет полностью защищать отдельные ветки на основе ACL. Таким образом, вы можете проверить эту функцию на случай, если вы не хотите полагаться на организационное решение, как показано выше.

Ответ 2

Примечание: Защищенные ветки и требуемые проверки статуса (3 сентября 2015 г.) позволят вам защитить ветку

  • против принудительного нажатия
  • против удаления
  • против объединенных изменений до тех пор, пока не пройдут проверки статуса

https://cloud.githubusercontent.com/assets/25792/9596474/27db3ce6-502a -11e5-9b19-5b47a8addc65.png


С марта 2016 года, прокомментировал Sander ниже, у вас есть Пользовательские и командные ограничения

Иногда слияния с защищенной ветвью лучше всего оставлять менеджеру выпуска или команде людей, ответственных за стабильность этой конкретной ветки. Организации теперь могут указать, какие члены и команды могут нажать на защищенную ветку.

https://cloud.githubusercontent.com/assets/4719/14140705/ed98abac-f67a -11e5-951e-b48c842fb77f.png

Ответ 3

Это именно то, для чего была разработана forking. У вас будет основной защищенный репозиторий, и вы разрешаете разрешения на чтение для этого хранилища для всех участников. Эти вкладчики будут разветвлять репо и будут подталкивать свои изменения к своим личным копиям основного репо. Когда они будут готовы ввести код в основной репозиторий, они отправят запрос на перенос в основное репо. В этом случае владельцы основного проекта могут выполнить запрос на вытягивание.