다음을 통해 공유


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에 연결하세요.

필수 조건

  • GitHub와 통합:
    • Azure DevOps Server 2020.1.1 패치 2를 설치하여 GitHub.com 리포지토리에 연결합니다. 이 패치가 없으면 GitHub Enterprise Server 리포지토리에만 연결할 수 있습니다.
    • GitHub 조직 또는 계정에 GitHub 용 Azure Boards 앱을 설치합니다.
  • 프로젝트 연결: Azure Boards 또는 Azure DevOps 프로젝트에 연결합니다. 아직 프로젝트가 없는 경우 프로젝트를 만듭니다.
  • 사용 권한:
    • 프로젝트 컬렉션 관리자 그룹 및 프로젝트의 기여자 그룹의 구성원이 됩니다. 프로젝트를 만든 경우 사용 권한이 있습니다.
    • 연결하는 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 서버에 대한 웹 포털에 로그인합니다.

    GitHub Enterprise Server에 대한 로그인 스크린샷

  2. 설정>개발자 설정>Oauth 앱>새 OAuth 앱 선택합니다.

    새 OAuth 앱 화면으로 가져오기 위한 시퀀스를 보여 주는 스크린샷

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

    Azure DevOps Server 프로젝트 등록 스크린샷

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

    Azure DevOps 서버 관리 콘솔, 애플리케이션 계층의 스크린샷

    권한 부여 콜백 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클라이언트 암호를 제공하는 페이지가 나타납니다.

    등록된 OAuth 애플리케이션에 대한 클라이언트 ID 및 클라이언트 암호의 스크린샷

Azure DevOps Server에 OAuth 구성 등록

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

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

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

    OAuth 구성을 추가하는 단계 시퀀스를 보여 주는 스크린샷

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

    OAuth 구성 대화 상자의 스크린샷

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 연결을 선택합니다.

    열려 있는 프로젝트 설정>GitHub 연결의 스크린샷

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

    • 개인 액세스 토큰에 대한 자세한 내용은 개인 액세스 토큰을 사용하여 연결을 참조하세요.
    • 사용자 이름 및 암호는 사용자 이름 및 암호를 사용하여 연결을 참조 하세요.

    GitHub 자격 증명으로 처음 연결하는 스크린샷

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

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

    프로젝트 설정, 선택한 통합의 스크린샷.

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

OAuth를 사용하여 연결

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

새 GitHub Enterprise 연결, OAuth 대화 상자 스크린샷

개인용 액세스 토큰으로 연결

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

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

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

PAT를 사용하여 로그인하는 스크린샷

사용자 이름 및 암호로 연결

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

사용자 이름 및 암호를 사용하여 로그인하는 스크린샷

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

    추가할 리포지토리의 스크린샷

  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 Server 리포지토리와 통합됩니다. Azure DevOps Server 2019 이상 버전은 GitHub Enterprise Server 리포지토리와의 통합만 지원합니다. 다른 Git 리포지토리와 통합은 지원되지 않습니다.

액세스 문제 해결

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

실패한 연결의 스크린샷.

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 프로세스 모델에 설명된 단계를 수행합니다. 각 작업 항목 유형:

  1. Group Label="Development" 섹션을 찾습니다.
  2. 외부 링크 유형인 GitHub 커밋GitHub 끌어오기 요청을 지원하려면 다음 코드 줄을 추가합니다.

이러한 통합을 통해 Azure Boards의 작업 항목에서 직접 GitHub 활동을 원활하게 추적할 수 있습니다.

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

다음 단계