GitLab Issue와 Milestones개념과 사용법

 

GitLab Issue와 Milestones개념과 사용법

 

GitLab은 Git 저장소 매니저의 역할을 넘어, 서로 협업하는 것을 도와주는 도구들을 제공합니다. GitLab의 가장 큰 특징은 관련된 작업들을 연결하고 참조하도록 해준다는 점입니다. 협업의 장점은 이슈를 만드는 것에서부터 시작합니다. 이슈를 만듦으로써, 생각들을 밖으로 표출하게 되고, 그 일이 진행되는 동안 같이 협업하는 사람들은 그에 대한 자신의 생각을 발언합니다. GitLab은 이러한 협업 그룹의 토론을 관리하기 쉽게 만들어주며, 대화의 흐름도 남겨놓을 수 있게 해줍니다.

 

What is GitLab Issue?

GitLab의 프로젝트에서 개선되거나 해결되어야할 것을 의미하는 이슈(issue)를 등록할 수 있습니다. 이슈는 제목과 설명을 기입하고, 이슈가 할당되는 사람(처리해야하는 사람), 기한, 해당하는 마일스톤, 라벨 등을 입력하여 등록하게 됩니다. 이슈가 프로젝트의 issue tracker에 등록되면, 이슈가 열리며(open), 커멘트를 남기거나 참여시키고 싶은 사람(@+'사용자아이디'를 사용하여)을 언급할 수도 있습니다. 만약 이슈가 해결되면 merge request에 이슈를 연결시킬 수도 있고, 커밋 메시지를 통하여 issue가 close되게 할 수도 있습니다.

<gitlab-org의 이슈 관리>

 

What is GitLab Milestone?

마일스톤(Milestones)은 프로젝트에서 주요한 이벤트를 표시하는 기준점이며, 프로젝트의 진척을 관찰하기 위해 사용합니다. 프로젝트의 최종 목표점이나 완성을 의미하는 것은 아니며, 프로젝트가 진행되는 동안 달성되어야 하는 특정한 목표라고 이해하면 될 것 같습니다. 마일스톤은 프로젝트의 기간에 영향을 주지는 않습니다. 그러나 대신, 마일스톤은 꼭 달성해야하만 하는 주요한 목표가 성공에 도달하도록 초점을 맞춥니다.

예를 들어, 주요한 특정 기능의 추가라던지 버전 업 등이 마일스톤이 될 수 있습니다. 마일스톤은 고대 로마 시대에 기원이 있습니다. 아우구스투스 황제 시절 로마의 길에 1마일마다 돌을 세워 표시했다고 합니다. 마일 스톤을 세운 이유는 몇가지가 있습니다. 예를 들어, 여행자들로 하여금 그들이 로마의 길에 있다는 것을 인지하게 하고, 두 지점간 평균적인 거리 감각을 갖게 하기 위해서였다고 합니다.

GitLab에서는 프로젝트를 위한 마일스톤을 관리할 수 있습니다. 프로젝트 혹은 그룹별로 마일스톤을 만들어, 목표 날짜를 설정할 수 있습니다. 마일스톤은 보통 릴리즈를 위하여 사용되나, 간단한 워크플로우를 생성할 때도 사용할 수 있습니다. 마일스톤에 이슈를 추가함으로써, 마일스톤에 도달하기 위한 작업들을 등록합니다. GitLab에서는 생성된 이슈와 완성된 이슈의 비율을 계산하여 마일스톤의 진척율을 한 눈에 볼 수 있는 milestone view를 제공합니다.

<gitlab-org의 마일스톤 상세>

Progress영역에 등록된 이슈들과 진척율을 숫자로 표현하여 진행상태를 알 수 있습니다.

마일스톤에 등록된 이슈는 '시작 전, 진행 중, 완성'의 세 가지 단계로 분류하여 나타냅니다.

 

 

Making Issues in GitLab

GitLab에서 이슈를 생성하는 법은 아주 간단합니다. 우선 GitLab 사이트에서 이슈를 생성할 프로젝트를 선택한 후, 좌측 메뉴에서 Issues 메뉴를 선택합니다. '+ New Issue' 라고 쓰인 초록색 버튼을 클릭하면 아래와 같은 화면으로 이동합니다.

 

