Задание разрешений для репозитория Git

Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2013

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

Примечание

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

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

Предварительные требования

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

Для участия в исходном коде необходимо иметь уровень доступа Basic или выше. Пользователи, которым предоставлен доступ к заинтересованным лицам , не имеют доступа к исходному коду. Дополнительные сведения см. в статье об уровнях доступа.

Разрешения репозитория по умолчанию

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

Разрешение

читатели;

Участники

Администраторы сборки

Project Администраторы

Чтение (клонирование, извлечение и изучение содержимого репозитория); Кроме того, может создавать, комментировать, голосовать и участвовать в запросах на вытягивание

✔️

✔️

✔️

✔️

Участие в репозитории, создание ветвей, Создание тегови Управление заметками

✔️

✔️

✔️

Обход политик при принудительной отправке в репозиторий

✔️

Создание репозитория, Удаление репозиторияи Переименование репозитория

✔️

Изменение политик, Принудительная отправка (перезапись журнала, удаление ветвей и тегов), Управление разрешениями, удаление блокировок других пользователей

✔️

Обходить политики при завершении запросов на вытягивание (не задано для какой-либо группы безопасности)

По умолчанию группы читателей уровня проекта имеют разрешения только на чтение.

Разрешение

Участники

Администраторы сборки

Project Администраторы

Создание ветви. на уровне репозитория может отправлять свои изменения в ветви в репозитории. Не переопределяет ограничения в политиках ветви. На уровне ветви может отправить свои изменения в ветвь и заблокировать ветвь.

✔️

✔️

✔️

Участие: на уровне репозитория можно отправить свои изменения в ветви в репозитории. Не переопределяет ограничения в политиках ветви. На уровне ветви может отправить свои изменения в ветвь и заблокировать ветвь.

✔️

✔️

✔️

Управление заметками. позволяет отправлять и редактировать заметки Git в репозитории. Они также могут удалять заметки из элементов, если у них есть разрешение Force .

✔️

✔️

✔️

Создание тега: можно отправить Теги в репозиторий, а также изменить или удалить теги, если у них есть разрешение Force .

✔️

✔️

✔️

Администрирование: удаление и переименование репозиториев. при назначении записи репозиториев Git верхнего уровня может добавлять дополнительные репозитории. На уровне ветвей пользователи могут задавать разрешения для ветви и разблокирования ветви. Набор разрешений "Администрирование" в отдельном репозитории Git не предоставляет возможность переименовывать или удалять репозиторий. Для этих задач требуются разрешения администратора на верхнем уровне репозиториев Git.

✔️

Журнал перезаписи и уничтожения (принудительная отправка): может принудительно выполнить обновление ветви и удалить ветвь. Принудительное обновление может перезаписывать фиксации, добавленные любым пользователем. Пользователи с этим разрешением могут изменять историю фиксаций ветви.

✔️

Открытие системы безопасности для репозитория

разрешения репозитория Git задаются из Project Параметры репозиториев.

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

  2. откройте репозитории параметров Project.

    Чтобы задать разрешения для всех репозиториев Git, выберите Безопасность.

    например, здесь мы выбираем (1) Project параметры, (2) репозитории, а затем (3) безопасность.

    снимок экрана, показывающий, как выбрать Project параметры  репозитории  безопасность.

  3. В противном случае, чтобы задать разрешения для определенного репозитория, выберите (1) репозиторий, а затем выберите (2) Безопасность.

    снимок экрана, показывающий выбор параметров Project  выберите  безопасность репозитория.

