У меня есть несколько участников в моем проекте github. Я хочу, чтобы только один из них «нажал» на мастер. И этот парень не я (владелец репозитория). Возможно ли это сделать?
Как защитить мастер в github?
Ответы (4)
Тогда, когда этот вопрос был опубликован, GitHub не позволял вам указывать права доступа на уровне ветки. Вы можете сделать это только на уровне репозитория. Так что то, что вы просите, было невозможно.
Если вы хотите обойти это ограничение, я лично вижу два варианта:
- вы могли бы использовать какие-то перехватчики фиксации и т. д., чтобы хотя бы сообщить кому-то, что что-то не так
- Если вам действительно нужен этот жесткий контроль, вы можете использовать два репозитория, один из которых содержит только вашу «главную» ветку. Затем вам нужно будет убедиться, что только ваш «парень» получает доступ на запись к главному репозиторию.
Я думаю, что легче решить это с какой-то организацией. В моей команде мы никогда ничего не отправляем напрямую в мастер, а вместо этого всегда создаем пулл-реквесты. Это гарантирует, что по крайней мере кто-то посмотрит, прежде чем код будет объединен, и вы также можете определить политику, согласно которой только ваш «парень» может объединять запросы на вытягивание.
Обновить
GitHub объявил о выпуске новой функция, называемая защищенными ветвями. Эта функция уже много лет присутствует в других дистрибутивах git, таких как Atlassian Stash. Это позволит вам защитить некоторые ветки от толчков. Однако он по-прежнему не обеспечивает полной защиты отдельных ветвей на основе ACL. Таким образом, вы можете проверить эту функцию, если вы не хотите полагаться на организационное решение, как описано выше.
Примечание: защищенные ветки и обязательные проверки статуса (сентябрь 3, 2015) позволит защитить ветку
- против принудительного толкания
- против удаления
- против объединенных изменений, пока не пройдут необходимые проверки статуса
С марта 2016 года, как прокомментировал < href="https://stackoverflow.com/users/1233062/sander">Sander ниже, у вас есть Ограничения пользователей и групп
Иногда слияние с защищенной веткой лучше поручить менеджеру релиза или группе людей, ответственных за стабильность этой конкретной ветки. Теперь организации могут указать, какие участники и команды могут отправлять сообщения в защищенную ветку.
Это именно то, для чего разветвление было разработано. У вас будет защищен основной репозиторий, и вы предоставите права на чтение этого репозитория всем участникам. Эти участники разветвят репо и внесут свои изменения в свои личные копии основного репо. Когда они будут готовы ввести код в основной репозиторий, они отправят запрос на включение в основной репозиторий. В этом случае владельцы основного проекта могли выполнить запрос на извлечение.