Jira 이슈 관리
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
GitLab에서 Jira 이슈를 직접 관리할 수 있습니다. 이 통합을 사용하면 GitLab 이슈, 머지 리퀘스트, Git에서 작업하는 동안 Jira 이슈를 상호 참조할 수 있습니다. 예를 들어 다음 커밋이 GIT-1 Jira 이슈를 참조하는 경우:
GitLab에서 Jira 이슈를 직접 관리할 수 있습니다. 그런 다음 GitLab 커밋과 머지 리퀘스트에서 ID로 Jira 이슈를 참조할 수 있습니다. Jira 이슈 ID는 대문자여야 합니다.
GitLab 활동과 Jira 이슈 상호 참조#
이 통합을 사용하면 GitLab 이슈, 머지 리퀘스트, Git에서 작업하는 동안 Jira 이슈를 상호 참조할 수 있습니다. GitLab 이슈, 머지 리퀘스트, 댓글, 커밋에서 Jira 이슈를 멘션하면 다음과 같이 동작합니다.
- GitLab은 GitLab 내 멘션에서 Jira 이슈로 링크를 겁니다.
- GitLab은 Jira 이슈에 GitLab의 이슈, 머지 리퀘스트, 커밋으로 다시 연결되는 형식화된 댓글을 추가합니다.
예를 들어 다음 커밋이 GIT-1 Jira 이슈를 참조하는 경우:
git commit -m "GIT-1 this is a test commit"
GitLab은 해당 Jira 이슈에 다음을 추가합니다.
-
Web links 섹션의 참조.
-
다음 형식을 따르는 Activity 섹션의 댓글:
USER mentioned this issue in RESOURCE_NAME of [PROJECT_NAME|COMMENTLINK]: ENTITY_TITLEUSER: Jira 이슈를 멘션한 사용자의 이름으로, 해당 사용자의 GitLab 프로필로 링크됩니다.RESOURCE_NAME: Jira 이슈를 참조한 리소스 유형(예: GitLab 커밋, 이슈, 머지 리퀘스트).PROJECT_NAME: GitLab 프로젝트 이름.COMMENTLINK: Jira 이슈가 멘션된 위치로의 링크.ENTITY_TITLE: GitLab 커밋(첫 줄), 이슈, 머지 리퀘스트의 제목.
GitLab 이슈, 머지 리퀘스트, 커밋당 Jira에는 상호 참조가 하나만 표시됩니다. 예를 들어 GitLab 머지 리퀘스트에서 Jira 이슈를 참조하는 댓글이 여러 개 있어도 Jira에는 해당 머지 리퀘스트로 연결되는 상호 참조가 하나만 생성됩니다.
이슈에 대한 댓글을 비활성화할 수 있습니다.
머지 리퀘스트 머지 시 연결된 Jira 이슈 요구#
이 통합을 사용하면 머지 리퀘스트가 Jira 이슈를 참조하지 않는 경우 머지되지 않도록 방지할 수 있습니다. 이 기능을 켜려면 다음과 같이 진행합니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge checks 섹션에서 Require an associated issue from Jira를 선택합니다.
- Save를 선택합니다.
이 기능을 켜면 연결된 Jira 이슈를 참조하지 않는 머지 리퀘스트는 머지할 수 없습니다. 머지 리퀘스트에 To merge, a Jira issue key must be mentioned in the title or description 메시지가 표시됩니다.
GitLab에서 Jira 이슈 매칭 커스터마이징#
다음을 정의하여 GitLab 이 Jira 이슈 키를 매칭하는 방식에 대한 커스텀 규칙을 구성할 수 있습니다.
커스텀 규칙을 구성하지 않으면 기본 동작이 사용됩니다.
정규식 패턴 정의#
히스토리
- GitLab 17.6에서 통합 이름이 Jira issues로 변경되었습니다.
정규 표현식(regex)을 사용해 Jira 이슈 키를 매칭할 수 있습니다. 정규식 패턴은 RE2 문법을 따라야 합니다.
Jira 이슈 키에 대한 정규식 패턴을 정의하려면 다음과 같이 진행합니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
- Jira issues를 선택합니다.
- Jira issue matching 섹션으로 이동합니다.
- Jira issue regex 텍스트 상자에 정규식 패턴을 입력합니다.
- Save changes를 선택합니다.
자세한 내용은 Atlassian 문서를 참고합니다.
접두사 정의#
히스토리
- GitLab 17.6에서 통합 이름이 Jira issues로 변경되었습니다.
접두사를 사용해 Jira 이슈 키를 매칭할 수 있습니다.
예를 들어 Jira 이슈 키가 ALPHA-1 이고 JIRA# 접두사를 정의하면,
GitLab은 ALPHA-1 대신 JIRA#ALPHA-1을 매칭합니다.
Jira 이슈 키에 대한 접두사를 정의하려면 다음과 같이 진행합니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
- Jira issues를 선택합니다.
- Jira issue matching 섹션으로 이동합니다.
- Jira issue prefix 텍스트 상자에 접두사를 입력합니다.
- Save changes를 선택합니다.
GitLab에서 Jira 이슈 닫기#
GitLab transition ID를 구성했다면 GitLab에서 직접 Jira 이슈를 닫을 수 있습니다. 커밋이나 머지 리퀘스트에서 트리거 단어 뒤에 Jira 이슈 ID를 사용합니다. 트리거 단어와 Jira 이슈 ID가 포함된 커밋을 푸시하면 GitLab은 다음을 수행합니다.
- 멘션된 Jira 이슈에 댓글을 답니다.
- Jira 이슈를 닫습니다. Jira 이슈에 resolution 이 있으면 전환(transition)되지 않습니다.
예를 들어 Jira 이슈 PROJECT-1을 닫으려면 다음 트리거 단어 중 하나를 사용합니다.
Resolves PROJECT-1Closes PROJECT-1Fixes PROJECT-1
커밋이나 머지 리퀘스트는 프로젝트의 기본 브랜치를 대상으로 해야 합니다. 프로젝트의 기본 브랜치는 프로젝트 설정에서 변경할 수 있습니다.
브랜치 이름이 Jira 이슈 ID와 일치하면 기존 머지 리퀘스트 템플릿에 Closes 가 자동으로 추가됩니다.
이슈를 닫지 않으려면 이슈 자동 닫기를 비활성화합니다.
이슈 닫기 사용 사례#
다음 예시를 살펴봅니다.
- 사용자가 새 기능을 요청하기 위해 Jira 이슈
PROJECT-7을 생성합니다. - 요청된 기능을 구현하기 위해 GitLab에서 머지 리퀘스트를 생성합니다.
- 머지 리퀘스트에 이슈 닫기 트리거
Closes PROJECT-7을 추가합니다. - 머지 리퀘스트가 머지되면:
- GitLab 이 대신 Jira 이슈를 닫습니다.
- GitLab 이 이슈를 해결한 커밋으로 다시 연결되는 형식화된 댓글을 Jira에 추가합니다. 댓글을 비활성화할 수 있습니다.
이슈 자동 전환#
자동 이슈 전환을 구성하면 참조된 Jira 이슈를 Done 카테고리에 속하는 다음 사용 가능한 상태로 전환할 수 있습니다. 이 설정을 구성하려면 다음과 같이 진행합니다.
- GitLab 구성 안내를 참고합니다.
- Enable Jira transitions 체크박스를 선택합니다.
- Move to Done을 선택합니다.
커스텀 이슈 전환#
고급 워크플로의 경우 커스텀 Jira transition ID를 지정할 수 있습니다.
-
Jira 구독 상태에 따라 방법을 사용합니다.
- Jira Cloud 사용자의 경우: Text 보기에서 워크플로를 편집하여 transition ID를 확인합니다. transition ID는 Transitions 칼럼에 표시됩니다.
- Jira Server 사용자의 경우: 다음 방법 중 하나로 transition ID를 확인합니다.
https://yourcompany.atlassian.net/rest/api/2/issue/ISSUE-123/transitions와 같은 요청으로 API를 사용하며, 적절한 "open" 상태에 있는 이슈를 사용합니다.- 원하는 전환의 링크에 마우스를 올려 URL의 action 파라미터를 확인합니다.
전환하려는 상태가 동일하더라도 워크플로(예: story 대신 bug)에 따라 transition ID가 다를 수 있습니다.
-
GitLab 구성 안내를 참고합니다.
-
Enable Jira transitions 설정을 선택합니다.
-
Custom transitions를 선택합니다.
-
텍스트 필드에 transition ID를 입력합니다. 여러 transition ID를
,또는;로 구분해 입력하면 지정한 순서대로 이슈가 각 상태로 차례로 이동합니다. 전환이 실패하면 시퀀스가 중단됩니다.
Jira 이슈에서 댓글 비활성화#
GitLab은 Jira 이슈에 댓글을 추가하지 않고도 소스 커밋이나 머지 리퀘스트를 Jira 이슈와 상호 링크할 수 있습니다.
- GitLab 구성 안내를 참고합니다.
- Enable comments 체크박스를 선택 해제합니다.