Azure DevOps Server를 GitHub로 커넥트(온-프레미스)

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Azure DevOps Server 프로젝트를 GitHub 리포지토리에 연결하는 경우 GitHub 커밋과 작업 항목에 대한 끌어오기 요청 간의 연결을 지원합니다. Azure Boards를 사용하여 작업을 계획하고 추적하면서 소프트웨어 개발용 GitHub를 사용할 수 있습니다.

참고 항목

온-프레미스 Azure DevOps Server 2020은 GitHub.com 및 GitHub Enterprise Server 리포지토리와의 통합을 지원합니다. Azure DevOps Services에서 연결하려면 Azure Boards에서 GitHub로 커넥트 참조하세요.

Azure DevOps Server 프로젝트를 GitHub Enterprise Server 리포지토리에 연결하는 경우 GitHub 커밋과 작업 항목에 대한 끌어오기 요청 간의 연결을 지원합니다. Azure Boards를 사용하여 작업을 계획하고 추적하는 동안 소프트웨어 개발에 GitHub Enterprise를 사용할 수 있습니다.

참고 항목

온-프레미스 Azure DevOps Server 2019는 GitHub Enterprise Server 리포지토리와의 통합을 지원합니다. Azure DevOps Services에서 연결하려면 Azure Boards에서 GitHub로 커넥트 참조하세요.

필수 조건

  • Azure DevOps Server 2020.1.1 패치 2를 설치하여 리포지토리를 GitHub.com 커넥트. 이 패치가 없으면 GitHub Enterprise Server 리포지토리에만 연결할 수 있습니다.
  • GitHub 조직 또는 계정에 GitHub 용 Azure Boards 앱을 설치합니다.
  • Azure Boards 또는 Azure DevOps 프로젝트에 커넥트. 아직 프로젝트가 없는 경우 프로젝트를 만듭니다.
  • Project Collection 관리istrators 그룹 및 프로젝트의 기여자 그룹의 구성원이어야 합니다. 프로젝트를 만든 경우 사용 권한이 있습니다.
  • 연결하는 GitHub Enterprise Server의 관리자여야 합니다.

인증 옵션

지원되는 인증 옵션은 다음과 같습니다.

참고 항목

OAuth는 Azure DevOps Server 2020에서 지원되지 않습니다.

GitHub에서 Azure DevOps를 OAuth 앱 등록

OAuth를 사용하여 Azure DevOps Server를 GitHub Enterprise Server에 연결하려는 경우 먼저 애플리케이션을 OAuth 앱 등록해야 합니다. 자세한 내용은 OAuth 앱 만들기를 참조하세요.

Azure DevOps Server 등록

  1. GitHub Enterprise 서버에 대한 웹 포털에 로그인합니다.

    Screenshot of sign in for GitHub Enterprise Server.

  2. 설정>Developer 설정>Oauth 앱>새 OAuth 앱 선택합니다.

    Screenshot showing sequence for getting to New OAuth App screen.

  3. 정보를 입력하여 Azure DevOps Server 애플리케이션을 등록합니다.

    Screenshot of Azure DevOps Server project registration.

    홈페이지 URL경우 프로젝트 컬렉션의 공용 URL을 지정합니다. Azure DevOps 관리istration Console을 열고 애플리케이션 계층 노드를 볼 때 이 URL을 찾을 수 있습니다.

    Screenshot of Azure DevOps Server Administration Console, Application Tier.

    권한 부여 콜백 URL경우 다음 패턴을 사용하여 URL을 생성합니다.

    {Azure DevOps Server Public Url}/{Collection Name}/_admin/oauth2/callback

    예시:

    http://contoso/DefaultCollection/_admin/oauth2/callback

    https://tfs.contoso.com/MyCollection/_admin/oauth2/callback

  4. 애플리케이션 등록을 선택합니다.

  5. 등록된 OAuth 애플리케이션에 대한 클라이언트 ID클라이언트 암호를 제공하는 페이지가 나타납니다.

    Screenshot of Client ID and Client Secret for your registered OAuth application.

