Skip to main content

GitHub 앱 빌드할 시기 결정

통합을 빌드할 때 OAuth app, personal access token 또는 GitHub Actions 대신 다음 시나리오에서 GitHub App를 사용하는 것이 좋습니다.

OAuth app 대신 GitHub 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에는 앱이 리포지토리 콘텐츠 및 설정을 편집할 수 있는 scope 필요합니다 repo . 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 Enterprise Cloud의 좌석을 사용하지 않습니다. GitHub Apps은(는) 앱을 처음 설치한 사람이 organization 떠나는 경우에도 계속 설치됩니다. 이렇게 하면 사람들이 팀을 떠나더라도 통합이 계속 작동할 수 있습니다.

GitHub Apps에는 확장 가능한 속도 제한이 있습니다.

설치 액세스 토큰을 사용하는 GitHub Apps의 속도 제한은 리포지토리 수와 organization 사용자 수로 확장됩니다. 반대로 OAuth apps은(는) 속도 제한이 낮으며 크기를 조정하지 않습니다. 자세한 내용은 "GitHub 앱의 속도 제한"을 참조하세요.

GitHub Apps이(가) 웹후크에 기본 제공

GitHub Apps에는 기본 제공 중앙 집중식 웹후크가 있습니다. GitHub Apps는 앱이 액세스할 수 있는 모든 리포지토리 및 조직에 대한 웹후크 이벤트를 받을 수 있습니다. 반대로 OAuth apps은 각 리포지토리 및 organization 대해 개별적으로 웹후크를 구성해야 합니다.

API 액세스는 약간 다릅니다.

일반적으로 GitHub Apps 및 OAuth apps는 동일한 API 요청을 수행할 수 있습니다. 하지만 약간의 차이점이 있습니다.

  • 검사 실행 및 검사 제품군을 관리하는 REST API는 GitHub Apps에서만 사용할 수 있습니다.
  • 엔터프라이즈 개체 자체와 같은 엔터프라이즈 수준 리소스는 GitHub Apps에서 사용할 수 없습니다. 즉, GitHub Apps은(는) 와 같은 GET /enterprise/settings/license엔드포인트를 호출할 수 없습니다. 그러나 엔터프라이즈 소유 organization 및 리포지토리 리소스를 사용할 수 있습니다.
  • 일부 요청은 GitHub App에 부여된 권한 및 리포지토리 액세스에 따라 불완전한 데이터를 반환할 수 있습니다. 예를 들어 앱이 사용자가 액세스할 수 있는 모든 리포지토리를 가져오기 위해 요청하는 경우 응답에는 앱에 액세스 권한이 부여된 리포지토리만 포함됩니다.

GitHub Apps에 사용할 수 있는 REST API 엔드포인트에 대한 자세한 내용은 "GitHub 앱 설치 액세스 토큰에 사용할 수 있는 엔드포인트"을 참조하세요.

GitHub App 또는 personal access token 중에서 선택

사용자를 대신하여 또는 organization GitHub 리소스에 액세스하거나 수명이 긴 통합을 예상하는 경우 GitHub App을(를) 빌드하는 것이 좋습니다.

API 테스트 또는 수명이 짧은 스크립트에 personal access tokens를 사용할 수 있습니다. personal access token은(는) 사용자와 연결되어 있으므로 사용자가 더 이상 필요한 리소스에 액세스할 수 없으면 자동화가 중단될 수 있습니다. organization 설치된 GitHub App은(는) 사용자에 종속되지 않습니다. 또한 사용자와 달리 GitHub App은(는) GitHub 좌석을 사용하지 않습니다.

GitHub은(는) 두 가지 유형의 personal access tokens을(를) 지원하지만 가능하면 personal access tokens (classic) 대신 fine-grained personal access tokens를 사용하는 것이 좋습니다. 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 요청 만들기"을 참조하세요.