Github organization force push시 403 오류

Github organization force push시 403 오류

Published
June 3, 2024
Last updated
Last updated June 6, 2024

문제 상황

Github organization의 repository에 git push —force 를 사용하여 커밋 기록을 삭제할때 403 권한 오류가 발생했습니다.
remote: Permission to org/repo.git denied to devMuromi. fatal: unable to access 'https://github.com/org/repo.git/': The requested URL returned error: 403
해당 문제는 개인 계정 repository를 사용하거나, organization repository에 단순히 push 할때는 발생하지 않았습니다.
  • 개인 repository, 일반 push ⇒ O
  • 개인 repository, force push ⇒ O
  • 조직 repository, 일반 push ⇒ O
  • 조직 repository, force push ⇒ X
 
해당 문제는 이전부터 꾸준히 발생하던 것이었지만 검색으로 찾을 수 없었는데, 조금 더 문제 상황과 키워드를 확실히 하여 다시 검색해 보았습니다.

해결 방법

문제는 Sourcetree를 사용함에 있었습니다. Github은 OAuth Apps에 대해서 조직 계정에는 full control 권한을 부여하지 않는데, 이것이 문제가 되었던 것입니다.
해당 문제를 찾기 어려웠던 점은, git push —force 를 할때는 Sourcetree 앱을 사용하지 않고, 일반 bash 쉘에서 진행했는데 문제가 발생했기 때문입니다.
추측으로는 아마 bash에서 git 명령을 할때도 SourceTree의 인증방식을 사용하게 되어있는 것 같습니다.
해당 문제를 해결하기 위해 https://github.com/settings/applications 에서 Sourcetree의 조직 권한을 허용해 해결했습니다.
https://github.com/settings/applications 화면

Reference