GitHub App 대신 OAuth app 사용
일반적으로 GitHub Apps보다 OAuth apps가 더 선호됩니다.
OAuth apps 둘 다 GitHub Apps OAuth 2.0을 사용합니다.
OAuth apps 는 사용자를 대신하여 또는 사용자와 독립적으로 작업할 수 있는 동안 GitHub Apps 사용자를 대신하여만 작동할 수 있습니다.
자세한 내용은 GitHub 앱과 OAuth 앱 간의 차이점을(를) 참조하세요.
기존 OAuth app를 GitHub App로 마이그레이션하는 방법에 대한 정보는 OAuth 앱을 GitHub 앱으로 마이그레이션을 참조하세요.
GitHub Apps 향상된 보안 제공
GitHub Apps 는 앱이 수행할 수 있는 작업을 더 자세히 제어할 수 있도록 합니다.
OAuth apps가 사용하는 광범위한 범위 대신 GitHub Apps는 세분화된 권한을 사용합니다. 예를 들어 앱이 리포지토리의 콘텐츠를 읽어야 하는 경우, OAuth app에는 repo 범위가 필요하며, 이 범위를 통해 앱이 리포지토리 콘텐츠와 설정도 편집할 수 있습니다. A는 GitHub App 리포지토리 콘텐츠에 대한 읽기 전용 액세스를 요청할 수 있으므로 앱이 리포지토리 콘텐츠 또는 설정 편집과 같은 더 많은 권한 있는 작업을 수행할 수 없습니다.
GitHub Apps 또한 리포지토리 액세스에 대한 더 많은 제어를 제공합니다. GitHub App앱을 설치한 사용자 또는 조직 소유자는 앱이 액세스할 수 있는 리포지토리를 결정할 수 있습니다. 반대로 앱에 OAuth app 권한을 부여한 사용자가 액세스할 수 있는 모든 리포지토리에 액세스할 수 있습니다.
GitHub Apps 는 수명이 짧은 토큰을 사용합니다. 토큰이 유출되면 토큰이 더 짧은 시간 동안 유효하므로 피해를 줄일 수 있습니다. 반대로 OAuth app , 토큰은 권한을 부여한 OAuth app 사람이 토큰을 해지할 때까지 만료되지 않습니다.
이러한 보안 기능은 앱의 자격 증명이 유출된 경우 발생할 수 있는 손상을 제한하여 보안을 강화하는 GitHub App데 도움이 됩니다. 또한 이러한 조치는 더 엄격한 보안 정책을 가진 조직에서 앱을 사용할 수 있도록 해 줍니다.
GitHub Apps 는 사용자와 독립적으로 또는 사용자를 대신하여 작동할 수 있습니다.
GitHub Apps 는 사용자와 독립적으로 작동할 수 있습니다. 이는 사용자 입력이 필요하지 않은 자동화 작업에 유용합니다.
OAuth apps와 마찬가지로 GitHub Apps도 여전히 사용자를 대신하여 작업을 수행할 수 있습니다. 앱에서 작업을 수행했음을 나타내지 않는 것과 달리 OAuth apps, GitHub Apps 사용자를 대신하여 앱에서 작업을 수행했음을 나타냅니다.
GitHub Apps은 사용자 계정에 연결되지 않으며 라이선스 시트사용하지 않습니다. GitHub Apps 앱을 처음 설치한 사람이 조직을 떠날 때도 설치 상태를 유지합니다. 이렇게 하면 사용자가 팀을 떠나더라도 통합이 계속 작동할 수 있습니다.
GitHub Apps 확장 가능한 속도 제한이 있습니다.
설치 액세스 토큰 사용에 대한 GitHub Apps 속도 제한은 리포지토리 수와 조직 사용자 수로 확장됩니다. 반대로, OAuth apps 속도 제한이 낮고 크기가 조정되지 않습니다. 자세한 내용은 GitHub 앱에 대한 속도 제한을(를) 참조하세요.
GitHub Apps 웹후크가 내장되어 있습니다
GitHub Apps에는 기본 제공되는 중앙 관리형 웹후크가 있습니다. GitHub Apps 는 앱이 액세스할 수 있는 모든 리포지토리 및 조직에 대한 웹후크 이벤트를 수신할 수 있습니다. 반대로 각 OAuth apps 리포지토리 및 조직에 대해 개별적으로 웹후크를 구성해야 합니다.
API 액세스는 약간 다릅니다.
일반적으로 GitHub AppsOAuth apps 동일한 API 요청을 수행할 수 있습니다. 하지만 약간의 차이점이 있습니다.
- 검사 실행 및 검사 모음을 관리하기 위한 REST API는 GitHub Apps에만 제공됩니다.
- 현재 모든 엔터프라이즈 수준 API가 GitHub Apps 지원하는 것은 아닙니다. 더 많은 API를 지원하기 위해 새 권한이 추가되고 있습니다. GitHub 앱에 필요한 권한을 확인하여 지원되는 엔터프라이즈 권한 및 API 목록을 검토합니다.
- 일부 요청은 GitHub App에 부여된 권한 및 리포지토리 액세스 권한에 따라 불완전한 데이터를 반환할 수 있습니다. 예를 들어 앱이 사용자가 액세스할 수 있는 모든 리포지토리를 가져오도록 요청하는 경우 응답에는 앱에 대한 액세스 권한도 부여된 리포지토리만 포함됩니다.
사용할 수 있는 REST API 엔드포인트에 대한 자세한 내용은 GitHub Apps을 참조하세요.
GitHub App와 personal access token 중에서 선택하기
사용자 또는 조직을 대신하여 GitHub 리소스에 액세스해야 하거나 장기적으로 유지되는 통합이 예상되는 경우, GitHub App를 구축하는 것이 좋습니다.
API 테스트 또는 수명이 짧은 스크립트에 사용할 personal access tokens 수 있습니다. 사용자가 personal access token 사용자와 연결되어 있으므로 사용자가 더 이상 필요한 리소스에 액세스할 수 없으면 자동화가 중단될 수 있습니다. GitHub App 기업 또는 조직에 설치된 항목은 사용자에게 종속되지 않습니다. 또한 사용자와 달리 GitHub App는 GitHub라이선스를 차지하지 않습니다.
GitHub는 personal access tokens의 두 가지 형식을 지원하지만, 가능하면 fine-grained personal access token 대신 personal access tokens (classic)를 사용하는 것이 좋습니다. personal access tokens에 대한 자세한 내용은 개인용 액세스 토큰 관리을(를) 참조하세요.
GitHub App 또는 GitHub Actions 중에서 선택
GitHub Apps와 GitHub Actions 둘 다 자동화 및 워크플로 도구를 구축할 수 있는 방법을 제공합니다.
_ GitHub Actions _ 는 리포지토리에서 연속 통합, 배포 작업 및 프로젝트 관리와 같은 작업을 수행할 수 있는 자동화를 제공합니다. 호스팅된 GitHub 실행기 머신 또는 관리자가 설정한 자체 호스팅 실행기에서 직접 실행됩니다. GitHub Actions 은 영구적으로 실행되지 않습니다. GitHub Actions 워크플로는 해당 리포지토리에서 발생하는 이벤트에 대한 응답으로 실행되며, 설정된 리포지토리의 리소스에만 액세스할 수 있습니다. 그러나 사용자 지정 작업은 리포지토리 및 조직 간에 공유할 수 있으므로 개발자는 요구 사항에 맞게 기존 작업을 다시 사용하고 수정할 수 있습니다. GitHub Actions 또한 타사 서비스와 안전하게 상호 작용하고 배포 키를 안전하게 관리하는 데 사용할 수 있는 기본 제공 비밀 관리가 제공됩니다.
_ GitHub Apps _ 사용자 디바이스에서 제공하거나 실행하는 서버 또는 컴퓨팅 인프라에서 영구적으로 실행됩니다. GitHub 웹후크 이벤트뿐만 아니라 GitHub 에코시스템 외부의 이벤트에도 반응할 수 있습니다. 여러 리포지토리 또는 조직에 걸쳐 있는 작업 또는 호스트된 서비스를 다른 조직 및 엔터프라이즈에 제공하는 데 적합한 옵션입니다. GitHub App 외부에서 주로 발생하거나 GitHub 워크플로에 할당된 것보다 더 많은 실행 시간 또는 권한이 필요한 기능이 포함된 도구를 구축할 때는 GitHub Actions가 가장 적합한 선택입니다.
비교에 대한 자세한 내용은 GitHub Actions을 GitHub Apps참조하세요.
GitHub App에서 인증하는 데 GitHub Actions을 사용할 수 있습니다.
기본 제공되는 GITHUB_TOKEN에 충분한 권한이 없는 경우의 워크플로 자세한 내용은 GitHub Actions 워크플로에서 GitHub 앱을 사용하여 인증된 API 요청 만들기을(를) 참조하세요.