Рубрики
Uncategorized

Сдвиг влево и увеличить качество вашего кода с помощью филиалов Azure DEVOPS

Этот пост был первоначально опубликован на Thu, 9 сентября 2021 года на CloudWithchris.com. Что такое … с меткой DevOps, AzuredevOps, Developer, Devesecops.

Этот пост был первоначально опубликован на Thu, 9 сентября, 2021 года на cloudwithchris.com .

Что такое филиальная политика?

Этот пост похож на другой, я недавно написал на Использование правил защиты от ответственности в Github Отказ Вместо того, чтобы сосредоточиться на GitHub, мы смотрим на то, как вы можете использовать филиальные политики в Azure DevOps (специально, Azure Repos). Если вы используете Azure Repos, но не используете филиальные политики — я рекомендую вам начать использовать их! Я надеюсь, что этот пост поможет вам узнать, как!

В мире DevOps есть термин, известный как сдвиг. Этот термин эффективно означает «найти и предотвращать проблемы рано». Существует несколько исследований, которые показали, что наиболее эффективный способ предотвращения проблем — найти их в начале жизненного цикла доставки программного обеспечения. Это потому, что чем больше проблем, которые вы найдете рано, тем более вероятно, что они будут идентифицированы и, следовательно, исправлены.

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

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

Наконечник: Чтобы контролировать, кто пользователи или группы могут редактировать филиальные политики, в дополнение к другим действиям на уровне репозитория, перейдите к вашему Azure DevOps Настройки проекта Отказ В соответствии с настройками проекта вы увидите раздел для Репо и предмет называемый Репозитории Отказ Вы можете указать разрешения на все репозитории в рамках проекта или конкретного хранилища. Это может быть достигнуто путем указания групп Azure DevOps или отдельных пользователей, а затем выбирая соответствующие разрешения для них. Вы можете найти пример на скриншоте ниже.

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

  • Вам необходимо иметь минимальное количество рецензентов, которые одобрили ваши изменения, до того, как код может быть объединен.
  • Вы должны иметь рабочие элементы, связанные с вашим изменением, до того, как код может быть объединен. Это обеспечивает прослеживаемость, поэтому вы знаете, какие изменения связаны с каждым изменением в кодовой базе.
  • Все активные комментарии (I.E. Обсуждения, а не комментарии кода) должны быть разрешены до того, как может быть объединен в запрос на тягу.
  • Ограничение изменений будет объединено определенным (это может быть его собственный пост в блоге, поэтому мы рассмотрим этот пост для целей настоящего поста.)
  • Запустите сборку автоматически, когда запрашивается запрос на тягу. Это позволяет запустить сборки, автоматические тесты и другие автоматизированные процессы для автоматической проверки, могут ли некоторые изменения сломаны кодовой базой.
  • Обеспечьте успешную проверку статуса от внешних служб (возможно, какой-то внешний сканер кода, на котором у вас есть зависимость?) До того, как может быть объединен запрос на тягу.
  • Автоматически включают рецензенты кода на запрос на тягу, если определенные области кода изменились. Это хорошая альтернатива для концепции кодоуселей, если вы знакомы с этим из GitHub.

Совет: Филиальные политики могут быть настроены на странице ветвей под Azure Repos. Вы можете действие их, ударив в эллипсы (три точки) на ветви, которую вы хотели бы защитить. На скриншоте ниже вы можете увидеть, что главная ветвь была защищена, поскольку у него есть небольшой значок (который выглядит немного похоже на медаль), рядом с именем ветви.

Таким образом, в итоге — вам нужно иметь набор условий, которые вы можете выполнить, прежде чем вы сможете совершить филиал. Если вы этого не сделаете, то вы не сможете совершить эту отрасль.

