GitHub를 Mattermost에 연결
GitHub 코드 저장소와 커뮤니케이션 플랫폼 간의 컨텍스트 전환을 줄이고 집중력을 높이기 위해 GitHub와 Mattermost를 통합하세요. Mattermost 시스템 관리자는 다음 단계를 수행하여 GitHub 통합을 배포해야 합니다.
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 - <YOUR COMPANY NAME> - 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 비밀번호를 입력합니다.
- 결과 화면에서 Client ID와 Client Secret을 복사합니다.
- Mattermost에서 시스템 콘솔 > 플러그인 > GitHub로 이동하고, 각 필드 옆의 Regenerate를 선택하여 Webhook Secret과 At Rest Encryption Key를 모두 재생성합니다. GitHub에서 웹훅을 만들려면 Webhook Secret 값의 복사본이 필요합니다.
- GitHub에서 알림을 보내려는 Settings 페이지로 이동한 다음 사이드바에서 Webhooks를 선택합니다.
- Add Webhook을 선택합니다.
- 다음 값을 설정합니다:
- 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
- Add Webhook을 선택하여 변경 사항을 저장합니다.
- Mattermost 배포에
github사용자 계정이 있는지 확인합니다. 해당 계정이 존재하면 기본적으로 채널에 GitHub 메시지를 게시하며 메시지에 BOT 태그가 포함되지 않습니다. 다음 방법 중 하나를 사용하여 BOT 태그를 포함하도록 이 계정 동작을 변경할 수 있습니다:
웹훅 시크릿과 암호화 키의 복사본을 만들어 두는 것을 권장합니다. 한 번만 표시됩니다.
GitHub에서 웹훅 만들기
알림을 설정하려는 각 GitHub 조직에 대해 웹훅을 만듭니다.
Mattermost에서 통합 구성
- mmctl user convert를 사용하여 사용자 계정을 봇으로 변환합니다.
- 기존
github사용자명을 다른 이름으로 변경합니다. 봇 계정 생성 활성화 구성 설정이 활성화된 경우 Mattermost 서버가 재시작될 때github라는 새 봇 계정이 만들어집니다.
- Mattermost에서 시스템 콘솔 > 플러그인 > GitHub로 이동하고 다음 설정을 구성한 후 저장을 선택합니다:
- 등록 중에 얻은 GitHub OAuth Client ID와 GitHub OAuth Client Secret을 입력합니다.
- (선택 사항) GitHub Organization: GitHub 조직의 쉼표로 구분된 목록을 지정하여 통합을 GitHub 조직으로 잠급니다.
- (GitHub Enterprise 전용): Enterprise Base URL 및 Enterprise Upload URL 값을 GitHub Enterprise URL로 설정합니다(예:
https://github.example.com). 이 값들은 종종 동일합니다. - (Mattermost 데스크톱 앱 전용) Display Notification Counters in Left Sidebar: Mattermost 사이드바에 GitHub 알림 카운터를 표시하거나 숨깁니다.
- (선택 사항) Enable Private Repositories: 프라이빗 저장소 작업 기능을 활성화합니다. 프라이빗 저장소가 활성화되면 영향을 받는 사용자에게 알림이 전송되며, 프라이빗 저장소에 접근하려면 GitHub 계정을 다시 연결해야 합니다.
- (선택 사항) Connect to private Repositories by default: 프라이빗 저장소가 활성화된 경우 기본적으로 프라이빗 GitHub 저장소에 연결합니다.
- (선택 사항) Enable Code Previews: GitHub 파일 퍼머링크를 미리보기로 확장합니다. 공개 저장소, 공개 및 프라이빗 저장소를 활성화하거나 이 옵션을 비활성화할 수 있습니다.
- (선택 사항) Enable Webhook Event Logging: 로그 수준이 DEBUG로 설정된 경우 웹훅 이벤트를 로깅하려면 옵션을 활성화합니다.
- (선택 사항) Show Author in commit notification: GitHub 푸시 이벤트 알림에서 커미터 대신 커밋 작성자를 표시합니다.
업그레이드#
새 버전이 출시될 때 이 통합을 업데이트하는 것을 권장합니다. 일반적으로 업데이트는 원활하게 이루어지며 Mattermost의 사용자 경험을 방해하지 않습니다. 최신 릴리즈, 이전 릴리즈, 호환성 고려 사항은 릴리즈 페이지를 방문하세요.
활성화#
통합을 설정한 후 팀에게 GitHub 계정을 Mattermost에 연결할 수 있음을 알립니다.
사용#
GitHub 상호 연결 기능을 사용하려는 사용자는 GitHub 계정을 Mattermost에 연결해야 합니다.
연결되면 누군가가 귀하를 언급하거나, 리뷰를 요청하거나, 귀하의 풀 리퀘스트/이슈에 댓글을 달거나, 수정하거나(레이블 추가 또는 이슈 재오픈 포함), GitHub에서 이슈를 귀하에게 할당할 때 Mattermost의 GitHub 봇으로부터 다이렉트 메시지를 받게 됩니다.
GitHub 계정을 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에서 생성된 At Rest Encryption Key로 AES 암호화됩니다. 암호화되면 토큰은 Mattermost 데이터베이스의 PluginKeyValueStore 테이블에 저장됩니다.
도움 받기#
Mattermost 고객은 Mattermost 지원 케이스를 열 수 있습니다. 버그를 보고하려면 Mattermost GitHub 플러그인 저장소에서 GitHub 이슈를 열어주세요.
질문, 피드백 및 지원을 위해 Mattermost 커뮤니티 서버의 공개 통합 및 앱 채널에 참여하세요.
Mattermost Team Edition 및 Free 고객은 Mattermost 피어-투-피어 문제 해결 포럼을 방문하여 글로벌 Mattermost 커뮤니티의 도움을 받을 수 있습니다.
