PAT 가 부족할 때
Personal Access Token (PAT) 은 사용자 계정에 묶임. 사용자 떠나면 만료, 사용자가 가진 권한, '자기 자신으로' 행동해야 하는 자동화에 안 scale.
GitHub App 은 first-class ID. Org 이나 특정 repo 에 설치, fine-grained 권한 부여, JWT + 단기 installation token 으로 인증. 대부분 자동화는 GitHub App 이어야.
유즈 케이스
- Cross-repo workflow — repo A 의 workflow 가 repo B 에 write 필요. PAT 은 repo 간 scope 깔끔히 안 됨; GitHub App 은 됨.
- 봇 계정 — release-please, semantic-release, dependabot — 다 GitHub App 이거나 비슷.
- 커스텀 통합 — Slack bot, custom dashboard, 내부 tooling.
- 높은 rate limit — App token 이 PAT 보다 API rate limit 높음.
Auth flow
- App 의 private key 로 서명한 JWT 생성.
- JWT 를 installation token (~1 시간) 으로 교환.
- API 호출 / git 작업에 installation token 사용.
Action: actions/create-github-app-token 이 dance 를 처리. Output 은 token; 다음 step 에 env 통해 전달.