– 이슈부터 배포까지 자동으로 이어지는 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에서 더 알아보기
구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.
