Подключение Azure DevOps Server к GitHub (локальной среде)

Azure DevOps Server | Azure DevOps Server 2022

При подключении проекта Azure DevOps Server к репозиториям GitHub поддерживается связывание фиксаций GitHub и запросов на вытягивание с рабочими элементами. Вы можете использовать GitHub для разработки программного обеспечения при использовании Azure Boards для планирования и отслеживания работы.

Note

Azure DevOps Server поддерживает интеграцию с репозиториями GitHub.com и GitHub Enterprise Server. Для подключения из Azure DevOps Services см. раздел Подключение Azure Boards к GitHub.

Prerequisites

Category Requirements
Разрешения — Член администраторов коллекции проектов групп и группы участников проекта участников проекта. Если вы создали проект, у вас есть разрешения.
- Администратор GitHub Enterprise Server, к которому вы подключаетесь.
Членство в проекте член проекта.
Интеграция с GitHub — Azure DevOps Server 2020.1.1 Patch 2. Без этого исправления вы можете подключиться только к репозиториям корпоративного сервера GitHub.
- Приложение Azure Boards для GitHub установленное в GitHub организациях или учетных записях.

Варианты проверки подлинности

Поддерживаются следующие параметры проверки подлинности:

Note

OAuth не поддерживается для Azure DevOps Server 2020.

Подключение Azure DevOps Server к GitHub Enterprise Server

Вы можете подключить до 250 GitHub репозиториев к проекту Azure Boards.

  1. Откройте веб-портал для Azure DevOps Server.

  2. Выберите логотип Azure DevOps, чтобы открыть Projects, а затем выберите проект Azure Boards, который необходимо настроить для подключения к репозиториям GitHub Enterprise.

  3. Выберите параметры Project>GitHub подключения.

    Скриншот открытых настроек проекта, соединения с GitHub.

  4. Если вы впервые делаете подключение из проекта, выберите метод проверки подлинности, который вы хотите использовать для подключения:

    Скриншот первого подключения с учетными данными GitHub.

    В противном случае выберите новое подключение и выберите метод проверки подлинности в диалоговом окне "Создать подключение".

Подключение Azure DevOps Server и GitHub с использованием токена личного доступа

  1. Сведения о создании GitHub PAT см. в разделе Create GitHub PAT.

    Tip

    При создании GitHub PAT убедитесь, что вы включаете следующие области: repo, admin:repo_hook, read:user, user:email.

  2. Введите URL-адрес вашего сервера GitHub Enterprise и учетные данные токена личного доступа, которые распознаются этим сервером. А затем нажмите кнопку "Подключить".

    Скриншот входа с помощью GitHub PAT.

Подключение Azure DevOps Server с помощью учетных данных GitHub

  1. Введите URL-адрес сервера GitHub Enterprise и учетные данные учетной записи администратора, распознанные этим сервером. Затем нажмите кнопку "Подключить".

    Screenshot входа с помощью учетных данных GitHub.

  2. В диалоговом окне перечислены все репозитории, для которых у вас есть права администратора GitHub. Вы можете переключаться между Мои и Все, чтобы определить, отображаются ли другие, а затем отметить тех, которых хотите добавить. Нажмите кнопку "Сохранить " после завершения.

    Снимок экрана: репозитории, которые нужно добавить.

  3. Чтобы впервые подключиться к учетной записи или организации GitHub из Azure Boards, установите приложение Azure Boards для GitHub. Выполните интеграцию, выполнив процедуры, описанные в разделе "Подтверждение подключения".

Устранение неполадок с подключением

Интеграция Azure Boards-GitHub использует различные протоколы проверки подлинности для поддержки подключения. Изменения области разрешений пользователя или учетных данных проверки подлинности могут привести к отзыву репозиториев GitHub, подключенных к Azure Boards.

Для получения сведений об интеграции, которую поддерживает приложение Azure Boards для GitHub, см. раздел Azure Boards-GitHub integration.

Если подключение Azure Boards к GitHub больше не имеет доступа, оно отображает состояние оповещения в пользовательском интерфейсе с красным X. Наведите указатель мыши на оповещение, и оно покажет, что учетные данные больше недействительны. Чтобы устранить проблему, удалите подключение и создайте новое подключение.

Снимок экрана: сбой подключения.

Рассмотрим следующие решения:

  • Если подключение использует OAuth:

    • приложению Azure Boards был запрещён доступ к одному из репозиториев.

    • GitHub может быть недоступен или не удаётся подключиться. Эта недоступность может быть вызвана сбоем в службе или локальной проблеме инфраструктуры или сети. Состояние службы можно проверить со следующими ссылками:

      Удалите и повторно создайте подключение к репозиторию GitHub. Это повторное подключение приводит к запросу GitHub на повторную авторизацию Azure Boards.

  • Если подключение используется GitHub PAT:

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

    • Возможно, пользователь потерял административные разрешения в репозитории GitHub.

      Повторно создайте GitHub PAT и убедитесь, что область для маркера включает необходимые разрешения: repo, read:user, user:email, admin:repo_hook.

Обновление определений XML для выбора типов рабочих элементов

Если организация настраивает отслеживание работы с помощью модели процесса размещенного XML или локального XML-процесса и хочет интегрировать типы ссылок GitHub в раздел разработки форм рабочих элементов, необходимо обновить определения XML для соответствующих типов рабочих элементов.

Например, чтобы связать пользовательские истории и ошибки с коммитами и пул-реквестами в разделе Development форм рабочих элементов, необходимо обновить определения XML для этих типов рабочих элементов.

Чтобы изменить определения XML, выполните действия, описанные в модели размещенного процесса XML. Для каждого типа рабочего элемента:

  1. Найдите раздел Group Label="Development".
  2. Чтобы поддерживать типы внешних ссылок, GitHub Commit и GitHub Пулл реквест, добавьте следующие строки кода:

Эта интеграция позволяет легко отслеживать действия GitHub непосредственно из рабочих элементов в Azure Boards.

             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  

При обновлении раздел должен отображаться следующим образом.

<Group Label="Development">  
   <Control Type="LinksControl" Name="Development">  
      <LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">  
         <ListViewOptions GroupLinks="false">   
         </ListViewOptions>  
         <LinkFilters>  
             <ExternalLinkFilter Type="Build" />  
             <ExternalLinkFilter Type="Integrated in build" />  
             <ExternalLinkFilter Type="Pull Request" />  
             <ExternalLinkFilter Type="Branch" />  
             <ExternalLinkFilter Type="Fixed in Commit" />  
             <ExternalLinkFilter Type="Fixed in Changeset" />  
             <ExternalLinkFilter Type="Source Code File" />  
             <ExternalLinkFilter Type="Found in build" />  
             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  
         </LinkFilters>  
      </LinksControlOptions>  
   </Control>  
</Group>  

Следующий шаг