티스토리 뷰
[Git] GitHub 팀원들의 Approve를 받아야 Pull Request의 Merge가 가능하도록 만드는 기능 추가하기
B_log 2022. 1. 17. 23:06
개요
현업에서 굉장히 좋았다고 느꼈던 기능이 있어 이번 팀 프로젝트를 진행하며 적용시켜보고 싶었어요.
그래서 그 내용을 공유하려고 해요 :)
규모가 큰 프로젝트일수록 브랜치 전략이 필요하고, 브랜치가 세분화됨에 따라 Pull / Request의 중요성은 더 커져요.
특히 혼자만의 판단으로 Merge할 경우 나중에 큰 문제가 생길 수 있어요.
객관적인 판단을 위해 팀원들의 리뷰와 승인이 있을 때에만 Merge를 진행할 수 있는 제약 조건이 있다면 조금 더 신뢰성 있게 프로젝트가 관리될 수 있을 거예요.
그래서 이 글에서는 GitHub에서 팀원들의 승인이 N개 이상일 때에만 Merge 가능하게 제약을 거는 방법에 대해 이야기 해볼게요.
제약 설정하기
방법은 매우 간단해요.
우선 제약을 생성하기 원하는 GitHub Repository에 들어간 후, Setting으로 들어가요.
Setting에서 Branches로 들어가요
(혹시 위의 그림처럼 Add rule이 아니라 Update에 대한 메시지가 나오면 글 가장 아래를 확인해주세요!)
오른쪽 화면에서 Branch protection rules가 있어요.
말 그대로 Branch를 보호하는 규칙을 설정하는 곳이에요!
오른쪽의 Add rule 버튼을 클릭해요 :]
우선 위의 그림 제목에 붙은 빨간 점에서 느낄 수 있겠지만 저 Branch name pattern은 반드시 지정이 되어야 해요.
쉽게 말하면 아래 만든 규칙들이 적용될 브랜치의 이름을 적으라는 거예요.
하지만, 우리는 수많은 브랜치를 만들어야 하기 때문에 모든 이름을 다 작성할 순 없어요.
그래서 저의 경우 **/** 를 작성했어요.
일반적으로 *는 모든 것을 뜻하기 때문에 가운데 / 가 들어가는 모든 브랜치라는 것이죠.
물론 develop과 main 브랜치도 포함되어야 해요.
그럼 적용된 결과를 볼게요 :)
현재 Repository에 branch가 3개 있는데 3개 모두 적용되는 것을 확인할 수 있어요.
이제 Approve 개수를 지정해볼게요!
현재(2022/01/17) 기준으로는 가장 위에 올라와 있는데, "Require a pull request before merging"을 체크해요.
그러면 아래와 같이 사람 수를 설정할 수 있는 옵션이 생겨요.
기본 값은 1명으로 설정이 되어있는데 현재 저의 팀이 저를 포함 3명이므로 팀원 모두의 Approve를 받아야 진행되는 구조로 만들고 싶어 2로 설정해줄게요.
그리고 하단의 create을 누르면 설정이 돼요!
그러면 이제 Pull Request를 생성했을 때 기존과 다르게 아래와 같은 메시지가 나오게 돼요.
Review Approving 개수를 만족하지 못하면 Merge 할 수 없다는 거예요!
이제 팀원들의 Approve가 있을 때에만 Merge 할 수 있어요 :)
Add Rule이 보이지 않는 문제
이 글을 쓰게 된 계기인데, GitHub에서 제공하는 문서와 다르게 저는 Add rule이라는 버튼이 보이지 않았어요. 대신 아래와 같은 메시지가 나왔어요.
처음에는 이 기능이 유료로 전환되어야만 쓸 수 있는 기능인 줄 알았는데 그렇지 않았어요.
검색해보니 Private Repo에서 이 기능을 사용할 때에는 Upgrade를 해야 하지만, Public Repo의 경우에는 무료였어요.
외부로 open 가능한 Repository의 경우에는 이 기능을 무료로 사용하기 위해서 public으로 전환하면 간단히 해결할 수 있는 문제예요 :)
'개발 정보' 카테고리의 다른 글
[Git] Git Fork App으로 Git 연습하기_02 (0) | 2021.09.26 |
---|---|
[Git] Git Fork App으로 Git 연습하기_01 (0) | 2021.09.26 |
[ClubHouse] 프로그래머스x최강iOS팀이 만나다(21.03.04) 후기 (0) | 2021.03.05 |
- Total
- Today
- Yesterday
- 파이썬알고리즘인터뷰#4장
- 섬의개수#백준알고리즘#Python
- 미로 탐색#백준알고리즘#Python
- 반복수열#백준알고리즘#Python
- 랜선자르기#이분탐색#BOJ#Python
- 나무자르기#BOJ#이분탐색#Python
- 순열사이클#BOJ#Python
- 백준 알고리즘#BackTracking
- Triangle#Sorting#Codility#Python
- 토마토#백준알고리즘#Python
- N으로 표현#DP#Programmers#Python
- Brackets#Stacks and Queues#Codility#Python
- 쿼드트리#BOJ#분할정복#Python
- NumberofDiscIntersections#Codility#Sort#Python
- API#lazy#
- 공유기 설치#BOJ#이분탐색#Python
- 터틀비치#리콘#xbox#controller
- 배열합치기#분할정복#BOJ#Python
- 텀 프로젝트#백준알고리즘#Python
- filter#isalnum#lower
- 날짜 계산#BOJ#완전탐색#Python
- 종이자르기#분할정복#BOJ#Python
- 병든 나이트#BOJ#탐욕법#Python
- Swift#Tuples#Range
- Distinct#Codility#Python
- PassingCars#Codility#Python
- django
- django#slicing
- 암호코드#dp#BOJ#Python
- 리모컨#완전탐색#BOJ#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |