JIRA Development 패널에 GitLab 연동하기

![000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/06e87d4e-4151-8d29-ce98-2624ff77218b.png)
## TL;DR
> JIRA Development 패널에 GitLab을 연동하는 방법을 기록하였습니다

※ JIRA와 GitLab 모두 서버 설치형 입니다.

## GitLab 설정
- GitLab 어드민 로그인 > Admin Area > Settings > General > Account and limit > User OAuth applications 체크
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/6d6c4475-fcd1-12ff-2ac1-dfe005a21047.png)

- GitLab 어드민 로그인 > Settings > Applications
    - Name : jira-devpanel-test
    - Reflect URL : `https://<gitlab_url>/login/oauth/callback`
    - Scopes > api 체크
    - Save Application
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/78001979-28ad-29f0-5d96-683680328b53.png)
`Application ID`, `Secret` 값을 보관합니다. 다음 단계 JIRA에서 GitLab 연동시 사용되는 값입니다.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/af61bc33-86af-53a7-d7b1-796cb90ea3dd.png)

## JIRA 설정
- JIRA 어드민 로그인 > Applications > DVCS accounts > Linck Bitbucket Cloud or GitHub account
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/6ad960e1-e9ee-1083-d93d-015adc6cdb93.png)
    - Host : GitHub Enterprise
    - Team or User Account : GitLab그룹명 `https://<gitlab_url>/<Gitlab그룹명>`
    - Host URL : `https://<gitlab_url>`
    - Client ID : `Application ID`
    - Client Secret : `Secret`
    - Auto Link New Repositories, Enable Smart Commits 모두 체크
    - Add > Continue
    - An error has occurred `The requested scope is invalid, unknown, or malformed.`
        - 웹 브라우저의 URL의 끝 `scope=repo` 를 `scope=api` 로 변경 후 엔터
    - Authorize
    - Operation In Progress > 빙글빙글 > (한참 기다리면) 504 Gateway Time-out 뜨지만 무시
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/d6bd50b8-80b0-7908-a206-ae99e67cb163.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/c0058c74-f900-feb3-0cae-0aa35bf6a0c5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/d3d49eaf-282e-6805-49ec-6b0f7e0d9960.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/d12dcbe3-a338-22f5-d7ff-b4bdbb806ecd.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/0266f753-4a72-0610-df04-e0076f62c263.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/4daafa03-47ff-3eb3-a9b9-7450db451488.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/9a9749a0-cecb-120a-9b22-be0d52b95685.png)
- JIRA 어드민 로그인 > Applications > DVCS accounts > Last activity 동기화 확인
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/20967cd5-2bd7-20a2-8775-b2979bdeedd0.png)

## 테스트
위에서 설정한 GitLab 그룹 하위에 저장소 커밋메시지에 JIRA 이슈 번호를 포함하고 푸시합니다.
아래와 같은 동작을 통해 JIRA Development 패널에서 GitLab의 변경 내용을 확인할 수 있습니다.

1. 소스 변경후에 커밋메시지에 부분에 JIRA 이슈 번호가 포함되어 있는 경우
2. MergeRequest 생성시에 JIRA 이슈 번호가 제목에 포함되어 있는 경우
3. 브랜치 생성시에 브랜치 명에 JIRA 이슈 번호가 포함되어 있는 경우
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/4a1016d3-44f9-d99e-5826-463d685d7930.png)

자! 이제 JIRA의 Development에서 결과를 확인 할 수 있습니다.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/73c83147-67ab-3538-c6c4-0a6166e2d5bc.png)

위의 3가지 경우 모두 확인할 수 있습니다.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/2076bd00-9cc9-f62b-5511-3cc91ae4750f.png)

## 제약사항
JIRA 이슈 내에서 `create branch` 기능을 제공하지 않습니다.
https://gitlab.com/gitlab-org/gitlab/-/issues/2647

## 레퍼런스
https://docs.gitlab.com/ee/integration/jira_development_panel.html