원문 캡처 · github.blog
원문 캡처 · github.blog

GitHub가 GitHub Apps에 세분화된 권한과 관리 기능을 추가했다. 앱은 저장소 생성이나 설치 저장소 관리에 필요한 권한만 요청할 수 있고, 조직 관리자가 승인한 앱을 저장소 관리자가 더 쉽게 저장소에 추가할 수 있다.

새 repository_creation:write 권한으로 더 폭넓은 repository_administration:write 권한 없이 저장소를 만들 수 있다. 생성된 저장소에는 이를 만든 앱이나 사용자가 접근할 수 있으며, 이 권한을 사용하는 앱은 조직 관리자의 설치 승인을 받아야 한다. 자세한 API 문서는 조직에 저장소 만들기, 템플릿으로 저장소 만들기, 현재 사용자용 저장소 만들기, 포크 만들기, GraphQL에서 확인할 수 있다.

앱 설치에 저장소를 추가하거나 제거하는 API는 이제 GitHub Apps와 세분화된 개인 액세스 토큰(PAT)을 지원한다. 이전에는 범위가 넓은 repo 권한만 지원했다. 새 installation_repositories:write 권한을 가진 호출자는 조직 내 설치에 저장소를 추가하거나 제거할 수 있다. 사용자가 호출하는 경우 조직 소유자이거나 해당 저장소의 관리자여야 한다. 관련 문서는 저장소 추가 API와 저장소 제거 API다.

조직에 이미 설치돼 조직 소유자의 승인을 받은 앱은 저장소 관리자가 별도의 조직 소유자 승인 없이 기존 설치에 자신의 저장소를 추가할 수 있다. 조직 수준 권한, 저장소 관리, 저장소 생성 권한은 계속 조직 소유자의 승인이 필요한 민감 권한이다. 저장소 관리자가 앱을 추가하지 못하게 하려면 조직 소유자만 GitHub App을 설치하도록 제한하는 방법을 참고하면 된다.

GitHub Apps는 이제 offline_access 범위도 지원한다. 이를 요청하면 만료되는 액세스 토큰과 함께 갱신 토큰을 받는다. 개발자는 기존 클라이언트 사용자를 한꺼번에 전환하지 않고 만료 토큰을 시험하고 단계적으로 적용할 수 있다. 이 설정은 해당 인증에만 적용되며, 앱 권한은 애플리케이션 등록 시 정적으로 선택한다. 자세한 내용은 사용자 액세스 토큰 갱신 문서를 참고하면 된다. 이 기능은 GHES 3.23에 제공된다.

GitHub Apps는 소유 관계에 따라 비공개·내부 앱의 세부 정보도 가져올 수 있다. 같은 조직 소유 앱끼리는 공개 여부와 관계없이 정보를 조회할 수 있고, 같은 엔터프라이즈의 내부 앱끼리도 조직 경계를 넘어 조회할 수 있다. 엔터프라이즈 소유 앱은 같은 엔터프라이즈에 속한 조직의 앱 정보를 가져올 수 있다. 관련 기준은 앱 공개 범위 문서에 안내돼 있다.

앱 자격 증명은 이제 앱 설정의 다른 항목과 분리된 Credentials 탭에서 관리한다. GitHub는 향후 워크로드 페더레이션 자격 증명을 위한 공간도 마련했다고 밝혔다. offline_access를 제외한 개선 사항은 GHES 3.24에서 제공된다.