Slack용 GitHub 통합을 통해 귀하와 귀하의 팀은 Slack 채널에서 바로 GitHub 프로젝트에 대한 완전한 가시성을 확보할 수 있습니다. 여기에서 아이디어를 생성하고, 문제를 분류하고, 다른 팀과 협력하여 프로젝트를 진행할 수 있습니다. 이 통합은 GitHub에서 구축하고 유지 관리하는 오픈 소스 프로젝트입니다.
이 앱은 공식적으로 GitHub.com(GitHub Enterprise 클라우드 호스팅 서비스 포함) 및 Slack.com을 지원합니다.
Slack.com과의 GHES 통합은 이제 GHES 3.8에서 GA됩니다. Slack을 GHES와 통합하는 자세한 단계는 여기에서 확인할 수 있습니다.
Slack용 GitHub 통합을 설치합니다. Slack 작업 공간에 로그인하면 앱에 액세스 권한을 부여하라는 메시지가 표시됩니다.
앱이 설치된 후 /invite @github
사용하여 관련 채널에 GitHub 통합을 추가하면 작업공간에서 서식 있는 텍스트로 렌더링된 GitHub 문제, 풀 요청 및 코드에 대한 링크의 미리 보기를 볼 수 있습니다.
앱을 설치하면 이제 개인 앱으로 GitHub 앱과 상호 작용하거나 채널에서 액세스할 수 있습니다. 앱이 작업 영역에 설치되면 모든 공개 채널에서 GitHub 앱이 활성화됩니다. 비공개 채널의 경우 /invite @github
명시적으로 초대해야 합니다.
이제 Slack과 GitHub 사용자 계정이 연결되었습니다. GitHub에 연결하라는 메시지가 표시됩니다. 이는 앱에 액세스하는 데 필요한 기본 단계입니다. 또는 /github signin
실행하여 연결할 수도 있습니다.
연결하면 다음 단계와 사용 가능한 기능 목록이 표시됩니다.
/github
슬래시 명령은 조직 또는 저장소의 활동을 구독하는 데 사용할 수 있는 subscribe
인수도 허용합니다. /github subscribe <organization>/<repository>
.
원래 앱에 "모든 저장소"에 대한 액세스 권한을 부여하고 Slack용 GitHub 통합을 설치한 후 GitHub에 새 개인 저장소를 생성한 경우 /github subscribe
명령이 새 저장소에서 자동으로 작동합니다. 리포지토리의 하위 집합에 앱을 설치한 경우 앱은 새 리포지토리에 앱을 설치하라는 메시지를 표시합니다.
/github
슬래시 명령은 unsubscribe
도 지원합니다. 저장소에서 알림 구독을 취소하려면 /github unsubscribe <organization>/<repository>
사용하세요.
앱 액세스 권한을 부여하면 GitHub 및 Slack 계정에 다음 권한을 부여하게 됩니다.
권한 범위 | 왜 우리에게 필요한가? |
---|---|
귀하와 앱 간의 비공개 대화에 액세스하세요 | 지침을 메시지로 보내드립니다. |
메시지에서 GitHub.com 링크 보기 | github.com 에서 풍부한 링크를 렌더링하려면 |
메시지에 GitHub.com 링크 미리보기 추가 | github.com 에 대한 풍부한 링크를 렌더링하려면 |
슬래시 명령 추가 | Slack 작업 공간에 /github 슬래시 명령을 추가하려면 |
워크스페이스 또는 조직의 이름, 이메일 도메인, 아이콘을 봅니다. | 설정한 구독을 저장하려면 |
앱으로 메시지 게시 | GitHub, Slack에서 발생하는 활동을 알리기 위해 |
권한 범위 | 왜 우리에게 필요한가? |
---|---|
코드에 대한 읽기 액세스 | Slack에서 코드 조각을 렌더링하려면 |
작업, 커밋 상태, 검사, 토론, 문제, 메타데이터, 풀 요청 및 저장소 프로젝트에 대한 읽기 액세스 권한입니다. | Slack에서 공유된 링크의 미리보기를 렌더링하려면 |
작업, 문제, 배포 및 풀 요청에 대한 쓰기 액세스 | /github 명령을 사용하여 Slack에서 조치를 취하거나 메시지에서 직접 조치를 취하려면 |
리포지토리에서 앱은 구독한 리포지토리의 풀 요청 및 문제에 대한 open
, close
및 re-open
이벤트를 알립니다. 또한 리포지토리의 기본 분기에 대한 push
직접 알립니다.
Slack 채널과 관련된 활동을 구독하고 프로젝트에 덜 도움이 되는 활동을 구독 취소하여 알림을 사용자 정의할 수 있습니다.
설정은 /github
슬래시 명령으로 구성됩니다.
/github subscribe owner/repo [feature]
/github unsubscribe owner/repo [feature]
이는 기본적으로 활성화되어 있으며 /github unsubscribe owner/repo [feature]
명령을 사용하여 비활성화할 수 있습니다.
issues
- 공개 또는 종료된 이슈pulls
- 신규 또는 병합된 풀 요청과 "검토 준비 완료"로 표시된 초안 풀 요청commits
- 기본 브랜치(보통 main
)의 새 커밋releases
- 게시된 릴리스deployments
- 배포 상태 업데이트. 이는 기본적으로 비활성화되어 있으며 /github subscribe owner/repo [feature]
명령으로 활성화할 수 있습니다.
workflows
- 작업 워크플로 실행 알림reviews
- 풀 리퀘스트 리뷰comments
- 이슈 및 끌어오기 요청에 대한 새로운 댓글branches
- 생성 또는 삭제된 브랜치commits:*
- 모든 브랜치에 푸시된 모든 커밋+label:"your label"
- 레이블을 기준으로 문제, 끌어오기 요청 및 댓글을 필터링합니다.discussions
- 작성되었거나 답변된 토론여러 설정을 한 번에 구독하거나 구독 취소할 수 있습니다. 예를 들어 풀 요청 검토 및 댓글에 대한 활동을 활성화하려면 다음을 수행하세요.
/github subscribe owner/repo reviews comments
다시 끄려면 다음 단계를 따르세요.
/github unsubscribe owner/repo reviews comments
분기 필터를 사용하면 커밋 알림을 필터링할 수 있습니다. 기본적으로 커밋 기능을 구독하면 기본 브랜치(즉, 메인)에 대한 알림을 받게 됩니다. 그러나 특정 분기, 분기 패턴 또는 모든 분기를 필터링하도록 선택할 수 있습니다.
/github subscribe org/repo commits
./github subscribe org/repo commits:*
모든 브랜치에 대한 커밋 알림을 확인하세요./github subscribe org/repo commits:myBranch
특정 브랜치의 커밋 알림을 확인하세요./github subscribe org/repo commits:users/*
브랜치 패턴의 커밋 알림을 확인하세요.`@github unsubscribe org/repo commits를 사용하여 커밋 구독을 취소할 수 있습니다.
참고 : 이전에는 모든 분기를 나타내기 위해 commits:all
사용했을 수 있습니다. 'all'은 더 이상 예약어가 아닙니다. 앞으로는 모든 지점을 나타내기 위해 '*'를 사용해야 합니다. 이전에 'commits:all'로 이미 구성한 경우 걱정하지 마십시오. 커밋 구성을 업데이트할 때까지 계속 작동합니다.
라벨 필터를 사용하면 허용 된 필수 라벨 목록을 기반으로 수신 이벤트를 필터링할 수 있습니다.
필수 라벨 필터의 영향을 받는 이벤트 유형에 대한 개요입니다.
이벤트 | 필터링됨 |
---|---|
당기다 | ✅ 예 |
코멘트(홍보 및 이슈) | ✅ 예 |
문제 | ✅ 예 |
검토 | ✅ 예 |
커밋/푸시 | 아니요 |
나뭇가지 | 아니요 |
다음을 사용하여 필터를 만듭니다.
/github subscribe owner/repo +label:"priority:HIGH"
그러면 값이 priority:HIGH
인 필수 레이블 필터가 생성됩니다. 필터를 지원하는 수신 이벤트는 해당 레이블이 없으면 삭제됩니다.
기존 필터를 업데이트하려면 새 필터를 입력하면 이전 필터가 업데이트됩니다. 현재는 하나의 필터만 지원됩니다. 향후에는 여러 필터가 지원될 수 있습니다.
/github subscribe owner/repo +label:"teams/designers"
이제 기존 필터 priority:HIGH
teams/designers
로 대체되었습니다.
필터 제거는 unsubscribe
통해 가능합니다.
/github unsubscribe owner/repo +label:teams/designers
이렇게 하면 teams/designers
필터가 제거됩니다.
현재 활성 필터를 보려면 다음을 사용하세요.
/github subscribe list features
라벨에는 특정 특수 문자가 포함되는 것이 일반적입니다. 따라서 라벨 필터에 가장 일반적인 특수 문자에 대한 지원을 추가했습니다. 다음은 몇 가지 예입니다.
label:"priority:HIGH"
label:"teams/designers"
label:"DO NOT MERGE"
label:"very important"
label:":construction: WIP"
대부분의 라벨은 원활하게 작동하며, 여기에는 Slack과 Github에서 기본적으로 제공하는 모든 이모티콘이 포함됩니다. 그러나 다음과 같은 드문 경우에 어려움을 겪을 수 있습니다.
:foo:
로 인코딩되지 않은 멀티바이트 문자,
예약되었습니다"워크플로" 기능을 사용하여 채널이나 개인 앱에서 GitHub Actions 워크플로 실행 알림을 구독할 수 있습니다.
각각의 모든 워크플로 실행 알림에 대한 알림을 받는 것은 시끄러울 수 있습니다. 따라서 우리는 귀하의 요구 사항에 따라 알림을 필터링할 수 있는 기능을 제공하고 있습니다. 이름, 이벤트, 행위자 및/또는 분기를 기준으로 작업 워크플로 알림을 필터링할 수 있습니다. 아래와 같이 알림을 필터링할 수 있습니다.
/github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"actor name"}
아래 예와 같이 각 이벤트에 대해 여러 항목을 쉼표로 구분된 목록으로 전달할 수 있습니다. /github subscribe org/repo workflows:{event:"pull_request","push" branch:"main","dev" actor:"ashokirla"}
기본적으로 필터를 전달하지 않고 워크플로 알림을 구성하면 기본 분기를 대상으로 하는 풀 요청을 통해 트리거되는 워크플로에 대해 구성됩니다. 하나 이상의 항목을 전달할 수 있습니다.
아래 명령을 실행하여 워크플로 알림 구독을 취소할 수 있습니다. /github unsubscribe org/repo workflows
위 알림을 받으려면 Slack의 GitHub 앱을 통해 작업 이벤트를 수신할 수 있는 액세스 권한을 부여해야 합니다. 조직의 workflows
기능을 처음 구독하려고 하면 구독하라는 메시지가 표시됩니다.
배포에 대한 별도의 알림을 지원합니다. 이러한 배포는 작업 또는 배포 API를 사용하는 외부 소스에서 발생할 수 있습니다.
다음을 실행하여 이 기능을 활성화/비활성화할 수 있습니다.
/github subscribe/unsubscribe org/repo deployments
참고: GitHub 작업을 사용 중이고 환경에 대한 배포를 추적하려는 경우 대신 전체 그림을 보여주고 배포를 승인할 수 있는 기능을 제공하는 새로운 workflows
기능을 사용하는 것이 좋습니다.
Slack에서 저장소를 구독하면 이제 참조되고 주의가 필요한 알림에 자신이 언급된 것을 볼 수 있습니다.
문제, PR, 배포에 대한 알림을 받을 때 귀하가 언급되는 경우는 다음과 같습니다.
그리고 가장 좋은 점은 이제 Slack의 '멘션 및 반응' 섹션의 일부로 언급된 GitHub 알림 요약을 볼 수 있다는 것입니다.
멘션은 Slack 작업 공간에서 GitHub 앱에 로그인하는 경우에만 작동합니다( /github signin
슬래시 명령 사용). GitHub ID로 GitHub 앱에 로그인하면 이를 Slack ID와 매핑하고 GitHub 알림에서 귀하가 언급될 때마다 Slack에서 핑을 보냅니다.
참고 : GitHub 앱을 사용하는 Slack 작업 공간이 여러 개인 경우 멘션은 가장 최근에 GitHub 앱에 로그인한 작업 공간에서만 작동합니다.
문제 및 PR에 대한 알림은 상위 카드 아래에 응답으로 그룹화됩니다. 상위 카드에는 제목, 설명, 담당자, 검토자, 라벨 및 수표와 같은 기타 메타데이터와 함께 발행/PR의 최신 상태가 항상 표시됩니다. 스레딩은 컨텍스트를 제공하고 채널의 공동 작업을 개선하는 데 도움이 됩니다.
이렇게 하면 채널의 소음이 줄어듭니다. 그리고 우리의 멘션 기능은 대화 스레드에 관련된 사람들에게만 알림이 전달되도록 보장합니다. 상위 카드만 채널에 게시되고 나머지 알림은 스레드에 응답으로 추가됩니다. 그러나 문제 닫기/다시 열기와 같은 상태 변경 활동은 스레드에 회신으로 추가되고 그룹이 관심을 가질 수 있으므로 채널에도 게시됩니다.
댓글 및 리뷰 알림을 구독했고 문제의 참여자만이 아니라 채널 구성원에게도 이를 표시하도록 하려면 다음을 실행하여 동일한 내용을 수신하도록 선택할 수 있습니다.
/github subscribe org/repo comments:"channel"
및
/github subscribe org/repo reviews:"channel"
참고: 기본적으로 댓글과 리뷰는 스레드에만 표시됩니다. 그리고 주석도 채널로 흐르기 시작하도록 하려면 위 명령을 명시적으로 실행해야 합니다.
댓글에 언급된 문제/특례의 참가자이거나 담당자/검토자로 추가된 경우, 언급 기능을 통해 Slack의 스레드 섹션에서 알림을 받을 수 있습니다. 주의가 필요한 문제/PR을 위해 채널로 이동할 필요는 없습니다. 필요한 부분에 집중할 수 있으며 당사의 스레딩 기능을 통해 전체 그림을 얻을 수 있으며 거기에서 직접 조치를 취할 수 있습니다. 이는 주의가 필요한 문제/PR을 놓치지 않도록 보장하는 매우 강력한 기능입니다.
그러나 스레드에서 문제/PR 업데이트를 볼 필요가 없다고 절대적으로 믿고 그것이 소음이라고 생각하는 경우 더 이상 스레드에 대한 핑이나 항목이 발생하지 않도록 하는 빠른 해결 방법을 제안할 수 있습니다. 우리 GitHub 앱은 귀하가 최신 GitHub에 로그인한 Slack 작업 공간에서만 귀하를 언급합니다. 가장 적게 사용되는 Slack 작업 공간이나 개인 Slack 작업 공간으로 이동하여 GitHub 앱을 사용하여 GitHub에 로그인할 수 있습니다. 그러면 다른 기본 작업 공간에 있는 스레드에서 핑이 울리거나 업데이트가 표시되지 않습니다.
스레딩 기능을 원하지 않거나 아직 새 모델에 적응할 준비가 되지 않은 경우 유연성을 제공하고 싶습니다. 채널에서 문제 및 풀 요청 알림에 대한 스레딩을 비활성화/활성화할 수 있습니다. 스레딩이 필요하지 않은 채널로 이동하여 다음 명령을 실행하면 됩니다. /github settings
해당 채널에 대한 스레딩을 비활성화/활성화하는 옵션이 표시됩니다. 채널에 속한 모든 구성원이 이 작업을 수행할 수 있습니다.
Slack 대화는 종종 결정과 실행 가능한 시사점으로 이어집니다. 이제 Slack에서 다음 단계를 더 쉽게 시작할 수 있습니다.
문제에 대한 작업을 수행하기 위해 더 이상 GitHub로 전환하거나 리디렉션할 필요가 없습니다. Slack과 같이 협업하는 곳에서 실제로 이슈를 생성하고 관리할 수 있습니다.
이제 협업하는 곳에서 바로 클릭 한 번으로 이슈를 생성할 수 있습니다. 모든 채널/개인 앱/그룹 또는 직접 채팅에서 이제 메시지 오른쪽 상단에 있는 세 개의 점(...)을 클릭하고 목록에서 'Create an Issue GitHub'를 선택할 수 있습니다. 그러면 이슈 생성 대화상자가 시작됩니다.
또는 다른 두 가지 방법으로 Slack에서 이슈를 생성할 수 있습니다.
/github open
명령을 실행하여 이슈 생성 흐름을 시작할 수도 있습니다. 참고: 작업을 수행하려면 로그인해야 하며 리포지토리에 필요한 액세스 권한이 있어야 합니다.
채팅에서 직접 이슈의 수명주기를 관리할 수도 있습니다. 리포지토리를 구독하고 문제 알림을 받거나 Slack에서 새 문제를 생성하면 이제 클릭 유도 버튼 댓글, 편집, 닫기/다시 열기가 포함된 문제 카드가 표시됩니다. 채팅에서 직접 이러한 작업을 수행할 수 있습니다.
참고: Slack에서 이슈 카드에 대한 작업을 수행하면 구독을 통해 해당 활동을 구독하지 않은 경우에도 응답이 스레드에 대한 응답으로 추가됩니다. 하지만 구독하면 Slack 외부에서 발생하는 활동에 대한 알림도 받게 됩니다.
사용자가 이슈 및 끌어오기 요청 , 직접 연결된 댓글 , 줄 번호가 있는 코드 blob , Slack의 조직, 저장소 및 사용자 에 대한 GitHub 링크를 게시하면 링크 미리보기가 표시됩니다.
다음과 같은 경우 링크 미리보기가 표시되지 않습니다.
github.com
의 링크 미리보기가 비활성화되었습니다/invite @github
로 해결할 수 있습니다.예약된 알림은 사용자가 주의가 필요한 가장 중요한 검토 요청에 집중할 수 있도록 하는 데 사용됩니다. 풀 요청에 대한 예약된 미리 알림은 지정된 시간에 검토가 필요한 미결 풀 요청과 함께 Slack에서 메시지를 보냅니다. 예를 들어, 매일 아침 오전 10시에 Slack에서 귀하 또는 귀하의 팀 중 한 명이 검토해야 하는 풀 요청 메시지를 보내도록 예약된 알림을 설정할 수 있습니다.
귀하(개인 알림), 팀 및 조직을 위해 예약된 알림을 구성할 수 있습니다.
개인 예약 알림은 Slack의 GitHub 개인 앱의 일부로 구성됩니다. 귀하가 소속된 조직의 풀 요청에 대한 개인 또는 팀 수준 검토 요청에 대해 예약된 알림을 설정할 수 있습니다. 개인 미리 알림의 일부로 끌어오기 요청에 대한 실시간 알림을 구성할 수도 있습니다. 자세한 내용은 여기에서 확인할 수 있습니다.
팀이 작업을 완벽하게 파악할 수 있도록 Slack 채널의 일부로 보류 중인 풀 요청에 대한 예약된 알림을 구성할 수 있습니다. 특정 Slack 채널에 대해 조직이나 팀을 위한 예약된 알림을 구성할 수 있습니다. 예약된 알림 구성에 대한 자세한 내용을 보려면 조직 수준 알림 및 팀 수준 알림을 방문해야 합니다.
Slack Enterprise Grid를 사용 중이고 조직에 GitHub를 사용해야 하는 여러 Slack 작업 공간이 있는 경우 Slack Enterprise Grid에서 GitHub 앱을 설치하고 관리할 수 있습니다. Slack Enterprise 그리드의 조직 소유자 및 조직 관리자는 다음을 수행할 수 있습니다.
워크스페이스 멤버의 GitHub 앱 설치 요청을 관리하세요.
기본적으로 향후 모든 작업 영역에서 GitHub 앱을 사용할 수 있도록 합니다.
Enterprise 그리드 조직 관리자와 조직 소유자만 그리드 수준에서 GitHub 앱을 설치하고 관리할 수 있습니다.
여기를 클릭하고 설치할 Enterprise Grid 조직을 선택하여 조직 수준에서 GitHub 앱을 설치할 수 있습니다.
우리는 GHES 3.8을 사용하여 Slack과 GHES 통합을 위한 GA를 발표합니다.
이 통합을 통해 이제 GHES 인스턴스의 리포지토리를 구독하고 Slack에서 문제, PR, 커밋 및 배포에 대한 실시간 업데이트를 받을 수 있습니다. 또한 Slack에서 직접 댓글 달기, 문제 열기/닫기, 배포 승인 등의 작업을 수행할 수도 있습니다.
GHES 3.8부터 GHES 서버와 함께 번들로 제공되는 전용 ChatOps 서비스를 제공하고 있습니다. 그리고 Slack 작업 공간과 통합하도록 선택할 수도 있습니다. GHES 통합을 통해 다음과 같은 이점을 얻을 수 있습니다.
완전히 안전하고 확장 가능한 환경: 모든 구독 정보와 기타 메타데이터는 GHES 설정 내에 유지됩니다. 따라서 외부 서비스로 데이터가 흐르는 것에 대해 걱정할 필요가 없습니다.
GHES와 Slack 간의 양방향 연결: GHES 통합은 단순한 알림 서비스가 아닙니다. 또한 채팅에서 직접 작업을 수행할 수도 있습니다. 따라서 Slack에서 GHES 인스턴스에 액세스할 수 있는지 확인하는 데 필요한 유일한 전제 조건입니다. 소켓 모드가 활성화되면 Slack의 인바운드 액세스만 필요합니다.
앱 스토어에 표시되는 기존 GitHub 앱은 GHEC(호스팅 GitHub) 통합에만 사용할 수 있습니다. GHES 인스턴스를 Slack과 통합하려면 비공개 GHES 앱을 구성해야 합니다. GHES와 통합하는 단계는 다음과 같습니다.
<instancename>/_slack/
또는 slack.<instancename>
으로 이동하여 작업 공간에 앱을 설치하세요.현재 프록시는 지원되지 않습니다.
질문이나 우려 사항이 있는 경우 여기에 문제를 기록하여 문의해 주세요. 또는 GitHub의 지원 양식을 작성하시면 요청이 GitHub의 해당 팀으로 전달됩니다.
이 저장소는 코드 기여를 받아들이지 않습니다. GitHub 및 Slack용 통합을 위해 실행 중인 현재 코드는 GitHub 인프라에서 서비스를 실행하는 데 필요하고 현재로서는 오픈 소스화할 수 없는 특정 코드를 포함하고 있기 때문에 이 저장소에 있는 코드와 크게 다릅니다. 우리는 고객으로부터 피드백을 얻기 위해 이 저장소의 이슈를 계속 사용할 것입니다 . |
이 프로젝트는 MIT 라이선스 조건에 따라 오픈 소스로 제공됩니다.
GitHub 로고를 사용할 때는 GitHub 로고 지침을 따르세요.