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

Поддержка этой версии GitHub Enterprise была прекращена 2023-03-15. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, укрепления безопасности и новых функций установите последнюю версию GitHub Enterprise. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

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

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

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

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

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

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

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

Вы можете создать правило для всех текущих и будущих ветвей в репозитории, используя синтаксис с подстановочным знаком *. Так как в GitHub используется флаг File::FNM_PATHNAME для синтаксиса File.fnmatch, подстановочный знак не соответствует разделителям каталогов (/). Например, qa/* будет соответствовать всем ветвям, начинающимся с qa/ и содержащим одну косую черту. Вы можете включить несколько косых черт, используя синтаксис qa/**/*, и расширить строку qa в виде qa**/**/*, чтобы сделать правило менее строгим. Дополнительные сведения о параметрах синтаксиса для правил в отношении ветвей см. в документации по fnmatch.

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

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

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

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

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

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

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

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

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

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

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

    • В разделе "Защита соответствующих ветвей" выберите Требовать запрос на вытягивание перед слиянием. Флажок обязательной проверки запроса на вытягивание
    • Чтобы затребовать утверждения перед слиянием запроса на вытягивание, выберите параметр Требовать утверждения, откройте раскрывающееся меню Требуемое количество утверждений перед слиянием, а затем выберите количество утверждений, требуемое для ветви. Раскрывающееся меню для выбора количества необходимых утверждений проверки
    • При необходимости, чтобы пропустить утверждение запроса на вытягивание при отправке фиксации с изменением кода в ветвь, выберите параметр Пропускать устаревшие утверждения запросов на вытягивание при отправке новых фиксаций. Флажок "Пропускать устаревшие утверждения запросов на вытягивание при отправке новых фиксаций"
    • Если необходимо требовать проверку владельцем кода в случае, если запрос на вытягивание влияет на код с назначенным владельцем, выберите параметр Требовать проверку владельцами кода. Дополнительные сведения см. в разделе О владельцах кода. Требовать проверку от владельцев кода
    • При необходимости, чтобы разрешить определенным субъектам отправлять код в ветвь, не создавая запросы на вытягивание, когда это требуется, выберите Разрешить определенным субъектам пропускать создание запросов на вытягивание. Затем найдите и выберите субъекты, которым необходимо разрешить пропускать создание запроса на вытягивание. ! [Флажок Разрешить определенным субъектам обходить требования запроса на вытягивание] (/assets/images/help/repository/PR-bypass-requirements.png)
    • Если репозиторий является частью организации, при необходимости выберите параметр Ограничить возможность пропуска проверок запросов на вытягивание. Затем найдите и выберите субъекты, которым разрешено закрывать проверки запросов на вытягивание. Дополнительные сведения см. в разделе Отклонение проверки запроса на вытягивание. ! [Флажок "Ограничить пользователей, которые могут отклонять проверки запросов на вытягивание]. (/assets/images/help/repository/PR-review-required-dismissals.png)
  5. При необходимости включите обязательные проверки состояния. Дополнительные сведения см. в разделе Сведения о проверках состояния.

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

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

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

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

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

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

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

    • Выберите Указать, кто может выполнять принудительную отправку, чтобы разрешить выполнять принудительную отправку в ветвь только определенным субъектам. Затем найдите и выберите эти субъекты. ! [Снимок экрана: параметры для указания пользователей, которые могут принудительно отправлять данные] (/assets/images/help/repository/allow-force-pushes-specify-who.png)

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

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

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

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

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

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

  2. В меню слева щелкните Ветви. Подменю параметров репозитория

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

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

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

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

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

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

  2. В меню слева щелкните Ветви. Подменю параметров репозитория

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