GitHub를 Mattermost에 연결
Mattermost v12.0요약
GitHub 코드 리포지터리와 커뮤니케이션 플랫폼 간의 컨텍스트 전환을 줄이고 집중력을 높이기 위해 GitHub와 Mattermost를 연동하세요. Mattermost 시스템 관리자는 다음 단계를 수행하여 GitHub 연동을 배포해야 합니다.
사용 가능 플랜: Entry, Professional, Enterprise, Enterprise Advanced
GitHub 코드 리포지터리와 커뮤니케이션 플랫폼 간의 컨텍스트 전환을 줄이고 집중력을 높이기 위해 GitHub와 Mattermost를 연동하세요. 커밋, 풀 리퀘스트, 이슈 등에 대한 실시간 업데이트를 Mattermost 채널에서 직접 받아 팀이 집중력 있게 작업을 이어나갈 수 있도록 합니다.

배포#
Mattermost 시스템 관리자는 다음 단계를 수행하여 GitHub 연동을 배포해야 합니다.
연동 설치#
- Mattermost에서 제품 메뉴
를 열고 앱 마켓플레이스를 선택합니다.
- GitHub를 검색하거나 스크롤하여 찾은 후 설치를 선택합니다.
연동 설정#
내장 설정 마법사(권장) 또는 수동 구성 단계를 따라 GitHub 연동을 구성할 수 있습니다.
GitHub 연동을 구성하는 권장 방법은 내장 설정 마법사를 사용하는 것입니다. 마법사는 GitHub에서 OAuth 앱 및 웹훅 만들기를 포함한 각 구성 단계를 안내합니다.
- 모든 Mattermost 채널에서
/github setup슬래시 명령어를 실행합니다. - 대화형 프롬프트를 따라 설정을 완료합니다.
마법사는 다음 과정을 안내합니다:
- GitHub에서 OAuth 앱 만들기 및 구성
- GitHub와 Mattermost 간의 웹훅 연결 설정
- 팀에 연동 공지
다음 하위 명령어를 사용하여 언제든지 개별 설정 단계를 실행할 수도 있습니다:
/github setup oauth: GitHub에서 OAuth2 애플리케이션을 구성합니다./github setup webhook: GitHub에서 Mattermost로 웹훅을 만듭니다./github setup announce: 지정된 채널에 연동 가용성을 공지합니다.
설정 마법사 대신 수동으로 연동을 구성하려면 아래 단계를 따르세요.
GitHub에서 OAuth 앱 등록
- https://github.com/settings/applications/new로 이동하여 GitHub에 OAuth 앱을 등록합니다.
- 다음 값을 설정합니다:
- Application name:
Mattermost GitHub Plugin -- Homepage URL:
https://github.com/mattermost/mattermost-plugin-github- Authorization callback URL:
https://YOUR-MATTERMOST-URL.COM/plugins/github/oauth/complete.https://YOUR-MATTERMOST-URL.COM을 Mattermost URL로 바꿉니다. 이 값은 로그인에 사용하는 Mattermost 서버 URL과 일치해야 합니다.
- 변경 사항을 저장합니다.
- Generate a new client secret을 선택하고 계속하려면 GitHub 비밀번호를 입력합니다.
- 결과 화면에서 클라이언트 ID와 클라이언트 시크릿을 복사합니다.
- Mattermost에서 System Console > Plugins > GitHub로 이동하고, 각 필드 옆의 재생성을 선택하여 Webhook Secret과 저장 데이터 암호화 키를 모두 재생성합니다. GitHub에서 웹훅을 만들려면 Webhook Secret 값의 복사본이 필요합니다.
웹훅 시크릿과 암호화 키의 복사본을 만들어 두는 것을 권장합니다. 한 번만 표시됩니다.
GitHub에서 웹훅 만들기
Mattermost로 이벤트를 전송하려면 GitHub에서 웹훅을 만듭니다. 다음 두 수준 중 하나에서 웹훅을 만들 수 있습니다:
- 조직 수준: 조직 내 모든 리포지터리에 대한 이벤트를 전달합니다.
- 리포지터리 수준: Mattermost로 이벤트를 보내려는 리포지터리마다 하나의 웹훅을 만듭니다.
특정 리포지터리에 대해 이벤트를 전달하는 웹훅이 하나만 있는지 확인하세요. 리포지터리가 조직 수준 웹훅과 리포지터리 수준 웹훅(또는 중복된 웹훅) 모두에 의해 처리되는 경우, GitHub는 각 이벤트를 두 번 이상 전달하며 Mattermost는 전달될 때마다 중복 알림을 게시합니다. 알림이 두 번 이상 나타나면 GitHub 조직 및 리포지터리 설정에서 웹훅을 검토하고, 각 리포지터리의 이벤트를 정확히 하나의 웹훅만 전달하도록 여분의 웹훅을 제거하세요.
조직 수준 웹훅에 의존하면서 /github subscriptions add owner/repository를 사용하여 채널을 특정 리포지터리에 구독할 때, 조직 수준 웹훅이 이벤트를 정상적으로 전달하고 있더라도 플러그인이 No webhook was found for this repository or organization을 보고할 수 있습니다. 이 검사는 현재 리포지터리 수준 웹훅만 확인하므로, 이 메시지는 정보 제공용일 뿐 이벤트가 누락되었다는 의미가 아니며 무시해도 안전합니다. 이 메시지를 피하고 싶다면 조직 수준 웹훅 대신 리포지터리 수준 웹훅을 통해 해당 리포지터리의 이벤트를 전달하세요.
- GitHub에서 알림을 보내려는 설정 페이지(조직 또는 특정 리포지터리용)로 이동한 다음 사이드바에서 Webhooks를 선택합니다.
- 웹훅 추가를 선택합니다.
- 다음 값을 설정합니다:
- Payload URL:
https://YOUR-MATTERMOST-URL.COM/plugins/github/webhook.https://YOUR-MATTERMOST-URL.COM을 Mattermost URL로 바꿉니다.- Content Type:
application/json- Secret: 앞서 복사한 Webhook Secret 값.
- Which events would you like to trigger this webhook? 아래에서 Let me select individual events를 선택합니다.
- 다음 이벤트를 선택합니다:
- Branch or Tag creation
- Branch or Tag deletion
- Discussions
- Discussion comments
- Issue comments
- Issues
- Pull requests
- Pull request review
- Pull request review comments
- Pushes
- Releases
- Stars
- Workflows
- 웹훅 추가를 선택하여 변경 사항을 저장합니다.
Mattermost에서 연동 구성
- Mattermost 배포에
github사용자 계정이 있는지 확인합니다. 해당 계정이 존재하면 기본적으로 채널에 GitHub 메시지를 게시하며 메시지에 BOT 태그가 포함되지 않습니다. 다음 방법 중 하나를 사용하여 BOT 태그를 포함하도록 이 계정 동작을 변경할 수 있습니다:
- mmctl user convert를 사용하여 사용자 계정을 봇으로 변환합니다.
- 기존
github사용자명을 다른 이름으로 변경합니다. 봇 계정 생성 활성화 구성 설정이 활성화된 경우 Mattermost 서버가 재시작될 때github라는 새 봇 계정이 만들어집니다.
- Mattermost에서 System Console > Plugins > GitHub로 이동하고 다음 설정을 구성한 후 저장을 선택합니다:
- 등록 중에 얻은 GitHub OAuth 클라이언트 ID와 GitHub OAuth 클라이언트 시크릿을 입력합니다.
- (선택 사항) GitHub 조직: GitHub 조직의 쉼표로 구분된 목록을 지정하여 연동을 GitHub 조직으로 잠급니다.
- (GitHub Enterprise 전용): 엔터프라이즈 기본 URL 및 엔터프라이즈 업로드 URL 값을 GitHub Enterprise URL로 설정합니다(예:
https://github.example.com). 이 값들은 종종 동일합니다.- (Mattermost 데스크톱 앱 전용) 왼쪽 사이드바에 알림 카운터 표시: Mattermost 사이드바에 GitHub 알림 카운터를 표시하거나 숨깁니다.
- (선택 사항) 프라이빗 리포지터리 활성화: 프라이빗 리포지터리 작업 기능을 활성화합니다. 프라이빗 리포지터리가 활성화되면 영향을 받는 사용자에게 알림이 전송되며, 프라이빗 리포지터리에 접근하려면 GitHub 계정을 다시 연결해야 합니다.
- (선택 사항) Connect to private Repositories by default: 프라이빗 리포지터리가 활성화된 경우 기본적으로 프라이빗 GitHub 리포지터리에 연결합니다.
- (선택 사항) 코드 미리보기 활성화: GitHub 파일 퍼머링크를 미리보기로 확장합니다. 공개 리포지터리, 공개 및 프라이빗 리포지터리를 활성화하거나 이 옵션을 비활성화할 수 있습니다.
- (선택 사항) 웹훅 이벤트 로깅 활성화: 로그 수준이 DEBUG로 설정된 경우 웹훅 이벤트를 로깅하려면 옵션을 활성화합니다.
- (선택 사항) Show Author in commit notification: GitHub 푸시 이벤트 알림에서 커미터 대신 커밋 작성자를 표시합니다.
업그레이드#
새 버전이 출시될 때 이 연동을 업데이트하는 것을 권장합니다. 일반적으로 업데이트는 원활하게 이루어지며 Mattermost의 사용자 경험을 방해하지 않습니다. 최신 릴리즈, 이전 릴리즈, 호환성 고려 사항은 릴리즈 페이지를 방문하세요.
활성화#
연동을 설정한 후 팀에게 GitHub 계정을 Mattermost에 연결할 수 있음을 알립니다.
사용#
GitHub 상호 연결 기능을 사용하려는 사용자는 GitHub 계정을 Mattermost에 연결해야 합니다.
연결되면 누군가가 귀하를 언급하거나, 리뷰를 요청하거나, 귀하의 풀 리퀘스트/이슈에 댓글을 달거나, 수정하거나(레이블 추가 또는 이슈 재오픈 포함), GitHub에서 이슈를 귀하에게 할당할 때 Mattermost의 GitHub 봇으로부터 다이렉트 메시지를 받게 됩니다.
GitHub 계정을 Mattermost에 연결#
- Mattermost에서 모든 Mattermost 채널에
/github connect슬래시 명령어를 실행하여 Mattermost 계정을 GitHub 계정과 연결합니다. - 연결되면
/github help슬래시 명령어를 실행하여 사용 가능한 기능을 확인합니다.
시작하기#
다음은 시작할 수 있는 일반적인 슬래시 명령어입니다:
/github subscriptions add 슬래시 명령어를 실행하여 Mattermost 채널이 GitHub 리포지터리의 새 풀 리퀘스트, 이슈, 브랜치 생성 등에 대한 알림을 받도록 구독합니다.
예를 들어 mattermost/mattermost-server GitHub 리포지터리에서 Help Wanted 레이블이 적용된 이슈, 이슈 댓글, 풀 리퀘스트에 대한 알림을 게시하려면 다음을 사용합니다: /github subscriptions add mattermost/mattermost-server --features issues,pulls,issue_comments,label:"Help Wanted". 지원되는 플래그는 다음과 같습니다:
--features: issues, pulls, pulls_merged, pulls_created, pushes, creates, deletes, issue_creations, issue_comments, pull_reviews, releases, workflow_success, workflow_failure, discussions, discussion_comments, label:"labelname" 중 하나 이상의 쉼표로 구분된 목록. 기본값은pulls,issues,creates,deletes.--exclude-org-member: 전달되지 않을 조직 구성원이 트리거한 이벤트. 구성된 조직으로 잠기며 멤버십이 공개인 사용자에 대해서만 작동합니다. 조직 구성원과 협업자는 같지 않습니다.--include-only-org-members: 조직 구성원에 의해 트리거된 이벤트만 전달됩니다. 플러그인 구성에 제공된 조직으로 잠기며 멤버십이 공개인 사용자에 대해서만 작동합니다. 조직 구성원과 협업자는 같지 않다는 점에 유의하세요.--render-style: 알림이 지정된 스타일로 전달됩니다(예: 풀 리퀘스트 본문이 표시되지 않음). 지원 값은collapsed,skip-body, 또는default(플래그 생략과 동일).--exclude:mattermost/mattermost-server와 같이 구독 알림에서 제외할 리포지터리의 쉼표로 구분된 목록. 조직에 대한 구독에만 지원됩니다.
/github todo 슬래시 명령어를 실행하여 읽지 않은 메시지 목록과 리뷰를 기다리는 풀 리퀘스트를 포함한 GitHub에서 할 일 항목을 메시지로 받습니다.
/github settings 슬래시 명령어를 실행하여 알림 및 일일 알림 설정을 업데이트합니다.
/github mute 슬래시 명령어를 실행하여 음소거된 GitHub 사용자를 관리합니다. 음소거된 사용자의 풀 리퀘스트 및 이슈 댓글에 대한 알림을 받지 않습니다.
/github default-repo 슬래시 명령어를 실행하여 현재 채널의 기본 리포지터리를 설정합니다. 이 리포지터리는 편의를 위해 GitHub 이슈 만들기 모달에서 자동으로 채워집니다.
자주 묻는 질문#
조직 대신 리포지터리를 어떻게 연결합니까?#
조직 대신 리포지터리에서 GitHub 웹훅을 설정합니다. 그러면 웹훅을 만든 리포지터리에 대해서만 알림과 구독이 전송됩니다. 알림과 /github todo는 전체 조직을 검색하지만 귀하에게 할당된 항목만 표시합니다.
특정 레이블이 적용될 때 알림을 보내려면 어떻게 합니까?#
mattermost/mattermost-plugin-github 리포지터리의 이슈에 Severity/Critical 레이블이 적용될 때 Mattermost 채널에 알림을 보내려면 다음 슬래시 명령어를 실행하여 이러한 알림을 구독합니다: /github subscriptions add mattermost/mattermost-plugin-github issues,label:"Severity/Critical"
연동이 각 연결된 GitHub 사용자의 데이터를 어떻게 저장합니까?#
GitHub 사용자 토큰은 Mattermost에서 생성된 저장 데이터 암호화 키로 AES 암호화됩니다. 암호화되면 토큰은 Mattermost 데이터베이스의 PluginKeyValueStore 테이블에 저장됩니다.
도움 받기#
Mattermost 고객은 Mattermost 지원 케이스를 열 수 있습니다. 버그를 보고하려면 Mattermost GitHub 플러그인 리포지터리에서 GitHub 이슈를 열어주세요.
질문, 피드백 및 지원을 위해 Mattermost 커뮤니티 서버의 공개 통합 및 앱 채널에 참여하세요.
Mattermost Team Edition 및 Free 고객은 Mattermost 피어 투 피어 문제 해결 포럼을 방문하여 글로벌 Mattermost 커뮤니티의 도움을 받을 수 있습니다.