GitHub에 Azure Boards 연결(클라우드)
Azure DevOps Services
소프트웨어 개발 및 Azure Boards 프로젝트에 GitHub.com 리포지토리를 사용하여 작업을 계획하고 추적합니다. GitHub 커밋 및 끌어오기 요청이 Azure Boards의 작업 항목에 연결되도록 프로젝트 및 리포지토리를 연결합니다.
참고 항목
Azure Boards 및 Azure DevOps Services는 GitHub.com과 GitHub Enterprise 서버 리포지토리와의 통합을 지원합니다. 온-프레미스 Azure DevOps Server에서 연결하려면 Azure DevOps Server 를 GitHub Enterprise Server에 연결하세요.
필수 조건
프로젝트 요구 사항: Azure DevOps 프로젝트가 있어야 합니다. 프로젝트가 없는 경우 프로젝트를 만듭니다.
사용 권한:
- 프로젝트 관리자 그룹의 구성원이 됩니다. 프로젝트를 만든 경우 사용 권한이 있습니다.
- 연결할 GitHub 리포지토리의 관리자 또는 소유자여야 합니다. 해당 리포지토리의 관리자인 경우 여러 GitHub 리포지토리에 연결할 수 있습니다.
인증 옵션
다음 인증 옵션은 연결하려는 GitHub 플랫폼을 기반으로 지원됩니다.
GitHub.com
GitHub Enterprise Server
참고 항목
GitHub를 PAT에 연결하도록 선택한 경우 GitHub 계정에서 PAT에 대한 SSO(Single Sign-On)를 구성합니다. 이 구성은 SAML(Security Assertion Markup Language) SSO 인증을 사용하도록 설정된 조직에서 리포지토리 목록을 검색하는 데 필요합니다.
Azure Boards를 GitHub 리포지토리에 연결합니다.
프로젝트에 로그인합니다(
https://dev.azure.com/{Your_Organization/Your_Project}
).프로젝트 설정>GitHub 연결을 선택합니다.
프로젝트에서 처음으로 연결하는 경우 GitHub 계정 연결을 선택하여 GitHub 계정 자격 증명을 사용합니다.
그렇지 않은 경우 새 연결을 선택하고 새 연결 대화 상자에서 인증 방법을 선택합니다.
GitHub 계정으로 연결하는 경우 GitHub 자격 증명을 사용하여 인증합니다. PAT를 사용하려면 PAT를 사용하여 GitHub 연결 추가를 참조하세요. GitHub Enterprise Server에 연결하려면 GitHub에서 Azure DevOps를 OAuth 앱 등록을 참조하세요.
GitHub 자격 증명을 사용하여 GitHub 연결 추가
최대 500개의 GitHub 리포지토리를 Azure Boards 프로젝트에 연결할 수 있습니다.
Azure Boards에서 GitHub에 처음 연결하는 경우 GitHub 자격 증명을 사용하여 로그인합니다. 리포지토리 관리자인 계정을 선택합니다.
연결하려는 GitHub 계정 또는 조직을 선택합니다. 사용자가 소유하거나 관리자인 조직만 나열됩니다.
조직의 모든 리포지토리가 이미 Azure Boards에 연결된 경우 다음 메시지가 표시됩니다.
GitHub 자격 증명을 입력합니다. 2단계 인증을 사용하도록 설정한 경우 GitHub에서 보낸 인증 코드를 입력하고 확인을 선택합니다. 그렇지 않은 경우 GitHub 계정이 Azure DevOps Services 계정과 연결되므로 시스템에서 GitHub 조직을 자동으로 인식합니다.
GitHub 리포지토리 추가
인증되면 연결하려는 리포지토리를 선택할 수 있습니다.
GitHub 리포지토리 추가 대화 상자는 선택한 조직의 관리자인 모든 GitHub.com 리포지토리를 자동으로 표시하고 선택합니다. 통합에 포함하지 않으려는 리포지토리를 선택 취소합니다.
팁
예기치 않은 AB# 멘션 연결을 방지하려면 GitHub 리포지토리를 단일 Azure DevOps 조직 내의 프로젝트에 연결하는 것이 좋습니다. 동일한 GitHub 리포지토리를 여러 Azure DevOps 조직의 프로젝트에 연결하면 문제가 발생할 수 있습니다. 자세한 내용은 GitHub 및 Azure Boards 통합 문제 해결을 참조하세요.
모든 리포지토리가 현재 또는 다른 조직에 이미 연결된 경우 다음 메시지가 표시됩니다.
선택한 후 저장을 선택합니다.
연결을 확인합니다.
표시되는 GitHub 페이지를 검토한 다음 승인, 설치 및 권한을 선택합니다.
확인할 GitHub 암호를 제공합니다.
완료되면 선택한 리포지토리가 나열된 새 연결이 표시됩니다.
구성을 변경하거나 GitHub용 Azure Boards 앱을 관리하려면 Azure Boards에 대한 리포지토리 액세스 변경을 참조 하세요.
PAT를 사용하여 GitHub 연결 추가
GitHub 계정 자격 증명을 사용하여 GitHub 리포지토리에 연결하는 것이 좋습니다. PAT를 사용해야 하는 경우 다음 단계를 수행합니다.
팁
GitHub PAT를 만들 때 다음 범위를 포함해야 합니다. repo, read:user, user:email, admin:repo_hook
개인용 액세스 토큰을 선택합니다.
GitHub PAT를 만들려면 GitHub 개발자 설정 > 개인 액세스 토큰으로 이동합니다.
PAT를 입력하고 연결을 선택합니다.
이 문서의 앞부분에 있는 리포지토리 선택에서 설명한 절차에 따라 프로젝트에 연결할 리포지 토리를 선택합니다.
Azure Boards에서 GitHub 계정 또는 조직에 처음으로 연결하는 경우 GitHub용 Azure Boards 앱을 설치합니다. 이 문서의 앞부분에서 연결을 확인합니다.
GitHub에서 Azure DevOps를 OAuth 앱 등록
OAuth를 사용하여 Azure DevOps를 GitHub Enterprise Server에 연결하려면 먼저 애플리케이션을 OAuth 앱 등록합니다. 자세한 내용은 OAuth 앱 만들기를 참조하세요.
Azure DevOps Services 등록
GitHub Enterprise 서버에 대한 웹 포털에 로그인합니다.
설정 >개발자 설정>Oauth 앱>새 OAuth 앱 엽니다.
등록 정보를 입력합니다.
홈페이지 URL의 경우 조직의 조직 URL을 지정합니다.
권한 부여 콜백 URL의 경우 다음 패턴을 사용하여 URL을 생성합니다.{Azure DevOps Services Organization URL}/_admin/oauth2/callback
예시:
https://dev.azure.com/fabrikam/_admin/oauth2/callback
애플리케이션 등록을 선택합니다.
등록된 OAuth 애플리케이션에 대한 클라이언트 ID 및 클라이언트 암호가 표시됩니다.
Azure DevOps Services에 OAuth 구성 등록
Azure DevOps Services에 대한 웹 포털에 로그인합니다.
조직에 GitHub Enterprise Oauth 구성을 추가합니다.
조직 설정에서 Oauth 구성 Oauth 구성> 추가를 선택합니다.
정보를 입력한 다음 만들기를 선택합니다.
GitHub Enterprise Server에 Azure DevOps Services 연결
Important
Azure DevOps Services를 GitHub Enterprise Server에 연결하려면 인터넷에서 GitHub Enterprise Server에 액세스할 수 있는지 확인합니다. Azure DNS가 GitHub Enterprise Server 이름을 확인할 수 있고 방화벽이 Azure Data Center IP 주소에서 액세스를 허용하는지 확인합니다. IP 주소 범위를 확인하려면 Microsoft Azure Data Center IP 범위를 참조 하세요. 연결 문제에 대한 일반적인 오류 메시지는 다음과 같습니다.
원격 이름을 확인할 수 없습니다. 'github-enterprise-server.contoso.com'
이 오류가 발생하면 서버의 접근성을 확인합니다. 자세한 내용은 Azure DNS FAQ를 참조하세요.
처음 연결하려면 프로젝트 설정>GitHub 연결>GitHub Enterprise Server를 선택합니다.
또는 새 GitHub 연결 대화 상자에서 GitHub Enterprise Server를 선택합니다.
인증 방법을 선택합니다.
OAuth를 사용하여 연결
Azure DevOps Services에서 OAuth 구성 등록의 4단계에서 설정한 구성을 선택한 다음 연결을 선택합니다.
개인용 액세스 토큰으로 연결
GitHub Enterprise 서버의 URL과 해당 서버에서 인식한 개인용 액세스 토큰 자격 증명을 입력합니다. 그런 다음 연결을 선택합니다.
사용자 이름 및 암호로 연결
GitHub Enterprise 서버의 URL과 해당 서버에서 인식한 관리자 계정 자격 증명을 입력한 다음, 연결을 선택합니다.
대화 상자에는 GitHub 관리 권한이 있는 모든 리포지토리가 나열됩니다. Mine과 All 사이를 전환하여 다른 사용자가 표시되는지 확인한 다음 추가할 항목을 확인할 수 있습니다. 완료되면 저장을 선택합니다.
팁
하나의 GitHub 조직에서 정의된 리포지토리에만 연결할 수 있습니다. 프로젝트를 다른 GitHub 조직에 정의된 다른 리포지토리에 연결하려면 다른 연결을 추가해야 합니다.
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 리포지토리와 통합은 지원되지 않습니다.
Azure Boards 조직 액세스 권한 부여
Azure Boards와 GitHub 간의 통합이 예상대로 작동하지 않는 경우 조직 액세스 권한을 부여했는지 확인합니다.
GitHub 웹 포털에서 프로필 메뉴에서 설정을 엽니다.
통합>권한 있는 OAuth 앱 Azure Boards에서 애플리케이션을>선택합니다.
조직 액세스에서 나타날 수 있는 문제를 해결합니다. 권한 부여를 선택하여 액세스 요청이 보류 중인 것으로 표시되는 모든 조직에 대한 액세스 권한을 부여합니다.
액세스 문제 해결
GitHub에 대한 Azure Boards 연결이 액세스 권한을 잃으면 사용자 인터페이스에 빨간색 X가 있는 경고 상태가 표시됩니다. 경고 위로 마우스를 가져가서 자격 증명이 더 이상 유효하지 않은지 확인합니다. 이 문제를 해결하려면 연결을 제거하고 새 연결을 만듭니다.
이 문제를 해결하려면 다음 항목을 고려하세요.
연결에서 OAuth를 사용하는 경우:
Azure Boards 애플리케이션은 리포지토리 중 하나에 대한 액세스가 거부되었습니다.
GitHub를 사용할 수 없거나 연결할 수 없습니다. 이러한 사용 불가는 서비스 중단 또는 온-프레미스 인프라/네트워크 문제로 인해 발생할 수 있습니다. 다음 링크에서 서비스 상태를 확인할 수 있습니다.
GitHub 리포지토리에 대한 연결을 삭제하고 다시 만듭니다. 이 연결을 다시 만들면 GitHub에서 Azure Boards를 다시 인증하라는 메시지가 표시됩니다.
연결에서 PAT를 사용하는 경우:
PAT가 해지되거나 필요한 권한 범위가 변경되어 충분하지 않을 수 있습니다.
사용자에게 GitHub 리포지토리에 대한 관리자 권한이 없을 수 있습니다.
PAT를 다시 만들고 토큰 범위에 필요한 권한이 포함되어 있는지 확인합니다.
repo, read:user, user:email, admin:repo_hook
끊어진 GitHub Enterprise Server 연결 해결
기존 GitHub Enterprise Server 연결을 사용하여 Azure DevOps Server에서 Azure DevOps Services로 마이그레이션한 경우 기존 연결이 예상대로 작동하지 않을 수 있습니다. GitHub와 연결된 콜백 URL이 더 이상 유효하지 않으므로 GitHub 내의 작업 항목 멘션이 지연되거나 Azure DevOps Services에 표시되지 않을 수 있습니다. 다음 해결 방법을 고려합니다.
연결을 제거하고 다시 만듭니다. GitHub Enterprise Server 리포지토리에 대한 연결을 제거하고 다시 만듭니다. Azure Boards 설명서에서 Connect에 제공된 단계의 순서를 따릅니다.
웹후크 URL 수정: GitHub의 리포지토리 설정 페이지로 이동하여 마이그레이션된 Azure DevOps 조직 URL을 가리키는 웹후크 URL을 편집합니다.
https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview
여러 Azure DevOps 조직에 연결
GitHub 리포지토리를 dev.azure.com/Contoso 및 dev.azure.com/Fabrikam 같은 여러 Azure DevOps 조직의 프로젝트에 연결하면 AB# 멘션으로 예기치 않은 결과가 발생할 수 있습니다. 작업 항목 ID는 Azure DevOps 조직에서 고유하지 않으므로 AB#12 는 Contoso 또는 Fabrikam의 작업 항목을 참조할 수 있습니다. 커밋 메시지 또는 끌어오기 요청에 작업 항목이 언급되면 두 조직 모두 일치하는 ID를 사용하여 작업 항목에 연결하려고 시도하여 혼동을 일으킬 수 있습니다.
이 문제를 방지하려면 단일 GitHub 리포지토리를 하나의 Azure DevOps 조직에만 연결합니다.
참고 항목
GitHub용 Azure Boards 앱을 사용하여 연결하는 경우 앱은 여러 조직에 대한 연결을 차단합니다. GitHub 리포지토리가 잘못된 Azure DevOps 조직에 연결된 경우 해당 조직의 소유자에게 문의하여 올바른 Azure DevOps 조직에 리포지토리를 추가하기 전에 연결을 제거합니다.
선택한 작업 항목 유형에 대한 XML 정의 업데이트
조직에서 호스트된 XML 또는 온-프레미스 XML 프로세스 모델을 사용하여 작업 추적 환경을 사용자 지정하고 작업 항목 양식의 개발 섹션에서 GitHub 링크 형식에 대한 링크를 확인하고 보는 경우 작업 항목 형식에 대한 XML 정의를 업데이트합니다.
예를 들어 사용자 스토리와 버그를 GitHub 커밋에 연결하고 개발 섹션에서 요청을 끌어오려면 사용자 스토리 및 버그에 대한 XML 정의를 업데이트합니다.
호스트된 XML 프로세스 모델에 제공된 작업 시퀀스에 따라 XML 정의를 업데이트합니다. 각 작업 항목 유형에 대해 섹션을 Group Label="Development"
찾고 코드 구문에 다음 두 줄을 추가하여 외부 링크 형식인 GitHub Commit 및 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>
FAQ
Q: Azure DevOps의 일부 사용자에게는 GitHub ID가 있습니다. 조직에 새 GitHub 사용자로 추가해야 하나요?
A: 아니요. 사용자에게 로그아웃하도록 요청한 다음, 새 브라우저 세션에서 GitHub 자격 증명을 사용하여 조직에 다시 로그인합니다. 이 작업은 GitHub ID를 설정합니다.
Q: 조직 관리자이고 GitHub 사용자를 초대하는 정책을 사용하도록 설정했습니다. 새 GitHub 사용자를 초대할 수 없는 이유는 무엇인가요?
A: 설정을 변경한 후 Azure DevOps에서 로그아웃한 다음, 새 브라우저 세션에서 GitHub 자격 증명을 사용하여 조직(dev.azure.com/{organizationName}
또는 organizationName.visualstudio.com
)에 다시 로그인합니다.
Q: GitHub 자격 증명으로 로그인했지만 GitHub 사용자를 초대할 수 없는 이유는 무엇인가요?
A: 조직 또는 프로젝트 관리자만 새 사용자를 조직에 참여하도록 초대할 수 있습니다. 새 사용자를 추가하는 데 필요한 권한이 없을 수 있습니다. 관리자와 협력하여 필요한 권한을 얻거나 사용자를 추가하도록 요청합니다.