Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.
В настоящее время GitHub AE находится в ограниченном выпуске.

Управление правилом защиты ветвей

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

Кто может использовать эту функцию

People with admin permissions to a repository can manage branch protection rules.

Защищенные ветви доступны во внутренних и частных репозиториях при использовании GitHub AE, в общедоступных репозиториях при использовании GitHub Free и GitHub Free для организаций, а также в общедоступных и частных репозиториях при использовании GitHub Pro, GitHub Team, GitHub Enterprise Cloud и GitHub Enterprise Server.

Сведения о правилах защиты ветвей

Для определенной ветви, всех ветвей или любой ветви, которая соответствует шаблону имени, заданному с помощью синтаксиса fnmatch, можно создать правило защиты ветви в репозитории. Например, чтобы защитить все ветви, содержащие слово release, можно создать правило ветви для *release*.

Вы можете создать правило для всех текущих и будущих ветвей в репозитории, используя синтаксис с подстановочным знаком *. Because GitHub uses the File::FNM_PATHNAME flag for the File.fnmatch syntax, the * wildcard does not match directory separators (/). For example, qa/* will match all branches beginning with qa/ and containing a single slash, but will not match qa/foo/bar. You can include any number of slashes after qa with qa/**/*, which would match, for example, qa/foo/bar/foobar/hello-world. You can also extend the qa string with qa**/**/* to make the rule more inclusive.

For more information about syntax options, see the fnmatch documentation.

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

Правила защиты ветвей, в которых используется специальный символ, например *, ? или ], применяются в порядке их создания, поэтому более старые правила с этими символами имеют более высокий приоритет.

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

Дополнительные сведения о каждом из доступных параметров защиты ветви см. в разделе Сведения о защищенных ветвях.

Создание правила защиты ветвей

При создании правила защиты ветвей не обязательно, чтобы указанная ветвь уже существовала в репозитории.

  1. На ваше предприятие перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Параметры. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку Параметры.

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  2. В разделе "Код и автоматизация" боковой панели щелкните Ветви.

  3. Рядом с пунктом "Правила защиты ветвей" щелкните Добавить правило.

  4. В разделе "Шаблон имени ветви" введите имя ветви или шаблон, которые требуется защитить.

  5. При необходимости включите требуемые запросы на вытягивание.

    • В разделе "Защита соответствующих ветвей" выберите Требовать запрос на вытягивание перед слиянием.

    • При необходимости, чтобы требовать утверждения перед слиянием запроса на вытягивание, выберите Требовать утверждения.

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

    • При необходимости, чтобы пропустить утверждение запроса на вытягивание при отправке фиксации с изменением кода в ветвь, выберите параметр Пропускать устаревшие утверждения запросов на вытягивание при отправке новых фиксаций.

    • Если необходимо требовать проверку владельцем кода в случае, если запрос на вытягивание влияет на код с назначенным владельцем, выберите параметр Требовать проверку владельцами кода. Дополнительные сведения см. в разделе О владельцах кода.

    • При необходимости, чтобы разрешить определенным субъектам отправлять код в ветвь, не создавая запросы на вытягивание, когда это требуется, выберите Разрешить определенным субъектам пропускать создание запросов на вытягивание. Затем найдите и выберите субъекты, которым необходимо разрешить пропускать создание запроса на вытягивание.

    • Если репозиторий является частью организации, при необходимости выберите параметр Ограничить возможность пропуска проверок запросов на вытягивание. Затем в поле поиска найдите и выберите субъектов, которым разрешено отклонять проверки запросов на вытягивание. Дополнительные сведения см. в разделе Отклонение проверки запроса на вытягивание.

  6. При необходимости включите обязательные проверки состояния. Дополнительные сведения см. в разделе Сведения о проверках состояния.

    • Выберите параметр Требовать прохождения проверок состояния перед слиянием.
    • Чтобы запросы на вытягивание обязательно тестировались с использованием последнего кода в защищенной ветви, выберите параметр Требовать актуальности ветвей перед слиянием.
    • В поле поиска найдите проверки состояния, выбрав необходимые проверки.
  7. При необходимости выберите параметр Требовать устранения разногласий перед слиянием.

  8. При необходимости выберите параметр Требовать подписания фиксаций.

  9. При необходимости выберите параметр Требовать линейной истории.

  10. Если необходимо выбрать среды, в которых изменения должны быть успешно развернуты перед слиянием, выберите параметр Требовать успешного развертывания перед слиянием, а затем выберите среды.

  11. При необходимости выберите Применить указанные выше правила к администраторам.

  12. При необходимости включить ограничения ветви.

    • Выберите параметр Ограничить пользователей, которые могут выполнять отправку в соответствующие ветви.
    • В поле поиска найдите и выберите людей, команды или приложения, которые будут иметь разрешение на отправку защищенная ветвь или создание соответствующей ветви.
  13. При необходимости в разделе "Правила, применяемые ко всем, включая администраторов" выберите параметр Разрешить принудительную отправку.

    Затем выберите, кто может принудительная отправка в ветвь.

    • Выберите вариант Все, чтобы разрешить всем, у кого есть по крайней мере разрешения на запись в репозиторий, включая администраторов, выполнять принудительную отправку в ветвь.

    • Выберите Указать, кто может выполнять принудительную отправку, чтобы разрешить выполнять принудительную отправку в ветвь только определенным субъектам. Затем найдите и выберите эти субъекты.

      Дополнительные сведения о принудительной отправке см. в разделе Сведения о защищенных ветвях.

  14. При необходимости выберите параметр Разрешить удаление.

  15. Нажмите кнопку Создать.

Изменение правила защиты ветвей

  1. На ваше предприятие перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Параметры. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку Параметры.

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  2. В разделе "Код и автоматизация" боковой панели щелкните Ветви.

  3. Справа от правила защиты ветвей, которое нужно изменить, щелкните Изменить.

  4. Внесите необходимые изменения в правило защиты ветвей.

  5. Нажмите кнопку Сохранить изменения.

Удаление правила защиты ветвей

  1. На ваше предприятие перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Параметры. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку Параметры.

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  2. В разделе "Код и автоматизация" боковой панели щелкните Ветви.

  3. Справа от правила защиты ветвей, которое нужно удалить, щелкните Удалить.