1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/panda26-gitlab

Клонировать/Скачать
protected_branches.md 9.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.05.2025 02:09 64486eb

Защищённые ветки

Разрешения в GitLab основываются на идее наличия разрешений на чтение или запись в репозиторий и ветки. Чтобы предотвратить внесение изменений в историю или загрузку кода без проверки, мы создали защищённые ветки.

Обзор

По умолчанию защищённая ветка выполняет четыре простых действия:

  • она запрещает создание ветки всем, кроме пользователей с разрешением Master, если ветка ещё не создана
  • она запрещает загрузку кода всем, кроме пользователей с разрешением Master
  • она запрещает любому пользователю форсирование загрузки в ветку
  • она запрещает любому пользователю удаление ветки

См. раздел История изменений для просмотра изменений со временем.

Дополнительная функциональность для GitLab Enterprise Edition:

  • Ограничение доступа к загрузке и слиянию [определённых пользователей][ee-restrict]

Настройка защищённых веток

Чтобы защитить ветку, вам необходимо иметь разрешение уровня Master или выше. Обратите внимание, что ветка master защищена по умолчанию.

  1. Перейдите в раздел Настройки ➔ Репозиторий вашего проекта.

  2. Прокрутите страницу до раздела Защищённые ветки.

  3. Используйте выпадающее меню Ветка для выбора ветки, которую вы хотите защитить, и нажмите Защитить. На скриншоте ниже выбрана ветка develop. Список защищенных веток

  4. После завершения настройки защищенная ветка появится в списке "Защищенные ветки".

    Список защищенных веток

Использование настроек "Разрешенные к слиянию" и "Разрешенные к загрузке"

[Введено][ce-5081] в GitLab 8.11.

С версии GitLab 8.11 мы добавили еще один уровень защиты веток, что позволяет более детально управлять защищенными ветками. Опция "Разрешенные разработчики к загрузке" заменена на настройку "Разрешенные к загрузке", которая может быть установлена для разрешения/запрета загрузки для пользователей с разрешением Master и/или разработчиков.

Используя настройки "Разрешенные к загрузке" и "Разрешенные к слиянию", вы можете контролировать действия, которые могут выполнять различные роли с защищенной веткой. Например, вы можете установить "Разрешенные к загрузке" на "Никто", а "Разрешенные к слиянию" на "Разработчики + Masters", чтобы требовать от всех отправки запроса на слияние для изменений, вносимых в защищенную ветку. Это совместимо с рабочими процессами, такими как GitLab workflow. Однако, есть рабочие процессы, где это не требуется, и защита от принудительных пушей и удаления веток полезна. Для этих рабочих процессов вы можете разрешить всем пользователям с правом записи пушить в защищенную ветку, установив "Разрешено пушить" на "Разработчики + Мастера".Вы можете установить опции "Разрешено пушить" и "Разрешено мерджить" при создании защищённой ветки или позже, выбрав нужную опцию из выпадающего списка в разделе "Уже защищённые".

Разработчики могут пушить

Если вы не выберете ни одну из этих опций при создании защищённой ветки, они будут установлены по умолчанию на "Мастер".

Защищённые ветки с маской

[Введено][ce-4665] в GitLab 8.10.

Вы можете указать защищённую ветку с маской, которая будет защищать все ветки, соответствующие маске. Например:

| Защищённая ветка с маской | Соответствующие ветки | |---------------------------+--------------------------------------------------------| | *-stable | production-stable, staging-stable | | production/* | production/app-server, production/load-balancer | | *gitlab* | gitlab, gitlab/staging, master/gitlab/production |

Настройки защищённой ветки (например, "Разработчики могут пушить") применяются ко всем соответствующим веткам.

Две разные маски могут потенциально соответствовать одной и той же ветке. Например, *-stable и production-* будут соответствовать ветке production-stable. В этом случае, если любая из этих защищённых веток имеет настройку, такую как "Разрешено пушить", то production-stable также унаследует эту настройку.

Если вы нажмёте на имя защищённой ветки, вам будет предложен список всех соответствующих веток:Соответствующие защищённые ветки

Удаление защищённой ветки

[Введено][ce-21393] в GitLab 9.3.

Иногда может потребоваться удалить или очистить защищённые ветки.

Пользователи с [правами Мастера][perm] и выше могут вручную удалять защищённые ветки через веб-интерфейс GitLab:

  1. Посетите Репозиторий > Ветки
  2. Нажмите на значок удаления рядом с веткой, которую вы хотите удалить
  3. Чтобы предотвратить случайное удаление, требуется дополнительное подтверждение Удаление защищённых веток

Удаление защищённой ветки разрешено только через веб-интерфейс, а не через Git. Это означает, что вы не можете случайно удалить защищённую ветку с помощью командной строки или приложения-клиента Git.

История изменений

9.2

  • Разрешено удаление защищённых веток через веб-интерфейс [gitlab-org/gitlab-ce#21393][ce-21393]

8.11

  • Разрешено создание защищённых веток, которые нельзя отправлять [gitlab-org/gitlab-ce!5081][ce-5081]

8.10

  • Разрешено разрешение разработчикам на слияние в защищённую ветку без права отправки [gitlab-org/gitlab-ce!4892][ce-4892]
  • Разрешено указание защищённых веток с помощью шаблонов [gitlab-org/gitlab-ce!4665][ce-4665]

---[ce-4665]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4665 "Разрешено использование шаблонов для указания защищенных веток" [ce-4892]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4892 "Разрешено разрешение разработчикам на слияние в защищенную ветку без права отправки" [ce-5081]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5081 "Разрешено создание защищенных веток, которые нельзя отправлять" [ce-21393]: https://gitlab.com/gitlab-org/gitlab-ce/issues/21393 [ee-restrict]: http://docs.gitlab.com/ee/user/project/protected_branches.html#ограничение-доступа-к-отправке-и-слиянию-для-определенных-пользователей [perm]: ../permissions.md

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/panda26-gitlab.git
git@api.gitlife.ru:oschina-mirror/panda26-gitlab.git
oschina-mirror
panda26-gitlab
panda26-gitlab
master