Задание разрешений для репозитория

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

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

  2. Чтобы задать разрешения для всех репозиториев Git для проекта, выберите репозитории Git , а затем выберите группу безопасности, разрешения которой требуется управлять.

    например, здесь можно выбрать (1) Project Параметры, (2) репозиториев, (3) репозиториев Git, (4) группу " участники ", а затем (5) разрешение на создание репозитория.

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

    Project Параметры  репозитории кода. > безопасность репозиториев Git >

    Примечание

    Возможно, вам не удастся найти пользователя на странице разрешений или поле идентификатора, если пользователь не был добавлен в проект — либо путем добавления его в группу безопасности, либо в рабочую группу проекта. кроме того, при добавлении пользователя в Azure Active Directory или Active Directory может существовать задержка между моментом добавления в проект и тем, когда они доступны для поиска из поля identity. Задержка может составлять от 5 минут до 7 дней.

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

    Примечание

    Если добавить пользователя или группу и не изменить какие-либо разрешения для этого пользователя или группы, то при обновлении страницы разрешения добавленный пользователь или группа больше не будут отображаться.

  3. По завершении нажмите кнопку сохранить изменения.

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

  2. Щелкните значок шестеренки, чтобы открыть Административный контекст.

    открытие Параметры Project, горизонтальная навигация

  3. Выберите Управление версиями.

  4. Чтобы задать разрешения для всех репозиториев Git для проекта, (1) выберите репозитории Git , а затем (2) выберите группу безопасности, разрешения которой требуется управлять.

    Примечание

    Возможно, вам не удастся найти пользователя на странице разрешений или поле идентификатора, если пользователь не был добавлен в проект — либо путем добавления его в группу безопасности, либо в рабочую группу проекта. кроме того, при добавлении пользователя в Azure Active Directory или Active Directory может существовать задержка между моментом добавления в проект и тем, когда они доступны для поиска из поля identity. Задержка может составлять от 5 минут до 7 дней.

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

  5. Выберите параметр для разрешения, которое требуется изменить.

    Здесь мы предоставляем разрешения группе "участники" (3) создать репозиторий.

    Диалоговое окно безопасности для всех репозиториев Git, группа участников

  6. По завершении нажмите кнопку сохранить изменения.

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

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

  2. Щелкните значок шестеренки, чтобы открыть Административный контекст.

  3. Выберите Управление версиями.

  4. Чтобы задать разрешения для всех репозиториев Git для проекта, (1) выберите репозитории Git , а затем (2) выберите группу безопасности, разрешения которой требуется управлять.

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

  5. Выберите параметр для разрешения, которое требуется изменить.

    Диалоговое окно разрешений репозитория Git до TFS 2017,1

  6. По завершении нажмите кнопку сохранить изменения.

Изменение разрешений для группы безопасности

Чтобы задать разрешения для пользовательской группы безопасности, необходимо предварительно определить эту группу. См. раздел Установка разрешений на уровне проекта или коллекции.

  1. Чтобы задать разрешения для определенной группы, выберите группу. Например, здесь мы выбираем группу «участники».

    Снимок экрана: Выбор группы участников.

  2. Измените одно или несколько разрешений. Чтобы предоставить разрешения, измените значение параметра не на разрешено. Чтобы ограничить разрешения, измените значение Разрешить на запретить.

    Снимок экрана с тремя разрешениями, измененными для группы

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

Задание разрешений для конкретного пользователя

  1. Чтобы задать разрешения для конкретного пользователя, введите имя пользователя в фильтр поиска и выберите из отображаемых удостоверений.

    Добавить пользователя или группу

    Затем внесите изменения в набор разрешений.

    Примечание

    Возможно, вам не удастся найти пользователя на странице разрешений или поле идентификатора, если пользователь не был добавлен в проект — либо путем добавления его в группу безопасности, либо в рабочую группу проекта. кроме того, при добавлении пользователя в Azure Active Directory или Active Directory может существовать задержка между моментом добавления в проект и тем, когда они доступны для поиска из поля identity. Задержка может составлять от 5 минут до 7 дней.

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

Примечание

Если добавить пользователя или группу и не изменить какие-либо разрешения для этого пользователя или группы, то при обновлении страницы разрешения добавленный пользователь или группа больше не будут отображаться.

Включение или отключение наследования для определенного репозитория

Исключение из политики применения политик и обход разрешений политики

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

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

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

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

Примечание

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