Azure DevOps Server에 OAuth 구성 등록

  1. Azure DevOps Server에 대한 웹 포털에 로그인합니다.

  2. Azure DevOps Server 컬렉션에 GitHub Enterprise Oauth 구성을 추가합니다.

  3. 관리 설정>Oauth 구성 Oauth 구성> 추가를 선택합니다.

    Screenshot showing step sequence to add OAuth configuration.

  4. 정보를 입력한 다음 만들기를 선택합니다.

    Screenshot of OAuth configuration dialog.

Azure DevOps Server를 GitHub Enterprise Server에 커넥트

Azure Boards 프로젝트에 최대 250개의 GitHub 리포지토리를 연결할 수 있습니다.

참고 항목

100개 이상의 GitHub 리포지토리에 연결하려면 Azure DevOps Server 2020.1 업데이트 이상 버전이 필요합니다.
리포지토리를 GitHub.com 커넥트 Azure DevOps Server 2020.1.1 패치 2 이상 버전이 필요합니다.

Azure Boards 프로젝트에 최대 100개의 GitHub 리포지토리를 연결할 수 있습니다. 이 한도는 변경할 수 없습니다.

  1. Azure DevOps Server에 대한 웹 포털을 엽니다.

  2. Azure DevOps 로고를 선택하여 프로젝트를다음 GitHub Enterprise 리포지토리에 연결하도록 구성하려는 Azure Boards 프로젝트를 선택합니다.

  1. 프로젝트 설정>GitHub 연결을 선택합니다.

    Screenshot of open Project Settings>GitHub connections.

  2. 프로젝트에서 처음으로 연결을 만드는 경우 연결을 만드는 데 사용할 인증 방법을 선택합니다.

    • 개인용 액세스 토큰은 개인 액세스 토큰을 사용하는 커넥트 참조하세요.
    • 사용자 이름 및 암호는 사용자 이름 및 암호를 사용하는 커넥트 참조하세요.

    Screenshot of first time connecting with GitHub credentials.

    그렇지 않으면 새 연결을 선택하고 새 커넥트 대화 상자에서 인증 방법을 선택합니다.

  1. GitHub Enterprise 계정에 커넥트 프로젝트 설정>GitHub 연결을> 선택합니다.

    Screenshot of Project settings, selected Integrations.

    또는 해당 자격 증명을 사용하는 경우 개인 액세스 토큰 또는 사용자 이름 및 암호를 선택합니다.

OAuth를 사용하여 커넥트

Azure DevOps Server에서 OAuth 구성 등록의 4단계에서 설정한 구성을 선택합니다. 그런 다음, 커넥트 선택합니다.

Screenshot fo New GitHub Enterprise connection, OAuth dialog.

개인용 액세스 토큰을 사용하여 커넥트

  1. PAT를 만들려면 개인용 액세스 토큰 만들기를 참조하세요.

    GitHub PAT를 만들 때 다음 범위를 포함해야 합니다. repo, admin:repo_hook, read:user, user:email

  2. GitHub Enterprise 서버의 URL과 해당 서버에서 인식한 개인용 액세스 토큰 자격 증명을 입력합니다. 그런 다음 커넥트 선택합니다.

Screenshot of sign in with PAT.

사용자 이름 및 암호를 사용하여 커넥트

  1. GitHub Enterprise 서버의 URL과 해당 서버에서 인식한 관리자 계정 자격 증명을 입력합니다. 그런 다음 커넥트 선택합니다.

Screenshot of sign in with username and password.

  1. 대화 상자에는 GitHub 관리 권한이 있는 모든 리포지토리가 나열됩니다. MineAll 사이를 전환하여 다른 사용자가 표시되는지 확인한 다음 추가하려는 항목을 검사 수 있습니다. 완료되면 저장을 선택합니다.

    Screenshot of repositories to select to add.

  2. Azure Boards에서 처음으로 GitHub 계정 또는 조직에 연결하려면 GitHub용 Azure Boards 앱도 설치합니다. 연결 확인에 설명된 절차에 따라 통합을 완료합니다.

연결 문제 해결

