devops/cicd

[Jira] Gitlab 서버 - Jira Cloud 연동

danuri 2022. 7. 1. 11:31

우선 Jira와 Gitlab을 어떻게 사용하느냐에 따라 연동하는 방식이 다르다.

  1. Jira Cloud, gitlab.com 처럼 인터넷에서 바로 사용하는 방식
  2. 자체 서버에 설치해서 사용하는 방식

여기서는 ,
Gitlab을 자체 서버에 설치하고,
Jira는 클라우드(인터넷)를 사용하는 방식을 소개한다.

따라서 다음 두 연동에 대해 맞는 방식을 선택해야 한다.

  1. Gitlab -> Jira 연동: Jira가 클라우드(인터넷)이기 때문에, Gitlab 자체 설정으로 문제 없이 연동 가능하다.
  2. Jira -> Gitlab 연동: gitlab.com(인터넷)이라면 Jira 자체의 무료 앱으로 연동이 가능하지만, 현재 Gitlab이 자체 서버이기 때문에 DVCS 방식을 사용해야 한다.
    Jira DVCS connector | GitLab

Gitlab -> Jira 연동

<Gitlab Integration 설정>
Jira와 연동을 원하는 프로젝트 -> Settings -> Integrations -> Jira 클릭


+) 주의
Admin 혹은 Group 단위로 integration할 수도 있지만, 테스트 결과 project 단위 integration만 제대로 연동되는 것을 확인할 수 있었다.

설정은 다음과 같이 한다.

  • Enable integration: Active
  • Web URL: 연동을 원하는 Jira URL
  • Username or Email: Jira 계정 아이디
  • Password or API token: Jira 계정의 패스워드를 입력하거나 Google 계정 연동으로 가입했다면 API 토큰을 입력한다.

+) 주의
이후 Jira 티켓에 커밋 웹 링크가 저장되는 등 연동 효과를 제대로 보려면 API token을 입력하는 것이 좋다.

<Jira Cloud API token 확인 방법>
Jira 로그인 -> 우측 상단 사용자 아이콘 -> 계정 설정 -> 보안 -> API 토큰 -> API 토큰 만들기 및 관리 -> API 토큰 만들기

Label은 원하는 토큰 이름을 입력한다.

토큰을 만들었을 때 나오는 값을 따로 보관해둔다. 해당 창을 받으면 다시 토큰 값을 볼 수 없기 때문에, 꼭 처음에 저장해두자.

다시 깃랩으로 돌아가서 토큰 값을 넣는다. 아래 Trigger 부분은 다음과 같이 세팅했다.

하단 ‘Save changes’를 클릭하면 Gitlab -> Jira 연동은 끝이다.

<Gitlab -> Jira 연동 테스트>
테스트는 간단하다. 커밋을 할 때, 원하는 Jira 티켓 번호를 포함해서 커밋 메시지를 작성하면 된다.

git commit -m "#GN-1 Init: gitlab-jira integration test"

이제 깃랩에서 해당 커밋을 확인하면 “GN-1” 부분에서 JIra 링크가 생기는 것을 볼 수 있다.

클릭해보면 Jira Cloud로 이동하고 “GN-1”에 해당하는 티켓을 볼 수 있다.


웹 링크에 커밋 내역이 생기고, 클릭하면 깃랩으로 이동할 수 있다.
커밋과 관련된 comment도 확인할 수 있다.

이 밖에 웹 링크를 통해 merge request 등의 내역도 확인해볼 수 있다.

[참고자료]
GitLab과 JIRA Cloud 연동하기


Jira -> Gitlab 연동

Jira에서 Gitlab을 연동하면 Jira 티켓 세부내역에 ‘Development’라는 항목이 생긴다.
여기서 커밋, 브랜치, 풀리퀘스트 내역을 볼 수 있다.

Gitlab이 자체 서버에 설치한 것이기 때문에 DVCS 방식을 통해 연동한다.

[참고자료]
JIRA Development 패널에 GitLab 연동하기 - Qiita
https://docs.gitlab.com/ee/integration/jira/dvcs.html

그러나, 위 관련자료들을 통해 연동을 시도했지만 다음과 같은 이유로 연동되지 않았다.

  1. 우선 Jira는 아래 URL을 접속하면서 Gitlab과 연동을 시도한다.
    https://gnew-office.tplinkdns.com:19001/login/oauth/callback
  2. 그러나, Jira와 Gitlab을 https로 통신했을 때는 보안이 안되어 있는 서버라고 접속되지 않는다. 현재 Gitlab 서버가 http이기 때문에 어찌보면 당연하다.
  3. 그래서 1번 링크를 http로 변경하면 접속은 된다. 그러나 Jira에서 아래 링크와 같은 오류가 생기는데, 요약하자면 Gitlab 서버의 보안 인증서를 Jira에 등록하라는 뜻이다.
    https://docs.gitlab.com/ee/integration/jira/dvcs.html#ssl-and-tls-problems
  4. Jira에서 인증서 등록 관련 자료를 찾아보니 해당 방법은 결국 두 https 간의 연결을 전제로 하고 있다.
    https://confluence.atlassian.com/kb/how-to-import-a-public-ssl-certificate-into-a-jvm-867025849.html
  5. 따라서, gitlab 서버가 https 인증을 지원하지 않는다면 접속이 힘들 것 같다고 결론지었다.

+) Gitlab -> Jira로도 웹링크를 통해 커밋, 리퀘스트 내역을 볼 수 있으니 충분하다고 생각한다.