/ #GITHUB

GitHub로 프로젝트 관리하기

팀 프로젝트를 진행함에 있어 일정관리가 필요한데 GitHub를 사용하여 일정관리를 해보도록 하겠습니다.

프로젝트 만들기

Github의 프로젝트 레포지토리에 접속하면 상단에 Projects 탭이 있습니다. 클릭하세요.

img001

얼마 전까지만 해도 beta 버전이었는데 clasic이 사라지고 beta가 정식 Projects가 되었습니다. 오른쪽 상단에 Add project를 클릭하고, 아래쪽에 Go to ... to create a new project를 클릭하세요.

img002

이어서 New project를 클릭합니다.

img003

마음에 드는 템플릿을 선택하고 Create를 누릅니다. 저는 Team Backlog를 선택했습니다.

img004

프로젝트를 관리할 수 있는 보드가 생성되었습니다! 왼쪽 상단에 프로젝트 보드 이름을 변경해줍시다.

img005

왼쪽에 자물쇠 표시는 Private 상태를 나타내는데 access 권한이 없는 유저의 접근을 막습니다. 확인하지는 않았지만 같은 프로젝트를 진행하는 팀원들은 프로젝트 보드가 표시될 것으로 예상합니다.

나중에 설명할텐데 PR이나 이슈의 상태가 closed 라면 연관된 이슈를 자동으로 closed 상태로 바꾸기 위해 Workflows를 설정해야합니다.

img038

item closed에서 Set를 Status: Done로 바꾸고 오른쪽 위에 Disabled를 Enabled로 바꿔주세요.

img039

Pull request merged도 동일하게 바꿔줍니다.

img040

Item added to projectNew가 설정되어 있습니다. 스위치만 Enabled로 바꿔주세요. 이 경우 이슈나 PR이 생성되면 자동으로 New 상태가 됩니다.

img041

나머지는 선택적으로 해주시면 됩니다.

이제 다시 레포지토리의 Projects 탭으로 돌아와서 Add project를 클릭하면 방금 생성한 프로젝트 백로그가 있습니다. 클릭해주세요.

img006

빈곳 아무곳이나 클릭하면 다음과 같이 레포지토리에 프로젝트 백로그가 생성됩니다.

img007

이슈(Issues) 등록

이제 프로젝트 보드에 이슈를 등록해보겠습니다.

레포지토리에서 상단의 Issues 탭을 클릭합니다.

img008

상단 메뉴를 보면 라벨(Labels)마일 스톤(Milestones)이 있습니다.

img009

라벨(Labels)

라벨은 이슈의 유형을 지정해 줄 수 있습니다. 라벨을 클릭해서 확인하면 기본 라벨이 생성되어 있습니다.

img010

Edit를 눌러 수정하거나 New label을 눌러 새로운 라벨을 생성할 수 있습니다.

마일 스톤(Milestones)

마일 스톤은 한국어로 이정표를 뜻합니다. 말 그대로 이정표를 두고 일정을 관리 할 수 있도록 합니다. New milestone을 클릭하여 새로운 마일 스톤을 생성합시다.

img011

타이틀 및 일정 기한과 함께 짧은 설명을 적고 Create milestone을 누르면 마일 스톤이 생성됩니다.

img012

이슈(Issues)

이제 이슈를 등록해보겠습니다. 상단에 New issue를 클릭하세요.

img013

제목과 이슈 내용을 적어주기만 하면 이슈가 등록됩니다. 마크다운 문법을 통해 작성할 수 있습니다.

중요한 부분은 오른쪽 영역입니다. 이슈를 통해 팀원들에게 작업을 할당하는 것이 가능합니다. 우선 Assignees를 클릭하면 레포지토리에 접근 권한이 있는 팀원들의 목록이 뜹니다. 작업 할당을 원하는 팀원을 선택합니다. 여러 인원을 선택할 수도 있습니다.

img014

그 아래쪽에는 위에서 생성한 라벨과 프로젝트 백로그, 마일스톤을 설정해 줄 수 있습니다.

img015

Submit new issue를 클릭면 이슈가 등록됩니다.

img016

img017

이제 다시 프로젝트 백로그로 이동해보세요.

img018

Workflows를 설정하기 전에 등록해서 이슈가 No Status에 있습니다. 해당 이슈를 마우스로 드래그하여 상태를 설정해줄 수 있습니다. 저는 In progress 상태로 끌어넣었습니다.

img019

해당 이슈를 클릭하면 우선순위나 개발 사이즈도 설정해 줄 수 있습니다.

img020

동일하게 팀원들에 대한 이슈도 작성여 작업을 할당해 주면 프로젝트 백로그를 통해 진행 과정을 한눈에 확인할 수 있습니다.

img021

이슈 기반 브랜치 만들기

이렇게 생성된 이슈를 기반으로 하여 브랜치를 만들어 에디터를 통해 작업을 할 수 있습니다.

인텔리제이에서 브랜치 만들기