Azure Boards-GitHub 통합은 연결을 지원하기 위해 다양한 인증 프로토콜을 사용합니다. 사용자의 권한 범위 또는 인증 자격 증명을 변경하면 Azure Boards에 연결된 GitHub 리포지토리가 해지될 수 있습니다.

GitHub용 Azure Boards 앱이 지원하는 통합에 대한 개요는 Azure Boards-GitHub 통합을 참조하세요.

지원되는 인증 옵션

다음 인증 옵션은 연결하려는 GitHub 플랫폼을 기반으로 지원됩니다.

플랫폼

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • 사용자 계정 GitHub.com
  • PAT(개인용 액세스 토큰)
  • OAuth
  • PAT
  • 사용자 이름 및 암호

Azure DevOps Server 2020

해당 없음

  • PAT
  • 사용자 이름 및 암호

Azure DevOps Server 2019

해당 없음

  • OAuth
  • PAT
  • 사용자 이름 및 암호

참고 항목

GitHub용 Azure Boards 앱을 통해 Azure Boards 및 Azure DevOps Services는 GitHub.com과 GitHub Enterprise 서버 리포지토리와 통합을 지원합니다. Azure DevOps Servers 2019 이상 버전은 GitHub Enterprise Server 리포지토리와의 통합만 지원합니다. 다른 Git 리포지토리와의 통합은 지원되지 않습니다.

액세스 문제 해결

GitHub에 대한 Azure Boards 연결에 더 이상 액세스할 수 없는 경우 red-X가 있는 사용자 인터페이스에 경고 상태 표시됩니다. 경고 위로 마우스를 가져가면 자격 증명이 더 이상 유효하지 않음을 나타냅니다. 문제를 해결하려면 연결을 제거하고 새 연결을 다시 만듭니다.

Screenshot of failed connection.

GitHub에 대한 Azure Boards 연결에 더 이상 액세스할 수 없는 경우 GitHub에 연결할 수 없음과 같은 도구 설명이 있는 red-X가 있는 경고 상태 사용자 인터페이스에 표시됩니다.

다음 해결 방법을 고려합니다.

  • 연결에서 OAuth를 사용하는 경우:

    • Azure Boards 애플리케이션은 리포지토리 중 하나에 대한 액세스가 거부되었습니다.

    • GitHub를 사용할 수 없거나 연결할 수 없습니다. 이러한 사용 불가는 서비스 중단 또는 온-프레미스 인프라/네트워크 문제로 인해 발생할 수 있습니다. 다음 링크에서 서비스 상태 검사 수 있습니다.

      GitHub 리포지토리에 대한 연결을 삭제하고 다시 만듭니다. 이 연결을 다시 만들면 GitHub에서 Azure Boards를 다시 인증하라는 메시지가 표시됩니다.

  • 연결에서 PAT를 사용하는 경우:

    • PAT가 해지되었거나 필요한 권한 범위가 변경되어 충분하지 않을 수 있습니다.

    • 사용자가 GitHub 리포지토리에 대한 관리자 권한을 잃었을 수 있습니다.

      PAT를 다시 만들고 토큰 범위에 필요한 권한이 포함되어 있는지 확인합니다. repo, read:user, user:email, admin:repo_hook

선택한 작업 항목 유형에 대한 XML 정의 업데이트

조직에서 호스트된 XML 또는 온-프레미스 XML 프로세스 모델을 사용하여 작업 추적 환경을 사용자 지정하고 작업 항목 양식의 개발 섹션에서 GitHub 링크 형식에 연결하고 보려는 경우 작업 항목 형식에 대한 XML 정의를 업데이트해야 합니다.

예를 들어 사용자 스토리와 버그를 GitHub 커밋에 연결하고 개발 섹션에서 요청을 끌어오려면 사용자 스토리 및 버그에 대한 XML 정의를 업데이트해야 합니다.

호스트된 XML 프로세스 모델에 제공된 작업 시퀀스에 따라 XML 정의를 업데이트합니다. 각 작업 항목 유형에 대해 섹션을 Group Label="Development" 찾고 다음 코드 구문에 다음 두 줄을 추가하여 외부 링크 형식 인 GitHub CommitGitHub 끌어오기 요청을 지원합니다.

             <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>  

다음 단계