Azure Repos와 Slack

Azure DevOps Services

Slack을 사용하는 경우 Slack용 Azure Repos 앱을 사용하여 Azure Repos 리포지토리를 쉽게 모니터링할 수 있습니다. 코드가 푸시/체크 인될 때마다 그리고 PR(끌어오기 요청)이 만들어지거나, 업데이트되거나, 병합이 시도될 때마다 채널에서 알림을 받도록 구독을 설정하고 관리할 수 있습니다. 이 앱은 Git 및 TFVC(Team Foundation 버전 제어) 이벤트를 모두 지원합니다.

알림 이미지

다음 방법을 알아보려면 이 문서를 읽어보세요.

  • Slack 작업 영역에 Azure Repos 앱 추가
  • 리포지토리에 Azure Repos 앱 연결
  • Slack 채널에서 리포지토리 관련 이벤트에 대한 구독 관리
  • 필터를 효과적으로 사용하여 구독 사용자 지정
  • 프라이빗 Slack 채널에서 알림 받기

필수 구성 요소

참고

  • 알림은 현재 직접 메시지 내에서 지원되지 않습니다.
  • 현재 Slack용 Azure Repos 앱을 Azure DevOps Services 호스트되는 프로젝트에만 연결할 수 있습니다.

Slack 작업 영역에 Azure Repos 앱 추가

  1. Azure Repos Slack 앱으로 이동하여 Slack 작업 영역에 Azure Repos 앱을 설치합니다.

  2. 추가되면 다음 이미지와 같이 앱에서 환영 메시지가 표시됩니다.

    환영 메시지

  3. Slack 핸들을 /azrepos 사용하여 앱과 상호 작용합니다. 명령의 전체 목록은 이 문서의 명령 참조 섹션에 제공됩니다.

리포지토리에 Azure Repos 앱 연결

  1. Slack 작업 영역에 앱이 설치되면 명령을 사용하여 /azrepos signin Azure Repos 연결하고 인증합니다.

    로그인 프롬프트 이미지

  2. 프로젝트의 모든 Git 리포지토리 모니터링을 시작하려면 채널 내에서 다음 슬래시 명령을 사용합니다.

    /azrepos subscribe [project url]
    

    프로젝트 URL은 프로젝트 내의 모든 페이지에 있을 수 있습니다(리포지토리에 대한 URL 제외).

    예를 들면 다음과 같습니다.

    /azrepos subscribe https://dev.azure.com/myorg/myproject/
    

    다음 명령을 사용하여 특정 리포지토리를 모니터링할 수도 있습니다.

    /azrepos subscribe [repository url]
    

    리포지토리 URL은 리포지토리 이름이 있는 리포지토리 내의 모든 페이지일 수 있습니다.

    예를 들어 Git 리포지토리의 경우 다음을 사용합니다.

    /azrepos subscribe https://dev.azure.com/myorg/myproject/_git/myrepository
    

    TFVC 리포지토리의 경우 다음을 사용합니다.

    /azrepos subscribe https://dev.azure.com/myorg/myproject/_versionControl
    

    참고

    퍼블릭 리포지토리만 구독할 수 있습니다.

  3. 구독 명령은 기본 구독을 시작합니다. Git 리포지토리의 경우 채널은 끌어오기 요청 생성 이벤트(대상 분기 = master 포함)를 구독하고 TFVC 리포지토리의 경우 채널이 체크 인된 코드 이벤트를 구독합니다.

    기본 구독 만들기 메시지

구독 관리

채널에 대한 구독을 보고, 추가하고, 제거하려면 다음 명령을 사용합니다 subscriptions .

/azrepos subscriptions    

이 명령은 채널에 대한 모든 현재 구독을 나열하고 새 구독을 추가하거나 기존 구독을 제거할 수 있습니다. 구독을 추가할 때 다음 섹션에 설명된 대로 다양한 필터를 사용하여 받는 알림을 사용자 지정할 수 있습니다.

[! 참고] 팀 관리자는 프로젝트 관리자가 만든 구독을 제거하거나 수정할 수 없습니다.

구독 보기

필터를 효과적으로 사용하여 구독 사용자 지정

사용자가 명령을 사용하여 /azrepos subscribe 리포지토리를 구독하면 기본 구독이 만들어집니다. 사용자는 이러한 구독을 사용자 지정해야 하는 경우가 많습니다. 예를 들어 사용자는 PR에 특정 검토자가 있는 경우에만 알림을 받을 수 있습니다.

다음 단계에서는 구독을 사용자 지정하는 방법을 보여 줍니다.

  1. /azrepos subscriptions 명령을 실행합니다.
  2. 구독 목록에서 원치 않거나 수정해야 하는 구독이 있는 경우(예: 채널에서 노이즈 만들기) 제거 단추를 선택합니다.
  3. 구독 추가 단추를 선택합니다.
  4. 필요한 리포지토리 및 원하는 이벤트를 선택합니다.
  5. 적절한 필터를 선택하여 구독을 사용자 지정합니다.

