본문 바로가기
Issue/SCM

[Git] Organization Repository에 권한 부여 방식

by chickenman 2025. 3. 22.

현재 프로젝트를 Organization에서 multi repository 형태로 관리하고 있다. 그리고 권한을 부여받은 사용자에 한해서 수정할 수 있도록 제한하고 있습니다.

 

그래서 Organization의 repository에 push 등의 작업을 하려고 하면 아래와 같은 인증을 요구하게 됩니다.

이 글을 통해 제가 어떻게 권한을 부여했는지 과정을 설명하려고 합니다. 

 

1. Personal Access Token을 발급받습니다. 

1) 계정의 "Settings" -> "Developer settings" 페이지로 접근합니다. 

2) "Personal access Tokens"탭에서 "Tokens (classic)"을 클릭하여 class PAT 관리 화면에 들어간 후 토큰을 생성합니다. 

        생성된 토큰은 잘 복사해 저장해놓습니다. 

 

2. 조직 수준에서의 Repository 접근 권한 부여 & 서드 파티 접근 제한 해제 / 특정 어플리케이션에 대한 권한 부여

1) Organization 화면의 "People" 탭에 진입합니다. 그리고 권한을 부여하려는 사용자의 Manage 버튼을 클릭합니다. 

2) 접근 허용을 하려는 저장소에 접근 권한을 부여합니다. (저는 Owner이기 때문에 모든 저장소에 대한 접근 권한을 가집니다.)

3) Orgnization 화면의 "Settings" 탭으로 이동한 후 "Third-party Access" 탭에서 "OAuth app policy" 메뉴를 클릭합니다.

"Third-party application access policy" 정책을 제거하거나 사용자가 요청한 어플리케이션에 대해 접근을 허용합니다.

3. Organization에 속한 Repository에 사용자 접근 권한 부여

1) 조직에 속해있는 저장소에 진입한 후 "Settings"탭으로 이동합니다. 이동 후 "Access" 탭의 "Collaborators and teams" 메뉴를 클릭합니다.

2) 이동한 화면에서 "Add people"을 통해 사용자 및 권한을 추가합니다.

** "Direct access" / "Organization access" 중에서 원하는 것을 선택하시면 됩니다.

4. 터미널에서 remote repository 설정 & github 계정의 이름과 PAT(Perosnal Access Token)을 입력 

1) "git remote set-url origin URL" 명령어를 통해 원격 저장소 설정합니다.

- URL은 반드시 "https"로 시작하는 URL을 사용합니다. 그 이유는 아래와 같습니다.

2) push 등의 명령어를 사용한 후 사용자 이름(username)과 1)에서 발급받은 PAT를 username과 password에 각각 넣어주면 명령어 실행에 성공합니다.

 

 

제가 이 과정을 겪으면서 잘 해결되지 않았던 문제는 PAT 발급 시 "classic" 타입이 아닌 "fine-grained" 타입을 사용했다는 겁니다.

"fine-grained" 타입의 토큰의 사용 방식은 4)번에서의 설정을 다르게 가져가야 하는 것으로 알고 있습니다.

 

출처

https://syntaxsugar.tistory.com/entry/Git-GitHub-Organization-remote-Permission-to-repository

https://docs.github.com/en/get-started/git-basics/about-remote-repositories#cloning-with-https-urls

https://docs.github.com/ko/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#%EB%AA%85%EB%A0%B9%EC%A4%84%EC%97%90%EC%84%9C-personal-access-token-%EC%82%AC%EC%9A%A9