Настройка филиалов политики

  1. В Azure DevOps перейдите к разделу филиалов Azure Reppos в вашем проекте Lazure DevOps.

  2. Убедитесь, что у вас есть подходящий репозиторий, выбранный на самом вершине страницы. (Вы можете разместить несколько репозиториев Git в том же проекте Azure DevOps, поэтому важно убедиться, что вы работаете в соответствующем контексте!)

  1. Наведите курсор над соответствующей веткой и выберите эллипсис (три точки) на правой стороне. Выберите опцию «Филиал политики».
  1. Вы увидите список настроек, некоторые из которых будут иметь вспомогательные претензии в них Это список политик филиала, которые вы можете настроить для ветви, которую вы хотите защитить. В этой форме нет кнопки сохранения, так как параметры сохраняются автоматически.
  1. Настройте правила, соответствующие вашу ветку. Я обычно настрою некоторую вариацию следующего: Требуется минимальное количество рецензентов , Проверьте наличие связанных рабочих предметов , Проверьте наличие комментариев Разрешение а также Создание проверки Отказ

Наконечник: Есть несколько отличных деталей в Azure Docs О каждой из филиальной политики, которую вы можете настроить. Вместо того, чтобы повторно написать ту же деталь здесь, я призываю вас погрузиться и взглянуть там!

  1. Перейдите к странице филиалов под Azure Reppos. Если у вас ранее не было настроенную политику филиала, теперь вы должны заметить маленький значок (что выглядит немного похоже на медаль) рядом с именем ветви.

В качестве примера я внес некоторые изменения в мою политику защиты от ветки. У меня сейчас есть Требуется минимальное количество рецензентов Установите на 1, а Разрешить просятникам одобрить свои собственные изменения включено. Рассмотрим это предупреждение — эта конфигурация означает, что я могу просматривать свои собственные PRS и одобрить их, несколько побеждая точку рабочего процесса запроса на тягу. Однако, учитывая это просто сам, который работает на проекте — это имеет некоторое смысл здесь. Я набор Проверьте наличие связанных рабочих предметов в дальше, а Проверьте наличие комментариев Разрешение на дальше.

Совет: Вы не ограничиваются применением филиальной политики к отдельным репозиториям. Вы можете перейти к настройкам проекта и перейти к опции «Репозитории» под разделом REPOS. Нажмите на вкладку «Политики», и вы увидите раздел для филиалов. Здесь он говорит, что вы можете «защитить важные пространства имен ветвей во всех репозиториях в этом проекте»

Теперь мы захотим проверить, работают ли наша филиала! После навигации по My readme.md и желанием сделать фиктивное изменение — вы заметите, что я помешаю от совершения изменений в главную ветку.

Вместо этого мы можем использовать тот же пользовательский интерфейс для совершения изменений в новой ветви и повысить запрос на тягу. Запросы на тяга также могут быть подняты в разделе Azure Repos, нажав на элемент запросов на тягу.

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

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

Наконец, после того, как одобрил запрос на тягу, теперь я могу объединить изменения.

Резюме

Там мы идем! На протяжении всего этого поста в блоге мы начали наше путешествие сменитыми левыми. Мы больше не позволяем никому коду непосредственно привержено нашей обработке кодовой базы. Вместо этого мы применяем набор правил, чтобы поддерживаться последовательный рабочий процесс. Этот рабочий процесс может включать в себя Reer Reviews, валидацию по сборке, обеспечивая связанные предметы и многое другое! Это только одна часть путешествия в переключении слева. Лазурные трубопроводы невероятно мощные и могут быть использованы для автоматизации ваших сборки, тестов и более при использовании проверки сборки. Почему бы не создать лазурные трубопроводы, которые срабатывают, когда запрос на тяга создан или обновляется? Я надеюсь, что вы можете посмотреть, как эта более широкая история может продолжаться. Но, конечно, — это еще на один день!

Филиальные политики то, что вы уже используете? Возможно в Azure DevOps, Github или с другим инструментом? Я хотел бы услышать, как вы их используете, и некоторые из практик, которые вы, возможно, привлекли по пути. Оставьте мне сообщение на Twitter, @reddobowen . Тем временем я надеюсь, что это было полезно! Спасибо за чтение, и пока пока.

Оригинал: «https://dev.to/cloudwithchris/shift-left-and-increase-your-code-quality-with-azure-devops-branch-policies-243d»