🔗 JIRA + GitLab CI/CD 연동 방법

– 이슈부터 배포까지 자동으로 이어지는 DevOps 파이프라인

“코드는 GitLab에서 실행되고,
업무는 JIRA에서 관리된다.
둘이 연결되면 조직이 자동화된다.”


📌 1. 왜 JIRA + GitLab을 연동해야 하는가?

개발 조직에서 흔히 발생하는 문제:

  • 코드 변경과 업무 이슈가 연결되지 않음
  • 배포가 되었는데 어떤 이슈가 포함됐는지 모름
  • 이슈 상태 업데이트를 수동으로 처리

👉 해결 방법: JIRA + GitLab CI/CD 연동


🎯 기대 효과

효과설명
🔄 자동 상태 변경커밋/배포 시 JIRA 이슈 자동 업데이트
🔍 추적성 확보어떤 코드가 어떤 이슈와 연결됐는지 추적
🚀 배포 가시성릴리즈와 이슈 연결
🧠 DevOps 통합개발 → 테스트 → 배포 → 이슈 관리 자동화

🧩 2. 전체 아키텍처

[JIRA]
↑ ↓ (API 연동)
[GitLab Repo] → [CI/CD Pipeline]

[Deploy]

JIRA 상태 자동 변경

⚙️ 3. 기본 연동 방법

✅ 1) JIRA Issue Key 규칙 사용

JIRA 이슈는 다음과 같은 키를 가집니다:

PROJ-123
DEV-45

👉 이 키를 GitLab에서 사용하면 자동 연동 가능


✅ 2) 커밋 메시지에 JIRA 키 포함

git commit -m "PROJ-123: 로그인 기능 수정"

👉 JIRA에서 자동으로 해당 커밋 연결됨


✅ 3) Merge Request와 연동

PROJ-123 Implement login feature
  • MR에 JIRA 키 포함
  • JIRA에서 개발 진행 상황 확인 가능

🔄 4. CI/CD 기반 자동 상태 변경

🎯 핵심: JIRA REST API 활용


✅ 예: 배포 완료 시 JIRA 상태 변경

deploy:
stage: deploy
script:
- curl -X POST \
-H "Content-Type: application/json" \
-u $JIRA_USER:$JIRA_TOKEN \
--data '{
"transition": { "id": "31" }
}' \
https://your-jira-domain/rest/api/2/issue/PROJ-123/transitions

🔹 Transition ID 확인 방법

GET /rest/api/2/issue/{issueKey}/transitions

🛠️ 5. GitLab CI/CD 예제 (.gitlab-ci.yml)

stages:
- build
- test
- deployvariables:
JIRA_URL: "https://jira.example.com"
ISSUE_KEY: "PROJ-123"deploy:
stage: deploy
script:
- echo "Deploying..."
- |
curl -X POST \
-H "Content-Type: application/json" \
-u $JIRA_USER:$JIRA_TOKEN \
--data "{\"transition\": {\"id\": \"31\"}}" \
$JIRA_URL/rest/api/2/issue/$ISSUE_KEY/transitions

🧠 6. 자동화 고급 전략

✅ 1) Commit → Issue 상태 변경

PROJ-123 #start-progress
PROJ-123 #resolve
PROJ-123 #done

👉 JIRA Smart Commit 기능 활용


✅ 2) Smart Commit 예시

git commit -m "PROJ-123 #comment 로그인 버그 수정 #time 2h #done"

👉 자동으로:

  • 코멘트 추가
  • 작업 시간 기록
  • 상태 변경

✅ 3) 브랜치 전략 연동

feature/PROJ-123-login
bugfix/PROJ-456-error

👉 브랜치 이름만으로도 JIRA 연결


🔐 7. 보안 설정

항목권장
API 인증Personal Access Token 사용
GitLab 변수Secret Variable로 저장
권한 최소화JIRA API 계정 별도 생성

🧪 8. 실무 DevOps 흐름

1. JIRA 이슈 생성 (PROJ-123)
2. Git 브랜치 생성 (feature/PROJ-123)
3. 개발 → Commit (JIRA 키 포함)
4. Merge Request 생성
5. CI/CD 실행
6. 배포 성공
7. JIRA 상태 자동 변경 (Done)

📊 9. 실전 적용 팁

항목
이슈 키 규칙반드시 표준화
커밋 메시지템플릿 강제
상태 흐름JIRA Workflow와 CI/CD 맞추기
테스트 환경staging에서 먼저 검증
로그JIRA API 호출 로그 남기기

🚧 10. 자주 발생하는 문제

문제해결
상태 변경 실패Transition ID 확인
인증 오류API Token 재발급
이슈 연결 안됨커밋 메시지 형식 확인
과도한 자동화승인 단계 추가 필요

✅ 마무리

JIRA와 GitLab CI/CD 연동은 단순 자동화가 아니라
조직의 개발 흐름을 하나로 통합하는 핵심 전략입니다.

“이슈 → 코드 → 배포 → 완료
이 모든 흐름이 자동으로 연결될 때
진짜 DevOps가 완성된다.”


2930 Blog에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.