PAT가 부족할 때
Personal Access Token(PAT)은 사용자 계정에 묶여 있어. 담당자가 퇴사하면 토큰도 만료되고, 사용자의 모든 권한을 그대로 쓰게 되지. '나 자신'으로 동작해야 하는 자동화에는 확장성이 떨어져.
GitHub App은 독립적인 식별자야. 조직이나 특정 저장소에 설치해서 세밀한 권한을 줄 수 있고, JWT와 단기 설치 토큰으로 인증해. 대부분의 자동화는 GitHub App을 쓰는 게 맞아.
활용 사례
- 저장소 간 워크플로 — A 저장소의 워크플로가 B 저장소에 쓰기 권한이 필요할 때. PAT는 저장소 간 범위를 깔끔하게 나누기 어렵지만 GitHub App은 가능해.
- 봇 계정 — release-please, semantic-release, dependabot 같은 도구들은 전부 GitHub App이거나 비슷한 방식을 써.
- 커스텀 통합 — 슬랙 봇, 커스텀 대시보드, 내부 도구를 만들 때.
- 높은 API 호출 한도 — App 토큰은 PAT보다 API 호출 한도가 더 높아.
인증 흐름
- App의 비밀 키로 서명한 JWT를 만들어.
- JWT를 설치 토큰(약 1시간 유효)으로 교환해.
- API 호출이나 git 작업에 이 설치 토큰을 사용해.
액션 actions/create-github-app-token이 이 과정을 알아서 처리해. 출력값은 토큰이고, 다음 단계에서 환경 변수로 넘겨주면 돼.