Skip to main content

엔터프라이즈의 자동화

GitHub Apps, 외부 서비스 및 GitHub Actions가 함께 작동하여 귀사의 프로세스를 자동화하는 방식을 알아보세요.

일반적으로 자동화에는 GitHub 여러 구성 요소가 함께 작동합니다. 가장 중요한 GitHub 네이티브 구성 요소는 다음과 같습니다.

  • GitHub Actions 워크플로- 자동화 논리를 실행하기 위한 런타임을 제공합니다. 즉, 단일 리포지토리 내에서 작동하지만 리포지토리 전체 또는 외부에서 자동화하도록 확장할 수 있습니다.
  • GitHub Apps- 런타임이 없습니다. 대신 외부 서비스 또는 워크플로에 관계없이 자동화가 안전하게 인증되고 작동할 수 있도록 ID, 권한 및 이벤트 배달을 제공합니다.

대부분의 엔터프라이즈 자동화는 함께 사용합니다 GitHub AppsGitHub Actions . 예를 들어, GitHub Actions에서 실행 중인 워크플로는 여러 리포지토리 또는 조직 전반에서 작업을 수행할 수 있게 해 주는 수명이 짧은 토큰을 얻기 위해 GitHub App를 사용할 수 있습니다.

이 가이드에서는 GitHub Apps외부 자동화, 상호 보완 방법 및 GitHub Actions 엔터프라이즈에서 각각을 사용하는 경우에 대해 설명합니다.

GitHub Apps

A GitHub App 는 리포지토리, 조직 또는 엔터프라이즈에서 자동화하는 데 필요한 ID, 권한 및 웹후크 이벤트를 제공합니다. GitHub Apps 자체는 로직을 실행하지 않으며, 다른 시스템이 이를 실행할 수 있도록 합니다.

GitHub Apps 다음을 제공하여 엔터프라이즈 자동화를 지원합니다.

  • 세분화된 접근 권한을 사용하여 최소 권한 원칙을 따르다
  • 엔터프라이즈, 조직 또는 리포지토리 수준에서 설치 범위 지정
  • 보안 액세스를 위한 수명이 짧은 토큰
  • 완전한 감사 기능을 갖춘 고유 ID
  • 관리자 역할을 통해 ****GitHub App
  •           엔터프라이즈 계정 소유 시 **대규모 일관성**
    

GitHub Apps으로 무엇을 사용할 수 있습니까?

GitHub Apps 외부 서비스 또는 워크플로 단계와 같이 다른 곳에서 작성하는 자동화가 부여한 권한 내에서 API에 GitHub 대해 작동할 수 있도록 허용합니다. 다음은 그 예입니다.

  • 웹후크 이벤트 수신 및 외부 서비스 트리거
  • 워크플로가 기본 리포지토리 범위 외부에서 작동하도록 설정
  • GitHub 타사 시스템과 통합
  • 여러 리포지토리에서 변경 내용 조정
  • 엔터프라이즈 수준 활동을 모니터링하는 수명이 긴 봇 또는 서비스 실행

GitHub Actions

GitHub Actions는 리포지토리 내에서 자동화 논리를 실행하기 위한 기본 제공 GitHub을 제공합니다****. 워크플로는 호스트된 실행기 또는 실행되며 코드 변경 또는 리포지토리 이벤트와 관련된 작업에 적합합니다.

다음 용도로 GitHub Actions를 사용하십시오.

  • CI/CD(빌드, 테스트, 배포)
  • 끌어오기 요청 검사 및 유효성 검사
  • 리포지토리 수준 유지 관리 작업
  • 푸시, 태그 또는 문제 업데이트에 응답하는 이벤트 기반 워크플로
  • cron을 사용하여 예약된 작업

GitHub Actions에서 GitHub Apps을(를) 사용하는 방법

GitHub Actions 은 GitHub Apps 다음과 같이 긴밀하게 연결됩니다.

  • 워크플로 권한은 GitHub App 권한에 직접 매핑됩니다.
  • 워크플로는 actions/create-github-app-token를 사용하여 특정 GitHub App로 인증할 수 있습니다.
  • GitHub Apps 와 같은 repository_dispatch이벤트를 통해 워크플로를 트리거할 수 있습니다.

외부 자동화 및 서비스

외부 자동화는 GitHub 외부의 자체 인프라에서 실행됩니다. 이러한 서비스는 일반적으로 다음과 같습니다.

  • GitHub App에서 웹후크 이벤트를 수신
  • 짧은 수명의 설치 토큰을 요청하려면 GitHub App을(를) 사용하세요.
  • 장기 실행 또는 엔터프라이즈 간 논리 실행
  • 외부 비즈니스 시스템과 통합

예를 들면 다음과 같습니다.

  • 조직 전체 구성 관리
  • 정책 적용 서비스
  • 다중 리포지토리 코드 또는 메타데이터 동기화
  • 준수 보고서 생성
  • 조직 간 문제 또는 끌어오기 요청 관리

이러한 모든 항목은 실행을 위한 것이 아니라 인증, ID 및 이벤트를 위해 GitHub Apps에 의존합니다.

이러한 구성 요소가 함께 작동하는 방법

대부분의 엔터프라이즈 자동화는 GitHub Apps, 외부 서비스, 그리고 GitHub Actions의 조합을 사용해 견고하고 확장 가능한 워크플로를 구현합니다.

다음은 그 예입니다.

  1. 엔터프라이즈 GitHub App 는 새 리포지토리를 만들 때 웹후크를 수신하고 웹후크 페이로드를 외부 서비스가 실행 중인 서버로 보냅니다.
  2. 외부 서비스는 필요한 설정을 표준화하고 리소스를 프로비전합니다.
  3. 서비스는 리포지토리에서 워크플로를 트리거합니다 GitHub Actions .
  4. 워크플로는 CI를 수행하거나, 템플릿을 배포하거나, 검사를 구성합니다.

각 구성 요소는 다른 자동화 계층을 처리합니다.

각 유형의 자동화를 사용해야 하는 경우

다음이 필요한 경우 a GitHub App 사용:

  • 여러 리포지토리에서 작동하는 인증 또는 권한
  • 외부 시스템과 통합
  • 웹후크 기반 자동화
  • 수명이 긴 워크플로 또는 엔터프라이즈 전체 워크플로
  • 감사 가능성 및 ID 분리

필요한 경우 외부 자동화를 사용합니다.

  • 지속적으로 또는 외부에서 실행되는 논리 GitHub
  • 내부 시스템과 통합

필요한 경우 다음을 사용합니다 GitHub Actions .

  • CI/CD 파이프라인
  • 리포지토리 범위 자동화
  • 리포지토리 이벤트에 연결된 자동화된 검사
  • GitHub의 runner 인프라를 사용한 논리 실행

** GitHub Apps 및 GitHub Actions를 함께 사용하는 경우:**

  • 워크플로는 리포지토리의 기본 사용 권한 이상으로 작동해야 합니다.
  • GitHub App 워크플로를 트리거해야 합니다.
  • 외부 로직이 리포지토리 내 실행을 조율합니다.
  • 엔터프라이즈 차원의 정책 또는 워크플로에는 ID와 런타임이 모두 필요합니다.

다음 단계

GitHub Apps의 엔터프라이즈 수준에서 디자인 및 관리하는 방법을 알아봅니다.