인텔리 제이에서는 브랜치를 만들기 전에 Task와 GitHub를 연결해야 합니다.

Ctrl + Alt + S를 눌러 설정창을 열고 도구 > 작업 > 서버로 이동합니다.

img022

+를 눌러 Github를 선택하고 레포지토리 소유자레포지토리 이름을 입력 후 API 토큰 생성을 눌러주세요. 아래쪽에 나에게 할당되지 않은 이슈 포함 체크를 해제하면 본인에게 할당된 이슈만 확인가능합니다.

img023

로그인하고 인증을 받으면 토큰이 자동으로 입력됩니다. 확인을 누르고 에디터 오른쪽 상단에 디폴트 작업 > 작업열기을 클릭하세요.

img024

그러면 이슈 목록을 확인할 수 있습니다.

img025

할당받은 이슈를 더블클릭하여 작업을 생성해주세요. 이때 브랜치를 생성할 수 있습니다.

img026

확인을 누르면 브랜치가 생성되어 변경되고 task 상태가 변화된 것을 확인할 수 있습니다. 즉, 이슈를 기반으로 하여 task와 브랜치가 같이 만들어졌습니다.

img027

img028

이제 코드 개발을 열심히 하고 브랜치와 수정 내역을 확인 후 commit / push를 합니다.

인텔리제이의 경우 왼쪽 가장자리에 커밋 탭이 있으며, 단축키 Alt + 0을 눌러도 됩니다.

img029

확인 후 메시지를 작성하고 커밋 또는 커밋 및 푸시를 누르세요.

img030

이제 왼쪽 가장자리의 풀 리퀘스트 아이콘 탭을 클릭하고 상단의 +를 눌러 풀 리퀘스트를 보냅니다.

img031

PR 제목과 내용을 입력 후 풀 리퀘스트 생성을 클릭하여 PR을 보냅시다. 이때 검토자, 담당자 및 라벨을 설정할 수 있습니다.

중요한 부분은 내용에 close #[이슈번호]를 적어주면 Merge가 되었을 때 참조된 이슈가 closed 상태가 된다는 것입니다.

img032

GitHub 레포지토리에 들어가서 확인해보면 PR이 잘 작성되어 있습니다. 이슈와 마찬가지로 프로젝트의 우선순위와 크기, 마일스톤 등을 지정해 줄 수 있습니다. 차이점은 검토자를 설정할 수 있다는 것입니다.

img033

확인만 하고 에디터에서 Merge를 해보겠습니다. 제가 담당자 이므로 PR은 저한테 날아올 것입니다. 왼쪽 가장자리의 풀 리퀘스트 탭을 누르고 state:open 을 검색하면 PR이 온 것을 확인할 수 있습니다.

img034

더블클릭하면 내용을 확인할 수 있으며, Merge가 가능합니다.

img035

Merge 후 이슈를 확인하면 위에서 언급한 대로 closed 상태가 된 것을 확인할 수 있습니다.

img042

이제 브랜치를 삭제하고 task를 default 상태로 되돌립니다.

img036

img037

VS Code에서 브랜치 만들기

VS code도 인텔리제이와 비슷합니다. 이슈를 생성하고, VS code에 다음 Extension을 설치하세요.
:GitHub Pull Requests and Issues

설치를 하면 왼쪽 가장자리에 github 아이콘이 생깁니다.

img043

클릭후 하단에 ISSUES 영역에서 refresh 버튼을 누르면 이슈가 나타납니다.

img044

마우스를 hover하면 오른쪽에 화살표가 뜹니다. 화살표를 클릭하면 이슈를 기반으로 하여 브랜치가 생성됩니다.

img045

img046

코드를 개발하고 커밋 / 푸시를 합니다. 센스있게도 메시지가 자동으로 작성되어 있으며, #[이슈 번호]를 붙여 연관된 이슈를 참조하고 있습니다.

img047

기트허브 아이콘을 클릭하여 상단에 풀리퀘스트 생성 버튼을 누르면 왼쪽 아이콘바에 Github Pull Request 아이콘이 뜹니다.

img048

커밋과 마찬가지로 PR도 DESCRIPTION에 연관된 이슈를 Fixes로 선언하여 참조하도록 자동으로 작성되어 있습니다. Close 말고도 Fixes, resolve 같은 선언자도 Merge가 되면 참조된 이슈를 함께 닫는 듯 합니다.

Create를 눌러 PR을 보내고 기트허브 아이콘을 누르면 PR이 Open 상태가 된 것을 확인할 수 있습니다. 해당 PR을 확인하면 github에 가지 않아도 에디터 내에서 라벨이라던지 검토자 라던지 설정이 가능합니다. Merge도 가능합니다.

img049

Merge를 누르고 Create Merge Commit를 누르면 Merge가 됩니다.

img050

img051

Delete branch...를 눌러 브랜치를 바로 삭제할 수 있으며, 왼쪽 하단에 ISSUE를 refresh하면 이슈가 닫힌 것을 확인할 수 있습니다.

img052