예: 내 팀이 PR에 대한 검토자 목록에 있는 경우에만 알림 받기

검토자에게 내 팀이 있습니다.

예: 정책 위반으로 인해 병합 시도가 실패하는 경우 알려주세요.

병합 시도 실패 – 정책 위반으로 인해

참고

  • 모든 필터는 일반적으로 드롭다운입니다. 그러나 드롭다운에 100개 이상의 항목이 있는 경우 사용자에게 수동으로 값을 입력하라는 메시지가 표시됩니다.
  • TFVC 코드 체크 인 이벤트의 경우 경로 아래 필터는 형식 $/myproject/path이어야 합니다.

끌어오기 요청 URL 미리 보기

사용자가 PR의 URL을 붙여넣으면 미리 보기가 다음 이미지의 URL과 같이 표시됩니다. 이렇게 하면 PR 관련 대화의 컨텍스트와 정확도를 유지하는 데 도움이 됩니다.

URL 풀기

이 기능이 작동하려면 사용자가 로그인해야 합니다. 로그인하면 이 기능은 작업 영역의 모든 채널에서 작동합니다.

채널에서 구독 및 리포지토리 제거

  • 대부분의 경우 사용자는 리포지토리 및 구독을 제거하여 채널을 클린 합니다. 아래 명령을 사용하여 동일한 작업을 수행합니다.

      /azrepos unsubscribe all [project url]
    

    예를 들면 다음과 같습니다.

      /azrepos unsubscribe all https://dev.azure.com/myorg/myproject
    

이 명령은 프로젝트의 모든 리포지토리와 관련된 모든 구독을 삭제하고 채널에서 리포지토리를 제거합니다. 프로젝트 관리자만 이 명령을 실행할 수 있습니다.

명령 참조

다음 표에는 Slack 채널에서 사용할 수 있는 모든 /azrepos commands 항목이 나열되어 있습니다.

슬래시 명령 기능
/azrepos 구독 [리포지토리 URL/ 프로젝트 URL] 리포지토리 또는 프로젝트의 모든 리포지토리를 구독하여 알림을 받습니다.
/azrepos 구독 이 채널에 대한 구독 추가 또는 제거
/azrepos signin Azure Repos organization 로그인
/azrepos 로그아웃 Azure Repos organization 로그아웃
/azrepos 피드백 문제 보고 또는 기능 제안
/azrepos unsubscribe all [project url] 채널에서 모든 리포지토리(프로젝트에 속) 및 관련 구독 제거

프라이빗 채널의 알림

Azure Repos 앱은 개인 채널의 리포지토리 이벤트도 모니터링하는 데 도움이 될 수 있습니다. 를 사용하여 /invite @azrepos개인 채널에 봇을 초대해야 합니다. 게시하면 공개 채널과 동일한 방식으로 알림을 설정하고 관리할 수 있습니다.

문제 해결

Slack용 Azure Repos 앱을 사용할 때 다음과 같은 오류가 발생하는 경우 이 섹션의 절차를 따릅니다.

죄송합니다. 오류가 발생했습니다. 다시 시도하세요.

Azure Repos 앱은 OAuth 인증 프로토콜을 사용하며, organization 사용하도록 설정하려면 OAuth를 통한 타사 애플리케이션 액세스가 필요합니다. 이 설정을 사용하려면 조직 설정>보안>정책으로 이동하고 OAuth를 통해 타사 애플리케이션 액세스를 설정하여 organization 설정을 기로 설정합니다.

organization 설정에 대해 OAuth를 통해 타사 애플리케이션 액세스 사용

구성하지 못했습니다. organization '{organization name}'이 있고 충분한 권한이 있는지 확인하세요.

브라우저를 사용하여 Azure DevOps https://aka.ms/VsSignout 에서 로그아웃합니다.

In private 또는 incognito 브라우저 창을 열고 로 이동하여 https://aex.dev.azure.com/me 로그인합니다. 왼쪽 프로필 아이콘 아래의 드롭다운에서 구독하려는 리포지토리가 포함된 organization 포함하는 디렉터리를 선택합니다.

프로젝트가 포함된 organization 포함된 디렉터리를 선택합니다.

동일한 브라우저에서 새 탭을 시작하고 로 이동하여 https://slack.com작업 공간에 로그인합니다(웹 클라이언트 사용). /azrepos signout 명령 뒤에 명령을 실행합니다/azrepos signin.

Sign in 단추를 선택하면 다음 예제와 같은 동의 페이지로 리디렉션됩니다. 전자 메일 옆에 표시된 디렉터리가 이전 단계에서 선택한 디렉터리와 동일한지 확인합니다. 로그인 프로세스를 수락하고 완료합니다.

요청된 앱 권한에 대한 동의

이러한 단계가 인증 문제를 resolve 않는 경우 Developer Community 문의하세요.