본문 바로가기
웹 개발

[GitHub] Organization 관리하기

by doraemin_dev 2025. 2. 3.

STEP 0. Organization에 People 추가하기

Organization > People > (Invite member 후 멤버가 자신 이메일에서 조직 가입 수락) >

맴버 오른쪽의 '...' 클릭 > Change role... >

Owner 또는 Member 선택

역할 권한 수준 할 수 있는 작업
Owner 최고 관리자 조직 및 리포지토리 전체 설정 변경, 팀 생성 및 삭제, 보호된 브랜치 관리
Member 제한된 권한 할당된 리포지토리 내에서만 작업 가능 (읽기, 쓰기, 관리자 권한에 따라 다름)

 

 

STEP 1-1. [Organization 차원에서] Member에게 권한 부여하기

Organization 차원에서 권한 부여하면, 해당 권한에 따라 '조직'을 관리할 수 있다.

 

Organization > Settings > Member privileges >

No permission / Read(초기 값) / Write / Admin 중 권한 택 1.

 

STEP 1-2. [Repository 차원에서] Member에게 권한 부여하기

Repository 차원에서 권한 부여하면, 해당 권한에 따라 '해당 Repositoy'만 관리할 수 있다.

ex)

Back-End Repository에는, 백엔드 개발자만 Write 권한 부여.

Front-End Repository에는, 프론트엔드 개발자만 Write 권한 부여.

 

Organization > Repository 이동 > Settings > Collaborators and teams > 권한 줄 사람 입력 >

Read / Triage / Write / Maintain / Admin 중 권한 택 1.

 

 

STEP 2. Branch Rules 설정하기

브랜치 관리할 수 있는 권한 부여. 

ex) 관리자만 main 브랜치에 merge 할 수 있도록 하자.

 

먼저, Team 만들기.

Organization > Teams > New team

 

 

Repository로 이동 > Settings > Rules > Rulsets > Rulesets >

New ruleset > New branch ruleset >

 

Bypass list에는 방금 만든 Team 추가 > 

Targets에는 main 브랜치 추가 >

branch rules 추가해주자.

 

branch rules 몇가지 설명. 

  • Restrict updates (업데이트 제한)
    • 브랜치를 직접 업데이트할 수 있는 사용자를 제한하는 기능입니다.
    • 이 옵션이 활성화되면, "Bypass list"에 등록된 사용자 또는 팀만 해당 브랜치를 업데이트할 수 있습니다.
    • git push 또는 merge를 시도할 때도 적용됩니다.
  • "Require a pull request before merging" 설정
    • main 브랜치에 직접 push할 수 없으며, 반드시 **Pull Request (PR)**를 통해 병합해야 합니다.
    • 즉, git push origin main 같은 직접적인 푸시는 차단됩니다.
  • "Required approvals" (필수 리뷰 설정) 확인
    • 이 옵션이 1 이상으로 설정되어 있으면, PR을 병합하기 전에 해당 개수만큼 **리뷰 승인(Approval)**을 받아야 합니다.
    • 만약 리뷰를 받지 않고 PR을 머지하려면, Required approvals를 0으로 설정해야 합니다.
  • "Require status checks to pass" (필수 상태 체크) 확인
    • CI/CD 체크가 설정되어 있다면, **모든 상태 체크(Status Checks)**가 성공해야 PR이 머지될 수 있습니다.
    • 예를 들어, GitHub Actions, Jenkins, Travis CI 같은 빌드/테스트가 성공하지 않으면 머지가 차단될 수 있음.
  • "Allowed merge methods" 확인
    • Squash merge, Merge commit, Rebase merge 중 최소 한 가지는 활성화되어 있어야 합니다.
    • 만약 병합 방식이 전부 차단되어 있다면, PR을 병합할 수 없습니다.
  • "Block force pushes" 설정 확인
    • 이 옵션이 활성화되어 있으면, git push --force는 차단됩니다.
    • 하지만 일반적인 push 및 PR 병합에는 영향을 주지 않습니다.

 

 


Merge without waiting for requirements to be met (bypass branch protections) 옵션이 보인다는 것은 Bypass list에 등록된 사용자가 맞으며, 일반 사용자는 병합을 할 수 없는 상태라는 것을 의미합니다.


즉, 팀 멤버가 아닌 사람은 merge를 시도할 수 없고, 당신은 bypass 권한이 있어 병합을 진행할 수 있는 상태입니다.