GitHub ID를 확인하거나 사용자 대신 GitHub의 데이터를 조작해야 하는 타사 애플리케이션은 GitHub App에 해당 권한을 부여하도록 요청할 수 있습니다.
GitHub App에 권한을 부여하는 경우 애플리케이션을 신뢰하는지 확인하고 애플리케이션 개발자와 애플리케이션에서 액세스하려는 정보 종류를 검토해야 합니다.
권한 부여 중에 GitHub App에 다음 권한을 부여하라는 메시지가 표시됩니다.
- GitHub ID 확인
권한이 부여되면 GitHub App은 요청된 액세스 수준에 따라 퍼블릭 GitHub 프로필과 일부 프라이빗 세부 정보(예: 메일 주소)를 프로그래밍 방식으로 검색할 수 있습니다. - 사용자가 액세스할 수 있는 리소스 파악
권한이 부여되면 GitHub App은 사용자가 액세스할 수 있는 프라이빗 GitHub 리소스(예: 프라이빗 GitHub 리포지토리)를 프로그래밍 방식으로 읽을 수 있습니다. GitHub App 설치도 ‘해당 리소스’에 있습니다. 예를 들어 애플리케이션은 이 권한을 사용하여 적절한 리포지토리 목록을 표시할 수 있습니다. - 사용자 대신 작업
애플리케이션이 사용자로 GitHub에서 작업을 수행해야 할 수도 있습니다. 여기에는 이슈 만들기 또는 끌어오기 요청에 주석 달기가 포함될 수 있습니다. 사용자 대신 작업하는 권한은 사용자와 GitHub App이 ‘둘 다’ 액세스할 수 있는 GitHub 리소스로 제한됩니다. 그러나 애플리케이션이 사용자 대신 아무것도 변경할 수 없는 경우도 있습니다.
GitHub App이 사용자 대신 작업하는 경우는 언제인가요?
GitHub App이 사용자 대신 작업하는 상황은 GitHub App의 목적과 사용되는 컨텍스트에 따라 다양합니다.
예를 들어 IDE(통합 개발 환경)에서 사용자가 IDE를 통해 작성한 변경 내용을 GitHub의 리포지토리로 다시 푸시하기 위해 GitHub App을 사용하여 사용자 대신 상호 작용할 수 있습니다.
GitHub App이 이런 방식으로 사용자 대신 작업하는 경우, 아래 표시된 것과 유사하게 GitHub App의 작은 아바타가 사용자 아바타에 오버레이된 특수 아이콘을 통해 GitHub에서 식별됩니다.
GitHub App은 사용자가 액세스할 수 있는 리소스를 어느 범위까지 파악하고 대신 작업할 수 있나요?
권한이 부여된 후 GitHub App이 사용자가 액세스할 수 있는 리소스를 파악하고 대신 작업할 수 있는 범위는 다음으로 제한됩니다.
- 앱이 설치된 조직 또는 리포지토리
- 앱이 요청한 권한
- GitHub 리소스에 대한 사용자 액세스 권한
예제를 사용해서 설명하겠습니다.
GitHub 사용자인 Alice가 GitHub ID를 사용하여 타사 웹 애플리케이션인 ExampleApp에 로그인합니다. 이 프로세스 중에 Alice는 ExampleApp에 대신 작업을 수행할 수 있는 권한을 부여합니다.
그러나 ExampleApp이 GitHub에서 Alice 대신 수행할 수 있는 활동은 ExampleApp이 설치된 리포지토리, ExampleApp이 요청한 권한, GitHub 리소스에 대한 Alice의 액세스 권한으로 제한됩니다.
즉, ExampleApp이 Alice 대신 이슈를 만들려면 Repo A라는 리포지토리에서 다음이 모두 true여야 합니다.
- ExampleApp의 GitHub App이 이슈에 대한 쓰기 권한을 요청합니다.
- Repo A에 대한 관리자 권한이 있는 사용자가 Repo A에 ExampleApp의 GitHub App을 설치한 상태여야 합니다.
- Alice는 리포지토리 A에 대한 읽기 권한이 있어야 합니다. 다양한 작업을 수행하는 데 필요한 권한에 대한 자세한 내용은 "조직의 리포지토리 역할.