Skip to main content

GitHub 앱 만들기 정보

GitHub Apps을 사용하면 프로세스를 자동화하고 GitHub의 기능을 확장하는 통합을 빌드할 수 있습니다.

GitHub Apps 정보

GitHub App은 GitHub의 기능과 상호 작용하고 확장하기 위해 빌드할 수 있는 통합 유형입니다. 사용자를 로그인하거나 서비스 계정을 만들지 않고도 GitHub App을 빌드하여 유연성을 제공하고 프로세스의 마찰을 줄일 수 있습니다.

GitHub Apps의 일반 사용 사례는 다음과 같습니다.

  • 작업 또는 백그라운드 프로세스 자동화
  • 사용자가 GitHub 계정으로 로그인하여 에코시스템에서 ID를 제공할 수 있는 "GitHub(으)로 로그인"을 지원합니다.
  • 사용자가 GitHub App에 로그인하여 GitHub와 작업할 수 있도록 허용하면 개발자 도구로서 대신 작업할 수 있습니다.
  • GitHub와 도구 또는 외부 서비스를 통합

OAuth apps과 GitHub Apps은 OAuth 2.0을 사용하고 사용자를 대신하여 작업을 수행할 수 있습니다. OAuth apps과 달리 GitHub Apps은 사용자와 독립적으로 작동할 수도 있습니다.

GitHub Apps은 조직 및 개인 계정에 직접 설치가 가능하고 특정 리포지토리에 대한 액세스 권한을 부여받을 수 있습니다. 또한 기본 제공 웹후크와 범위가 좁은 특정 권한이 함께 제공됩니다.

엔터프라이즈 내 조직에만 설치할 수 있고 엔터프라이즈 구성원만 권한을 부여할 수 있는 엔터프라이즈 소유 GitHub App을(를) 만들 수도 있습니다. 자세한 내용은 "엔터프라이즈를 위한 GitHub 앱 만들기" 항목을 참조하세요.

기본적으로 조직의 소유자만 조직에서 GitHub 앱의 설정을 관리할 수 있습니다. 추가 사용자가 조직에서 소유한 GitHub 앱의 개발자 설정을 변경할 수 있도록 소유자가 GitHub 앱 관리자 권한을 부여할 수 있습니다. GitHub 앱 관리자는 제3자 응용 프로그램을 관리할 수 없습니다. 조직에서 GitHub 앱 관리자를 추가하고 제거하는 방법에 대한 자세한 내용은 "조직의 역할"을 참조하세요.

GitHub App 빌드하기

GitHub App을 빌드하려면 먼저 GitHub App을 등록해야 합니다. 자세한 내용은 "GitHub 앱 등록" 항목을 참조하세요.

그런 다음 GitHub App에 기능을 추가하는 코드를 작성해야 합니다. GitHub App 등록의 자격 증명을 사용하여 GitHub의 API에 대한 인증된 요청을 수행할 수 있습니다. GitHub App의 코드 작성에 대한 자세한 내용은 "GitHub 앱의 코드 작성 정보" 항목을 참조하세요. 인증된 요청을 수행하는 방법에 대한 자세한 내용은 "AUTOTITLE" 항목을 참조하세요.

GitHub App에 대한 코드를 작성했으면 앱이 어딘가에서 실행되어야 합니다. 앱이 웹 사이트 또는 웹앱인 경우 Azure App Service와 같은 서버에서 앱을 호스트할 수 있습니다. 앱이 클라이언트 쪽 앱인 경우 사용자의 디바이스에서 실행될 수 있습니다.

GitHub App을(를) 사용하려면 조직 또는 개인 계정에 설치해야 합니다.

  • GitHub App이(가) 비공개인 경우 앱을 소유한 계정에서만 설치할 수 있습니다.
  • GitHub App이(가) 공개인 경우 다른 사용자 및 조직도 설치할 수 있습니다..
  • 엔터프라이즈에서 GitHub App을(를) 소유한 경우 해당 엔터프라이즈 내의 모든 조직에 설치할 수 있습니다.

자세한 내용은 "자신만의 GitHub 앱 설치" 및 "GitHub 앱 공유" 항목을 참조하세요.

빌드할 GitHub App의 유형 이해

GitHub App을 디자인하는 데에는 앱에서 사용할 기능에 따라 고려할 수 있는 여러가지 방법이 있습니다.

사용자를 대신하여 작동하는 GitHub Apps

앱이 사용자를 대신하여 작업을 수행하도록 하려면 인증에 사용자 액세스 토큰을 사용해야 합니다. 이 유형의 요청은 "사용자-서버"라고도 하며, 이는 앱에 부여된 권한과 사용자의 권한에 따라 앱이 제한된다는 의미합니다. 이 패턴을 사용하면 먼저 앱에 권한을 부여해야 앱이 작업을 수행할 수 있습니다. 자세한 내용은 "사용자를 대신하여 GitHub 앱으로 인증" 항목을 참조하세요.

앱이 사용자를 대신하여 작동하는 GitHub App으로 만들 수 있는 자동화의 몇 가지 예는 다음과 같습니다.

  • 에코시스템의 ID 공급자로 GitHub를 사용하는 GitHub App입니다.
  • GitHub 사용자에게 유용할 수 있는 GitHub에 서비스를 추가하는 GitHub App입니다. GitHub Marketplace를 통해 또는 앱을 공개하여 다른 개발자와 앱을 공유할 수 있습니다.

사용자 대신 작동하는 GitHub Apps

앱이 사용자 대신이 아닌 자체적으로 작업을 수행하도록 하려면 인증에 설치 액세스 토큰을 사용해야 합니다. 이 유형의 요청은 "서버 간"이라고도 하며 앱에 부여된 권한에 따라 앱이 제한된다는 의미합니다. 자세한 내용은 "GitHub 앱 설치로 인증" 항목을 참조하세요.

앱이 자체적으로 작동하는 GitHub App을 사용하여 만들 수 있는 자동화의 몇 가지 예는 다음과 같습니다.

  • 특정 조건 세트가 지정된 이벤트에 반응하는 웹후크를 사용한 GitHub App입니다. 예를 들어 특정 정책에 따라 요청을 승인하는 fine-grained personal access token에 대한 요청을 검토하기 위해 REST API 엔드포인트를 중심으로 자동화를 만들 수 있습니다.
  • 리포지토리 기여자에게 도움이 되는 GitHub App입니다. 예를 들어 앱은 기여자 끌어오기 요청을 만들거나 주석을 만든 후 유용한 리소스를 게시할 수 있습니다.
  • 다른 CI/CD 도구에 제공하거나 리포지토리에서 정보를 끌어올 수 있는 수명이 짧은 토큰을 생성하는 GitHub App입니다.

웹후크에 응답하는 GitHub Apps

앱이 GitHub의 이벤트에 응답하도록 하려면 앱이 웹후크를 구독해야 합니다. 예를 들어 끌어오기 요청이 열릴 때 앱이 주석을 남기도록 할 수 있습니다. 자세한 내용은 "GitHub 앱에 웹후크 사용" 항목을 참조하세요.

특정 작업을 수행할 수 있는 GitHub Apps

GitHub App을 설정할 때 앱에 대한 특정 권한을 선택할 수 있습니다. 이러한 권한은 GitHub API를 통해 앱이 수행할 수 있는 작업, 로그인한 사용자를 대신하여 수행할 수 있는 작업 및 앱이 받을 수 있는 웹후크를 결정합니다. 자세한 내용은 "GitHub 앱의 권한 선택" 항목을 참조하세요.