GitHub로 프로젝트 관리하기
팀 프로젝트를 진행함에 있어 일정관리가 필요한데 GitHub를 사용하여 일정관리를 해보도록 하겠습니다.
프로젝트 만들기
Github의 프로젝트 레포지토리에 접속하면 상단에 Projects
탭이 있습니다. 클릭하세요.
얼마 전까지만 해도 beta 버전이었는데 clasic이 사라지고 beta가 정식 Projects
가 되었습니다. 오른쪽 상단에 Add project
를 클릭하고, 아래쪽에 Go to ... to create a new project
를 클릭하세요.
이어서 New project
를 클릭합니다.
마음에 드는 템플릿을 선택하고 Create
를 누릅니다. 저는 Team Backlog
를 선택했습니다.
프로젝트를 관리할 수 있는 보드가 생성되었습니다! 왼쪽 상단에 프로젝트 보드 이름을 변경해줍시다.
왼쪽에 자물쇠 표시는 Private 상태를 나타내는데 access 권한이 없는 유저의 접근을 막습니다. 확인하지는 않았지만 같은 프로젝트를 진행하는 팀원들은 프로젝트 보드가 표시될 것으로 예상합니다.
나중에 설명할텐데 PR이나 이슈의 상태가 closed 라면 연관된 이슈를 자동으로 closed 상태로 바꾸기 위해 Workflows
를 설정해야합니다.
item closed
에서 Set를 Status: Done
로 바꾸고 오른쪽 위에 Disabled를 Enabled
로 바꿔주세요.
Pull request merged도 동일하게 바꿔줍니다.
Item added to project
는 New
가 설정되어 있습니다. 스위치만 Enabled
로 바꿔주세요. 이 경우 이슈나 PR이 생성되면 자동으로 New
상태가 됩니다.
나머지는 선택적으로 해주시면 됩니다.
이제 다시 레포지토리의 Projects
탭으로 돌아와서 Add project
를 클릭하면 방금 생성한 프로젝트 백로그가 있습니다. 클릭해주세요.
빈곳 아무곳이나 클릭하면 다음과 같이 레포지토리에 프로젝트 백로그가 생성됩니다.
이슈(Issues) 등록
이제 프로젝트 보드에 이슈를 등록해보겠습니다.
레포지토리에서 상단의 Issues
탭을 클릭합니다.
상단 메뉴를 보면 라벨(Labels)
과 마일 스톤(Milestones)
이 있습니다.
라벨(Labels)
라벨은 이슈의 유형을 지정해 줄 수 있습니다. 라벨을 클릭해서 확인하면 기본 라벨이 생성되어 있습니다.
Edit
를 눌러 수정하거나 New label
을 눌러 새로운 라벨을 생성할 수 있습니다.
마일 스톤(Milestones)
마일 스톤은 한국어로 이정표를 뜻합니다. 말 그대로 이정표를 두고 일정을 관리 할 수 있도록 합니다. New milestone
을 클릭하여 새로운 마일 스톤을 생성합시다.
타이틀 및 일정 기한과 함께 짧은 설명을 적고 Create milestone
을 누르면 마일 스톤이 생성됩니다.
이슈(Issues)
이제 이슈를 등록해보겠습니다. 상단에 New issue
를 클릭하세요.
제목과 이슈 내용을 적어주기만 하면 이슈가 등록됩니다. 마크다운 문법을 통해 작성할 수 있습니다.
중요한 부분은 오른쪽 영역입니다. 이슈를 통해 팀원들에게 작업을 할당하는 것이 가능합니다. 우선 Assignees를 클릭하면 레포지토리에 접근 권한이 있는 팀원들의 목록이 뜹니다. 작업 할당을 원하는 팀원을 선택합니다. 여러 인원을 선택할 수도 있습니다.
그 아래쪽에는 위에서 생성한 라벨과 프로젝트 백로그, 마일스톤을 설정해 줄 수 있습니다.
Submit new issue
를 클릭면 이슈가 등록됩니다.
이제 다시 프로젝트 백로그로 이동해보세요.
Workflows를 설정하기 전에 등록해서 이슈가 No Status에 있습니다. 해당 이슈를 마우스로 드래그하여 상태를 설정해줄 수 있습니다. 저는 In progress
상태로 끌어넣었습니다.
해당 이슈를 클릭하면 우선순위나 개발 사이즈도 설정해 줄 수 있습니다.
동일하게 팀원들에 대한 이슈도 작성여 작업을 할당해 주면 프로젝트 백로그를 통해 진행 과정을 한눈에 확인할 수 있습니다.
이슈 기반 브랜치 만들기
이렇게 생성된 이슈를 기반으로 하여 브랜치를 만들어 에디터를 통해 작업을 할 수 있습니다.
인텔리제이에서 브랜치 만들기
인텔리 제이에서는 브랜치를 만들기 전에 Task와 GitHub를 연결해야 합니다.
Ctrl + Alt + S
를 눌러 설정창을 열고 도구 > 작업 > 서버
로 이동합니다.
+
를 눌러 Github
를 선택하고 레포지토리 소유자
와 레포지토리 이름
을 입력 후 API 토큰 생성
을 눌러주세요. 아래쪽에 나에게 할당되지 않은 이슈 포함 체크를 해제하면 본인에게 할당된 이슈만 확인가능합니다.
로그인하고 인증을 받으면 토큰이 자동으로 입력됩니다. 확인을 누르고 에디터 오른쪽 상단에 디폴트 작업 > 작업열기
을 클릭하세요.
그러면 이슈 목록을 확인할 수 있습니다.
할당받은 이슈를 더블클릭하여 작업을 생성해주세요. 이때 브랜치를 생성할 수 있습니다.
확인을 누르면 브랜치가 생성되어 변경되고 task 상태가 변화된 것을 확인할 수 있습니다. 즉, 이슈를 기반으로 하여 task와 브랜치가 같이 만들어졌습니다.
이제 코드 개발을 열심히 하고 브랜치와 수정 내역을 확인 후 commit / push를 합니다.
인텔리제이의 경우 왼쪽 가장자리에 커밋 탭이 있으며, 단축키 Alt + 0
을 눌러도 됩니다.
확인 후 메시지를 작성하고 커밋
또는 커밋 및 푸시
를 누르세요.
이제 왼쪽 가장자리의 풀 리퀘스트 아이콘 탭을 클릭하고 상단의 +
를 눌러 풀 리퀘스트를 보냅니다.
PR 제목과 내용을 입력 후 풀 리퀘스트 생성
을 클릭하여 PR을 보냅시다. 이때 검토자, 담당자 및 라벨을 설정할 수 있습니다.
중요한 부분은 내용에 close #[이슈번호]
를 적어주면 Merge가 되었을 때 참조된 이슈가 closed 상태가 된다는 것입니다.
GitHub 레포지토리에 들어가서 확인해보면 PR이 잘 작성되어 있습니다. 이슈와 마찬가지로 프로젝트의 우선순위와 크기, 마일스톤 등을 지정해 줄 수 있습니다. 차이점은 검토자를 설정할 수 있다는 것입니다.
확인만 하고 에디터에서 Merge를 해보겠습니다. 제가 담당자 이므로 PR은 저한테 날아올 것입니다. 왼쪽 가장자리의 풀 리퀘스트
탭을 누르고 state:open
을 검색하면 PR이 온 것을 확인할 수 있습니다.
더블클릭하면 내용을 확인할 수 있으며, Merge가 가능합니다.
Merge 후 이슈를 확인하면 위에서 언급한 대로 closed 상태가 된 것을 확인할 수 있습니다.
이제 브랜치를 삭제하고 task를 default 상태로 되돌립니다.
VS Code에서 브랜치 만들기
VS code도 인텔리제이와 비슷합니다. 이슈를 생성하고, VS code에 다음 Extension을 설치하세요.
:GitHub Pull Requests and Issues
설치를 하면 왼쪽 가장자리에 github 아이콘이 생깁니다.
클릭후 하단에 ISSUES 영역에서 refresh 버튼을 누르면 이슈가 나타납니다.
마우스를 hover하면 오른쪽에 화살표가 뜹니다. 화살표를 클릭하면 이슈를 기반으로 하여 브랜치가 생성됩니다.
코드를 개발하고 커밋 / 푸시를 합니다. 센스있게도 메시지가 자동으로 작성되어 있으며, #[이슈 번호]
를 붙여 연관된 이슈를 참조하고 있습니다.
기트허브 아이콘을 클릭하여 상단에 풀리퀘스트 생성 버튼을 누르면 왼쪽 아이콘바에 Github Pull Request
아이콘이 뜹니다.
커밋과 마찬가지로 PR도 DESCRIPTION에 연관된 이슈를 Fixes
로 선언하여 참조하도록 자동으로 작성되어 있습니다. Close
말고도 Fixes
, resolve
같은 선언자도 Merge가 되면 참조된 이슈를 함께 닫는 듯 합니다.
Create
를 눌러 PR을 보내고 기트허브 아이콘을 누르면 PR이 Open 상태가 된 것을 확인할 수 있습니다. 해당 PR을 확인하면 github에 가지 않아도 에디터 내에서 라벨이라던지 검토자 라던지 설정이 가능합니다. Merge도 가능합니다.
Merge를 누르고 Create Merge Commit를 누르면 Merge가 됩니다.
Delete branch...
를 눌러 브랜치를 바로 삭제할 수 있으며, 왼쪽 하단에 ISSUE를 refresh하면 이슈가 닫힌 것을 확인할 수 있습니다.