GitHub를 Mattermost에 연결#

plans-img 모든 요금제 에서 사용 가능

deployment-img 클라우드자체 호스팅 배포

GitHub를 Mattermost와 통합하여 GitHub 코드 저장소와 커뮤니케이션 플랫폼 간의 주의 산만함을 최소화하고 컨텍스트 전환을 줄이세요. Mattermost 채널에서 직접 커밋, 풀 리퀘스트, 이슈 등에 대한 실시간 업데이트를 통해 팀이 집중하고 생산적으로 일할 수 있도록 도와주세요.

Mattermost용 GitHub 통합 예시.

배포#

설정은 GitHub에서 시작하고 Mattermost에서 완료됩니다.

GitHub에서 OAuth 앱 등록#

Mattermost 시스템 관리자는 GitHub에서 다음 단계를 수행해야 합니다.

  1. GitHub에서 OAuth 앱을 등록하려면 https://github.com/settings/applications/new 로 이동하세요.

  2. 다음 값을 설정하세요:

  • 애플리케이션 이름: Mattermost GitHub Plugin - <YOUR COMPANY NAME>

  • 홈페이지 URL: https://github.com/mattermost/mattermost-plugin-github

  • 인증 콜백 URL: https://YOUR-MATTERMOST-URL.COM/plugins/github/oauth/complete, https://YOUR-MATTERMOST-URL.COM 을 Mattermost URL로 대체하세요. 이 값은 로그인에 사용하는 Mattermost 서버 URL과 일치해야 합니다.

  1. 변경 사항을 저장하세요.

  2. 새 클라이언트 시크릿 생성 을 선택하고 GitHub 비밀번호를 입력하여 계속하세요.

  3. 결과 화면에서 Client IDClient Secret 을 복사하세요.

  4. Mattermost에서 시스템 콘솔 > 플러그인 > GitHub 로 이동하여 각 필드 옆의 재생성 을 선택하여 Webhook SecretAt Rest Encryption Key 를 모두 재생성하세요. GitHub에서 웹훅을 생성하려면 Webhook Secret 값의 복사본이 필요합니다.

참고

웹훅 시크릿과 암호화 키는 한 번만 표시되므로 복사본을 만드는 것을 권장합니다.

GitHub에서 웹훅 생성#

Mattermost 시스템 관리자는 GitHub에서 다음 단계를 수행해야 합니다. 설정하려는 각 GitHub 조직에 대해 GitHub에서 웹훅을 생성하세요.

  1. GitHub에서 알림을 보내려는 설정 페이지로 이동한 다음 사이드바에서 Webhooks 를 선택하세요.

  2. 웹훅 추가 를 선택하세요.

  3. 다음 값을 설정하세요:

  • 페이로드 URL: https://YOUR-MATTERMOST-URL.COM/plugins/github/webhook. https://YOUR-MATTERMOST-URL.COM 을 Mattermost URL로 대체하세요.

  • 콘텐츠 유형: application/json

  • 시크릿: 앞서 복사한 Webhook Secret 값.

  1. 어떤 이벤트로 이 웹훅을 트리거하시겠습니까? 아래에서 개별 이벤트 선택 을 선택하세요.

  2. 다음 이벤트를 선택하세요:

  • 브랜치 또는 태그 생성

  • 브랜치 또는 태그 삭제

  • 릴리스

  • 이슈 댓글

  • 이슈

  • 풀 리퀘스트

  • 풀 리퀘스트 리뷰

  • 풀 리퀘스트 리뷰 댓글

  • 푸시

  • 스타

  • 워크플로우

  1. 변경사항을 저장하려면 웹훅 추가 를 선택하세요.

Mattermost 구성#

