GitLab 연동
Entry, Professional, Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
GitLab을 Mattermost와 연동하면 GitLab 코드 저장소와 커뮤니케이션 플랫폼 사이를 오가며 생기는 방해 요소와 컨텍스트 전환을 줄일 수 있습니다. 기본 이벤트 외에도 병합, 이슈 댓글, 머지 리퀘스트 댓글, 파이프라인, 풀 리뷰 등 어떤 이벤트가 알림을 트리거할지 직접 제어할 수 있습니다. 일일 작업 요약, 새로 생성되거나 종료된 머지 리퀘스트·이슈, 태그 생성 이벤트에 대한 실시간 업데이트와 알림을 Mattermost 채널 구독을 통해 바로 받아 팀의 집중력과 생산성을 유지하세요.
Mattermost는 GitLab의 SaaS(Software-as-a-Service) 버전과 온프레미스 버전을 모두 지원합니다.
배포
GitLab 연동을 배포하려면 Mattermost 시스템 관리자가 다음 단계를 수행해야 합니다.
연동 설치하기
- Mattermost의
제품 메뉴에서 App Marketplace를 선택합니다.
- GitLab을 검색하거나 목록에서 찾아 Install(설치)을 선택합니다.
연동 설정하기
GitLab 연동은 기본 제공 설정 마법사(권장)를 사용하거나 수동 설정 절차를 따라 구성할 수 있습니다.
Setup wizard (recommended) — 설정 마법사(권장)
GitLab 연동을 설정하는 권장 방법은 기본 제공 설정 마법사를 사용하는 것입니다. 이 마법사는 GitLab에서 OAuth 앱을 만드는 과정을 포함해 설정의 각 단계를 안내합니다.
- Mattermost 채널에서
/gitlab setup슬래시 명령어를 실행합니다. - 대화형 안내에 따라 설정을 완료합니다.
마법사는 다음 과정을 안내합니다.
- GitLab에서 OAuth 앱 생성 및 설정
- Mattermost에서 플러그인 설정 구성
- 팀에 연동 도입 알리기
다음 하위 명령어를 사용하면 개별 설정 단계를 언제든 따로 실행할 수도 있습니다.
/gitlab setup oauth: GitLab에서 OAuth2 애플리케이션을 설정합니다./gitlab setup announce: 지정한 채널에 연동 사용 가능 여부를 공지합니다.
Manual configuration — 수동 설정
설정 마법사 대신 직접 연동을 설정하려면 아래 단계를 따르세요.
GitLab에서 OAuth 앱 등록하기
- GitLab에 OAuth 앱을 등록하려면
https://gitlab.com/-/profile/applications또는https://gitlab.YOURDOMAIN.com/-/profile/applications로 이동합니다.YOURDOMAIN.COM은 사용 중인 GitLab URL로 바꿉니다. - 다음 값을 설정합니다.
- Name:
Mattermost GitLab Plugin - <YOUR COMPANY NAME> - Redirect URI:
https://YOUR-MATTERMOST-URL.COM/plugins/com.github.manland.mattermost-plugin-gitlab/oauth/complete.YOUR-MATTERMOST-URL.COM은 사용 중인 Mattermost URL로 바꿉니다. 이 값은 로그인에 사용하는 Mattermost 서버 URL과 일치해야 합니다.
- Name:
- Scopes(스코프)에서
api와read_user를 선택합니다. - 변경 사항을 저장합니다. 이어지는 화면에서 Application ID와 Secret 필드 값을 복사합니다.
Mattermost에서 연동 설정하기
- Mattermost에서 System Console > Plugins > GitLab(시스템 콘솔 > 플러그인 > GitLab)으로 이동해 다음 설정을 구성한 뒤 Save(저장)를 선택합니다.
- GitLab에 OAuth 앱을 등록할 때 받은 GitLab URL, GitLab OAuth Client ID, GitLab OAuth Client Secret을 입력합니다.
- Generate(생성)를 선택해 Webhook Secret과 At Rest Encryption Key를 생성합니다.
- (선택) GitLab Group: 연동을 특정 GitLab 그룹 하나로 제한합니다.
- (선택) Enable Private Repositories: 프라이빗 저장소를 사용할 수 있도록 합니다. 프라이빗 저장소가 활성화되면 해당 사용자에게 알림이 전달되며, 프라이빗 저장소에 접근하려면 GitLab 계정을 다시 연결해야 합니다.
- (선택) Enable Child Pipeline Notifications: 활성화하면 상위 파이프라인 이벤트뿐 아니라 하위(child) 파이프라인 이벤트에 대한 알림도 받을 수 있습니다. 비활성화하면 상위 파이프라인 알림만 전송됩니다. 하위 파이프라인을 많이 사용하는 복잡한 CI/CD 파이프라인 환경에서 알림 소음을 줄이는 데 도움이 됩니다.
- (선택) Enable Code Previews: GitLab 파일 퍼머링크를 코드 미리보기로 자동 확장할지 제어합니다. 선택지는 다음과 같습니다.
- Enable for public projects(기본값): 공개 GitLab 저장소에 대해서만 미리보기를 표시합니다.
- Enable for public and private projects: 공개 저장소와 프라이빗 저장소 모두에 대해 미리보기를 표시합니다.
주의
이 설정은 프라이빗 GitLab 저장소에 접근할 수 있는 사용자가 공개 Mattermost 채널에 퍼머링크를 게시할 경우 기밀 코드가 공개 채널로 유출될 수 있습니다. 플러그인은 게시자의 GitLab 권한으로 미리보기를 자동 생성하므로, 접근 권한이 없는 다른 채널 구성원도 기밀 코드를 볼 수 있게 됩니다.
- Disable: 코드 미리보기 기능을 완전히 비활성화합니다.
지원하는 퍼머링크 유형:
- 단일 행 퍼머링크: 대상 행과 앞뒤 문맥 3행을 함께 표시합니다.
- 파일 퍼머링크: 파일 정보만 표시합니다(코드 미리보기 없음).
- 행 범위 퍼머링크: 파일 정보만 표시합니다(코드 미리보기 없음).
미리보기 제한:
- 미리보기 하나당 최대 10행까지 표시됩니다(단일 행 퍼머링크는 문맥 제한 때문에 더 적은 행이 표시될 수 있습니다).
업그레이드
새 버전이 릴리스될 때마다 이 연동을 업데이트하시기를 권장합니다. 일반적으로 업데이트는 매끄럽게 진행되며 Mattermost 사용자 경험을 방해하지 않습니다. 최신 릴리스와 제공 중인 릴리스, 호환성 고려 사항은 Releases 페이지에서 확인하세요.
활성화
연동을 설정한 뒤에는 팀원들에게 GitLab 계정을 Mattermost에 연결할 수 있다는 사실을 알리세요.
사용
GitLab 연동을 사용하려는 사용자는 GitLab 계정을 Mattermost에 연결해야 합니다.
연결하고 나면 누군가 나를 멘션하거나, 리뷰를 요청하거나, 내 머지 리퀘스트·이슈에 댓글을 달거나 수정하거나, GitLab에서 나에게 이슈를 할당할 때 Mattermost에서 GitLab 봇으로부터 다이렉트 메시지를 받게 됩니다.
GitLab 계정을 Mattermost에 연결하기
Mattermost 채널에서 /gitlab connect 슬래시 명령어를 실행해 Mattermost 계정과 GitLab 계정을 연결합니다.
GitLab 계정 연결을 해제하려면 /gitlab disconnect 슬래시 명령어를 실행하세요. 어떤 계정이 GitLab에 연결되어 있는지 확인하려면 /gitlab me 슬래시 명령어를 실행합니다.
연결한 뒤 /gitlab help 슬래시 명령어를 실행하면 가능한 작업을 확인할 수 있습니다.
시작하기
/gitlab todo 슬래시 명령어를 실행하면 할 일 목록, 나에게 할당된 이슈와 머지 리퀘스트, 내 리뷰를 기다리는 머지 리퀘스트 목록을 받을 수 있습니다. 또는 왼쪽 사이드바의 옵션을 사용해도 됩니다.
GitLab이 Mattermost로 이벤트를 보내도록 하려면 /gitlab webhook 슬래시 명령어를 실행하세요. 예: /gitlab webhook add group[/project]
채널 구독
모든 구독을 확인하려면 /gitlab subscriptions list를 실행하세요.
/gitlab subscriptions add group[/project] [features] 슬래시 명령어를 실행하면 Mattermost 채널을 구독시켜 GitLab 프로젝트의 새 머지 리퀘스트, 이슈 등 여러 기능에 대한 게시물을 받을 수 있습니다. 구독을 해제하고 게시물 수신을 중단하려면 /gitlab subscriptions delete group[/project] 슬래시 명령어를 실행하세요.
채널 구독에서 지원하는 기능은 다음과 같습니다.
merges- 머지 리퀘스트가 병합될 때 알림을 받습니다.issues- 이슈가 생성될 때 알림을 받습니다.pushes- 브랜치에 커밋이 푸시될 때 알림을 받습니다.issue_comments- 이슈에 댓글이 달릴 때 알림을 받습니다.merge_request_comments- 머지 리퀘스트에 댓글이 달릴 때 알림을 받습니다.tag- 태그가 생성될 때 알림을 받습니다.pipeline- 파이프라인 이벤트에 대한 알림을 받습니다(플러그인 설정에서 활성화한 경우 하위 파이프라인 이벤트 포함).wiki- 위키 페이지 이벤트에 대한 알림을 받습니다.releases- 릴리스가 생성될 때 알림을 받습니다.deployments- 배포 이벤트에 대한 알림을 받습니다.
예를 들어 릴리스와 배포 이벤트를 구독하려면 다음과 같이 실행합니다. /gitlab subscriptions add group[/project] releases,deployments
알림을 받거나 구독하려는 프로젝트마다, GitLab에서 보내는 이벤트를 확인할 채널에서 /gitlab webhook 슬래시 명령어를 실행해 웹훅을 생성하세요. 예: /gitlab webhook add group[/project]
GitLab 1.2 이전 버전의 경우:
- GitLab에서 구독하려는 프로젝트로 이동한 뒤 사이드바에서 Settings > Integrations(설정 > 연동)를 선택합니다.
- 다음 값을 설정합니다.
- URL:
https://YOUR-MATTERMOST-URL.COM/plugins/com.github.manland.mattermost-plugin-gitlab/webhook.https://YOUR-MATTERMOST-URL.COM은 사용 중인 Mattermost URL로 바꿉니다. URL에/plugins/com.github.manland.mattermost-plugin-gitlab/webhook을 반드시 붙여야 하며, 그러지 않으면 웹훅이 동작하지 않습니다. - Secret Token: 앞서 생성한 웹훅 시크릿을 복사해 넣습니다.
- Triggers(트리거)에서 모든 이벤트를 선택합니다.
- 웹훅을 추가합니다.
- URL:
이슈 생성 및 댓글 관리
슬래시 명령어와 대화형 모달을 사용하면 Mattermost에서 바로 GitLab 이슈를 생성하고 이슈 댓글을 관리할 수 있습니다.
GitLab 이슈 생성하기
/gitlab issue create 슬래시 명령어를 실행하면 새 GitLab 이슈를 생성할 수 있는 대화형 모달이 열립니다. 이 모달에서는 다음 작업을 수행할 수 있습니다.
- 이슈 제목과 설명 설정
- 레이블 지정
- 담당자 설정
- 마일스톤 선택
- 대상 프로젝트 선택
기존 이슈에 댓글 달기
/gitlab issue comment [issue-number] 슬래시 명령어를 실행하면 기존 GitLab 이슈에 댓글을 달 수 있습니다. 대화형 모달이 열려 Mattermost에서 바로 댓글을 작성하고 제출할 수 있습니다.
설정 변경
/gitlab settings [setting] [value] 슬래시 명령어를 실행하면 연동에 대한 개인 설정을 변경할 수 있습니다.
- 개인 알림을 켜거나 끕니다.
- 매일 처음 연결할 때 표시되는 리마인더를 켜거나 끕니다.
도움받기
Mattermost 고객은 Mattermost 지원 케이스를 열 수 있습니다. 버그를 신고하려면 Mattermost GitLab 플러그인 저장소에 GitHub 이슈를 등록해 주세요.
질문, 피드백, 도움이 필요하면 Mattermost 커뮤니티 서버의 공개 Integrations and Apps 채널에 참여하세요.
Mattermost Team Edition 및 무료 사용 고객은 Mattermost 사용자 간 문제 해결 포럼에서 전 세계 Mattermost 커뮤니티의 도움을 받을 수 있습니다.
릴리스 프로세스를 간소화·표준화하면서 최신 릴리스를 출시하는 데 드는 노력을 줄이는 방법은 Mattermost와 GitLab을 활용한 릴리스 관리 온디맨드 웨비나에서 확인하세요.