제목과 설명을 입력합니다. Write는 글을 쓰는 탭인데 markdown이라는 것을 사용하여 적을 수 있습니다. markdown은 글을 입력할 때, 제목, 글자 스타일, 코드, 테이블, 리스트 등 일반 텍스트 이외에 다양한 형태로 입력할 수 있도록 정한 기호라고 볼 수 있습니다. 위 캡처화면에서는 #, ** **, @를 사용하였습니다. '#'은 그 줄의 글자를 h1스타일로 바꿔줍니다. '** **'는 글자에 bold 속성 주며, '@' 다음에 사용자 ID, 그룹 이름, 혹은 all 이라는 기호로 전체 팀을 칭할 수 있습니다.(ex. @all ) 기타 markdown은 여기에서 확인할 수 있습니다. 항목을 완성하였으면, Submit issue를 눌러 이슈를 등록합니다.

 

이슈에 붙일 라벨을 만들 수 있습니다. 이슈를 생성하는 화면에서 'Create new label'을 누르면 위와 같은 화면으로 이동합니다. 타이틀과 설명을 입력하고, 라벨 색상을 지정합니다. 제시된 색상이 아닌 다른 색을 선택하려면, Background color 항목의 긴 bar를 누릅니다. 그러면 다른 색상을 선택할 수 있는 컬러피커가 나옵니다.

 

 

이슈 생성이 끝났습니다. Issue #2가 생성되었습니다. 생성된 이슈에 팀원들은 커멘트를 달거나, 좋아요를 눌러줄 수 있습니다.

이슈 번호를 기억해두었다가 커밋메시지에 입력하면, 이슈를 close 시키거나 merge request를 할 수 있습니다. 커밋 메시지에 close #2 혹은 fix #2, Resolve #2 등을 포함하여 커밋하면, open 상태인 issue를 close 시킬 수 있습니다. closing을 위한 문자열 패턴은 정규표현식으로 설정할 수 있습니다. 만약 아무것도 설정을 바꾸지 않았다면 기본 정규표현식은 다음과 같습니다.

 ((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing))(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?)|([A-Z][A-Z0-9_]+-\d+))+)

따라서 close, closed, closing, fix, fixed, fixing, resolve, resolved, resolving 등의 단어를 붙이면 이슈가 close됩니다. %{issue_ref} 이 부분은 이슈 번호와 매칭하는 부분이므로 수정할 때는 이부분을 건드리지 않아야합니다. 자세한 내용은 GitLab Documentation의 Automatic issue closing, Issue closing pattern에서 확인할 수 있습니다.

 

Making Milestones in GitLab

이제 마일스톤을 만들어보도록 하겠습니다. 프로젝트를 선택하고 Milestones 메뉴를 선택하고 '+New milestones'를 클릭하면 다음과 같은 화면이 나옵니다. 타이틀과 설명을 입력하고, 기한을 정합니다. Markdown을 사용하여 첫째줄에 bold 스타일을 주고, 아래는 리스트 형태로 표현해보았습니다.

위와 같이 입력하고 Preview 탭을 누르면 등록한 후 화면에서 어떻게 표현되는지 미리 볼 수 있습니다.

입력을 완료하고 Create milestone을 클릭하면, 마일스톤이 생성됩니다. 위에서 만든 마일스톤의 상세 화면입니다. 여기서 '+New Issue'를 눌러 새롭게 이 마일스톤에 해당하는 이슈를 등록하거나, 기존의 이슈 속성에 마일스톤을 추가하여 해당 마일스톤의 이슈로 등록할 수 있습니다.

 

Git 저장소를 사용하는 프로젝트를 수행할 때 GitLab의 Issue와 Milestones를 잘 활용한다면, 이슈 트래킹과 프로젝트의 목표관리를 보다 간편하고 보기 쉽게 관리할 수 있을 것 같죠? 시작해보세요!

 

 참조: https://about.gitlab.com/2016/03/08/gitlab-tutorial-its-all-connected/

 

New Multi-Channel Dynamic CMS