Mattermost 시스템 관리자는 Mattermost에서 다음 단계를 수행해야 합니다.

  1. Mattermost 배포에 github 사용자 계정이 있는지 확인하세요. 계정이 존재하는 경우 기본적으로 채널에 GitHub 메시지를 게시하며, 메시지에는 BOT 태그가 포함되지 않습니다. 다음 방법 중 하나를 사용하여 이 계정 동작을 변경하여 BOT 태그를 포함시킬 수 있습니다:

  • mmctl user convert 를 사용하여 사용자 계정을 봇으로 변환하세요.

  • 기존 github 사용자 이름을 다른 이름으로 변경하세요. enable bot account creation 구성 설정이 활성화된 상태에서 Mattermost 서버가 재시작되면 github 라는 새로운 봇 계정이 생성됩니다.

  1. 제품 내 앱 마켓플레이스에서 GitHub 통합을 설치하세요:

  1. Mattermost에서 제품 메뉴 제품 메뉴 아이콘을 사용하여 채널과 협업 플레이북 사이를 탐색하세요. 에서 앱 마켓플레이스 를 선택하세요.

  2. GitHub를 검색하거나 스크롤하여 설치 를 선택하세요.

  3. 설치가 완료되면 구성 을 선택하세요. 시스템 콘솔로 이동합니다.

  4. GitHub 구성 페이지에서 다음과 같이 GitHub 상호 운용성을 활성화하고 구성한 다음 저장 을 선택하세요:

  • 등록 중에 얻은 GitHub OAuth 클라이언트 IDGitHub OAuth 클라이언트 시크릿 을 입력하세요.

  • (선택 사항) GitHub 조직: GitHub 조직의 이름을 지정하여 통합을 단일 GitHub 조직으로 잠그세요.

  • (GitHub Enterprise 전용): GitHub Enterprise URL(예: https://github.example.com)을 Enterprise Base URLEnterprise Upload URL 값으로 설정하세요. 이 값들은 종종 동일합니다.

  • (Mattermost 데스크톱 앱 전용) 왼쪽 사이드바에 알림 카운터 표시: Mattermost 사이드바에서 GitHub 알림 카운터를 표시하거나 숨깁니다.

  • (선택 사항) 비공개 저장소 활성화: 비공개 저장소 작업 기능을 활성화합니다. 비공개 저장소가 활성화되면 영향을 받는 사용자에게 알림이 표시되며, 비공개 저장소에 접근하려면 GitHub 계정을 다시 연결해야 합니다.

  • (선택 사항) 기본적으로 비공개 저장소에 연결: 비공개 저장소가 활성화된 경우 기본적으로 비공개 GitHub 저장소에 연결합니다.

  • (선택 사항) 코드 미리보기 활성화: GitHub 파일의 영구 링크를 미리보기와 함께 확장합니다. 공개 저장소, 공개 및 비공개 저장소를 활성화하거나 이 옵션을 비활성화할 수 있습니다.

  • (선택 사항) 웹훅 이벤트 로깅 활성화: 이 옵션을 활성화하여 로그 수준이 DEBUG로 설정된 경우 웹훅 이벤트를 로깅합니다.

  • (선택 사항) 커밋 알림에 작성자 표시: GitHub 푸시 이벤트 알림에서 커미터 대신 커밋 작성자를 표시합니다.

활성화#

팀원들에게 GitHub 계정을 Mattermost에 연결 할 수 있다는 것을 알리세요.

업그레이드#

새 버전이 출시되면 이 통합을 업데이트하는 것을 권장합니다. 일반적으로 업데이트는 원활하게 이루어지며 Mattermost의 사용자 경험을 방해하지 않습니다. 최신 릴리스, 사용 가능한 릴리스 및 호환성 고려사항은 Releases 페이지 를 방문하세요.

사용#

GitHub 연동 기능을 사용하려는 사용자는 Mattermost용 OAuth 앱을 GitHub에 등록한 다음 GitHub 계정을 Mattermost에 연결해야 합니다.

연결되면 GitHub에서 누군가가 귀하를 멘션하거나, 리뷰를 요청하거나, 귀하의 풀 리퀘스트/이슈에 댓글을 달거나 수정하거나(레이블 추가 또는 이슈 재개 포함), GitHub에서 이슈에 귀하를 할당할 때 Mattermost의 GitHub 봇으로부터 직접 메시지를 받게 됩니다.

Mattermost용 OAuth 앱을 GitHub에 등록#

  1. OAuth 앱을 등록하려면 https://github.com/settings/applications/new 로 이동하세요.

  2. GitHub에서 다음 값을 설정하세요:

  • 애플리케이션 이름: Mattermost GitHub Plugin - <YOUR COMPANY NAME>

  • 홈페이지 URL: https://github.com/mattermost/mattermost-plugin-github

  • 인증 콜백 URL: https://YOUR-MATTERMOST-URL.COM/plugins/github/oauth/complete, https://YOUR-MATTERMOST-URL.COM 을 Mattermost URL로 대체하세요. 이 값은 로그인에 사용하는 Mattermost 서버 URL과 일치해야 합니다.

  1. GitHub에서 변경사항을 제출하세요.

GitHub 계정을 Mattermost에 연결#

  1. Mattermost 계정을 GitHub 계정과 연결하려면 Mattermost의 모든 채널에서 /github connect 슬래시 명령어를 실행하세요.

  2. 연결되면 /github help 슬래시 명령어를 실행하여 사용 가능한 기능을 확인하세요.

시작하기#

시작할 수 있는 일반적인 슬래시 명령어는 다음과 같습니다:

GitHub 저장소의 새로운 풀 리퀘스트, 이슈, 브랜치 생성 등에 대한 알림을 받기 위해 Mattermost 채널을 구독하려면 /github subscriptions add 슬래시 명령어를 실행하세요.

예를 들어, mattermost/mattermost-server GitHub 저장소에서 Help Wanted 라벨이 있는 이슈, 이슈 댓글, 풀 리퀘스트에 대한 알림을 게시하려면 /github subscriptions add mattermost/mattermost-server --features issues,pulls,issue_comments,label:"Help Wanted" 를 사용하세요. 다음 플래그가 지원됩니다:

  • --features: 이슈, 풀 리퀘스트, 풀 리퀘스트 병합, 풀 리퀘스트 생성, 푸시, 생성, 삭제, 이슈 생성, 이슈 댓글, 풀 리퀘스트 리뷰, 릴리스, 워크플로우 성공, 워크플로우 실패, label:”labelname” 중 하나 이상의 쉼표로 구분된 목록입니다. 기본값은 pulls,issues,creates,deletes 입니다.

  • --exclude-org-member: 전달되지 않을 조직 구성원이 트리거한 이벤트입니다. 구성된 조직으로 잠기며 멤버십이 공개된 사용자에게만 작동합니다. 조직 구성원과 협업자는 다릅니다.

  • --render-style: 알림이 지정된 스타일로 전달됩니다(예: 풀 리퀘스트의 본문이 표시되지 않음). 지원되는 값은 collapsed, skip-body 또는 default (플래그를 생략한 것과 동일)입니다.

  • --exclude: mattermost/mattermost-server 와 같이 구독 알림을 받지 않을 저장소의 쉼표로 구분된 목록입니다. 조직 구독에서만 지원됩니다.

읽지 않은 메시지와 검토 대기 중인 풀 리퀘스트 목록을 포함하여 GitHub에서 수행할 항목이 있는 메시지를 받으려면 /github todo 슬래시 명령어를 실행하세요.

알림 및 일일 알림에 대한 설정을 업데이트하려면 /github settings 슬래시 명령어를 실행하세요.

GitHub와 Mattermost 간의 통합을 구성하려면 /github setup 슬래시 명령어를 실행하세요. 이 명령어를 실행하여 전체 설정 프로세스를 진행하거나, 특정 설정 단계를 다시 방문하려면 다음 하위 명령어 중 하나를 실행할 수 있습니다:

  • /github setup oauth: GitHub에서 OAuth2 애플리케이션을 설정하여 GitHub와 Mattermost 간의 필요한 인증 연결을 설정합니다.

  • /github setup webhook: GitHub에서 Mattermost로 웹훅을 생성하여 GitHub의 실시간 알림과 업데이트가 Mattermost 채널로 전송되도록 합니다.

  • /github setup announce: Mattermost의 지정된 채널에 메시지를 보내 팀원들이 사용할 수 있는 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 Developer WorkflowMattermost Developer environment setup 를 방문하세요.

Playwright 테스트를 실행하기 위한 환경을 설정하려면 e2e/playwright 의 설정 가이드를 참조하세요.

도움 받기#

Mattermost 고객은 Mattermost support case 를 열 수 있습니다. 버그를 보고하려면 Mattermost GitHub plugin repository 에 GitHub 이슈를 열어주세요.

질문, 피드백 및 도움이 필요하시면 Mattermost Community ServerIntegrations and Apps channel 에 참여하세요.

Mattermost Team Edition 및 Free 고객은 도움을 받기 위해 Mattermost peer-to-peer troubleshooting forum 에 방문하여 글로벌 Mattermost 커뮤니티에 접근할 수 있습니다.