

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# GitHub 글로벌 및 조직 웹후크
<a name="github-global-organization-webhook"></a>

CodeBuild GitHub 글로벌 또는 조직 웹후크를 사용하여 GitHub 조직 또는 엔터프라이즈 내의 모든 리포지토리에서 웹후크 이벤트를 기반으로 빌드를 시작할 수 있습니다. 글로벌 및 조직 웹후크는 기존 GitHub 웹후크 이벤트 유형에서 작동하며 CodeBuild 웹후크를 생성할 때 범위 구성을 추가하여 구성할 수 있습니다. 글로벌 및 조직 웹후크를 사용하여 [ CodeBuild 내에서 자체 호스팅 GitHub Action 실행기를 설정](action-runner.md)하여 단일 프로젝트 내의 여러 리포지토리에서 `WORKFLOW_JOB_QUEUED` 이벤트를 수신할 수도 있습니다.

**Topics**
+ [글로벌 또는 조직 GitHub 웹후크 설정](github-global-organization-webhook-setup.md)
+ [GitHub 글로벌 또는 조직 웹후크 이벤트 필터링(콘솔)](github-global-organization-webhook-events-console.md)
+ [GitHub 조직 웹후크 이벤트 필터링(CloudFormation)](github-organization-webhook-events-cfn.md)

# 글로벌 또는 조직 GitHub 웹후크 설정
<a name="github-global-organization-webhook-setup"></a>

글로벌 또는 조직 GitHub 웹후크를 설정하는 상위 단계는 다음과 같습니다. 글로벌 및 조직 GitHub 웹후크에 대한 자세한 내용은 [GitHub 글로벌 및 조직 웹후크](github-global-organization-webhook.md) 섹션을 참조하세요.

1. 프로젝트의 소스 위치를 `CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`으로 설정합니다.

1. 웹후크의 범위 구성에서 범위가 조직인지 [글로벌 웹후크](https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/exploring-user-activity-in-your-enterprise/managing-global-webhooks)인지에 따라 `GITHUB_ORGANIZATION` 또는 `GITHUB_GLOBAL` 중 하나로 설정합니다. 자세한 내용은 [웹후크 유형](https://docs.github.com/en/webhooks/types-of-webhooks)을 참조하세요.

1. 웹후크의 범위 구성의 일부로 이름을 지정합니다. 조직 웹후크의 경우 조직 이름이고 글로벌 웹후크의 경우 엔터프라이즈 이름입니다.
**참고**  
프로젝트의 소스 유형이 `GITHUB_ENTERPRISE`인 경우 웹후크 범위 구성의 일부로 도메인을 지정해야 합니다.

1. (선택 사항) 조직 또는 엔터프라이즈 내의 특정 리포지토리에 대해서만 웹후크 이벤트를 수신하려면 웹후크를 생성할 때 `REPOSITORY_NAME`을 필터로 지정할 수 있습니다.

1. 조직 웹후크를 생성하는 경우 CodeBuild에 GitHub 내에서 조직 수준 웹후크를 생성할 수 있는 권한이 있는지 확인합니다. 조직 웹후크 권한을 사용하여 GitHub 개인 액세스 토큰을 생성하거나 CodeBuild OAuth를 사용할 수 있습니다. 자세한 내용은 [GitHub 및 GitHub Enterprise Server 액세스 토큰](access-tokens-github.md) 단원을 참조하십시오.

   조직 웹후크는 기존 GitHub 웹후크 이벤트 유형에서 작동합니다.

1. 글로벌 웹후크를 생성하는 경우 웹후크를 수동으로 생성해야 합니다. GitHub 내에서 웹후크를 수동으로 생성하는 방법에 대한 자세한 내용은 [GitHub 수동 웹후크](github-manual-webhook.md) 섹션을 참조하세요.

   글로벌 웹후크는 `WORKFLOW_JOB_QUEUED` 이벤트 유형만 지원합니다. 자세한 내용은 [자습서: CodeBuild 호스팅 GitHub Action 실행기 구성](action-runner.md) 단원을 참조하십시오.

# GitHub 글로벌 또는 조직 웹후크 이벤트 필터링(콘솔)
<a name="github-global-organization-webhook-events-console"></a>

콘솔을 통해 GitHub 프로젝트를 생성할 때 다음 옵션을 선택하여 프로젝트 내에 GitHub 글로벌 또는 조직 웹후크를 생성합니다. 글로벌 및 조직 GitHub 웹후크에 대한 자세한 내용은 [GitHub 글로벌 및 조직 웹후크](github-global-organization-webhook.md) 섹션을 참조하세요.

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) AWS CodeBuild 콘솔을 엽니다.

1. 빌드 프로젝트를 생성합니다. 자세한 내용은 [빌드 프로젝트 만들기(콘솔)](create-project.md#create-project-console) 및 [빌드 실행(콘솔)](run-build-console.md) 섹션을 참조하세요.
   +  **소스**에서 다음과 같이 합니다.
     +  **소스 공급자**에서 **GitHub** 또는 **GitHub Enterprise**를 선택합니다.
     +  **리포지토리**에서 **GitHub 범위 웹후크**를 선택합니다.

        GitHub 리포지토리는 자동으로 `CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`으로 설정되며, 이는 글로벌 및 조직 웹후크에 필요한 소스 위치입니다.
**참고**  
조직 웹후크를 사용하는 경우 CodeBuild에 GitHub 내에서 조직 수준 웹후크를 생성할 수 있는 권한이 있는지 확인합니다. [기존 OAuth 연결](oauth-app-github.md)을 사용하는 경우 CodeBuild에 이 권한을 부여하려면 연결을 다시 생성해야 할 수 있습니다. 또는 [CodeBuild 수동 웹후크 기능](github-manual-webhook.md)을 사용하여 수동으로 웹후크를 생성할 수 있습니다. 기존 GitHub OAuth 토큰이 있고 조직 권한을 추가하려는 경우 [OAuth 토큰의 권한을 취소](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps)하고 CodeBuild 콘솔을 통해 토큰을 다시 연결할 수 있습니다.  
![\[GitHub 범위 웹후크의 구성입니다.\]](http://docs.aws.amazon.com/ko_kr/codebuild/latest/userguide/images/github-organization-webhook-source.png)
   +  **기본 소스 웹후크 이벤트**에서: 
     +  **범위 유형 **에서 조직 웹후크를 생성하는 경우 **조직 수준**을 선택하고 글로벌 웹후크를 생성하는 경우 **엔터프라이즈 수준**을 선택합니다.
     +  웹후크가 글로벌 웹후크인지 아니면 조직 웹후크인지에 따라 **이름**에 엔터프라이즈 또는 조직 이름을 입력합니다.

       프로젝트의 소스 유형이 `GITHUB_ENTERPRISE`인 경우 웹후크 조직 구성의 일부로 도메인을 지정해야 합니다. 예를 들어 조직의 URL이 **https://domain.com/orgs/org-name**인 경우 도메인은 **https://domain.com**입니다.
**참고**  
 웹후크가 생성된 후에는 이 이름을 변경할 수 없습니다. 이름을 변경하려면 웹후크를 삭제하고 다시 생성할 수 있습니다. 웹후크를 완전히 제거하려면 프로젝트 소스 위치를 GitHub 리포지토리로 업데이트할 수도 있습니다.  
![\[글로벌 또는 조직 웹후크의 구성입니다.\]](http://docs.aws.amazon.com/ko_kr/codebuild/latest/userguide/images/github-organization-webhook-primary-events.png)
     +  (선택 사항) **웹후크 이벤트 필터 그룹**에서 [새 빌드를 트리거할 이벤트](github-webhook.md)를 지정할 수 있습니다. 특정 리포지토리의 웹후크 이벤트에서만 빌드를 트리거하는 필터로 `REPOSITORY_NAME`을 지정할 수도 있습니다.  
![\[특정 리포지토리의 웹후크 이벤트에서만 빌드를 트리거하는 필터입니다.\]](http://docs.aws.amazon.com/ko_kr/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       이벤트 유형을 `WORKFLOW_JOB_QUEUED`로 설정하여 자체 호스팅 GitHub Action 실행기를 설정할 수도 있습니다. 자세한 내용은 [자습서: CodeBuild 호스팅 GitHub Action 실행기 구성](action-runner.md) 단원을 참조하십시오.

1. 기본값으로 계속 진행한 다음 **빌드 프로젝트 생성**을 선택합니다.

# GitHub 조직 웹후크 이벤트 필터링(CloudFormation)
<a name="github-organization-webhook-events-cfn"></a>

 CloudFormation 템플릿을 사용하여 조직 웹후크 이벤트를 필터링하려면 프로젝트의 `ScopeConfiguration` 속성을 사용합니다 AWS CodeBuild . 글로벌 및 조직 GitHub 웹후크에 대한 자세한 내용은 [GitHub 글로벌 및 조직 웹후크](github-global-organization-webhook.md) 섹션을 참조하세요.

**참고**  
글로벌 웹후크 및 GitHub Enterprise 웹후크는에서 지원되지 않습니다 CloudFormation.

 CloudFormation 템플릿의 다음 YAML 형식 부분은 4개의 필터 그룹을 생성합니다. 이들은 하나 또는 모두 true로 평가되면 빌드를 트리거합니다.
+  첫 번째 필터 그룹은 계정 ID가 `12345`와 일치하지 않는 GitHub 사용자가 정규식 `^refs/heads/main$`와 일치하는 Git 참조 이름을 갖는 브랜치에서 생성 또는 업데이트한 pull 요청을 지정합니다.
+  두 번째 필터 그룹은 정규식 `^refs/heads/.*`와 일치하는 Git 참조 이름을 갖는 브랜치에서 정규식 `READ_ME`와 일치하는 이름을 갖는 파일에 생성되는 push 요청을 지정합니다.
+ 세 번째 필터 그룹은 정규식 `\[CodeBuild\]`와 일치하는 헤드 커밋 메시지에서 push 요청을 지정합니다.
+ 네 번째 필터 그룹은 정규식 `\[CI-CodeBuild\]`와 일치하는 워크플로 이름을 가진 GitHub Action 워크플로 작업 요청을 지정합니다.

```
CodeBuildProject:
  Type: AWS::CodeBuild::Project
  Properties:
    Name: MyProject
    ServiceRole: service-role
    Artifacts:
      Type: NO_ARTIFACTS
    Environment:
      Type: LINUX_CONTAINER
      ComputeType: BUILD_GENERAL1_SMALL
      Image: aws/codebuild/standard:5.0
    Source:
      Type: GITHUB
      Location: source-location
    Triggers:
      Webhook: true
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      FilterGroups:
        - - Type: EVENT
            Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
          - Type: BASE_REF
            Pattern: ^refs/heads/main$
            ExcludeMatchedPattern: false
          - Type: ACTOR_ACCOUNT_ID
            Pattern: 12345
            ExcludeMatchedPattern: true
        - - Type: EVENT
            Pattern: PUSH
          - Type: HEAD_REF
            Pattern: ^refs/heads/.*
          - Type: FILE_PATH
            Pattern: READ_ME
            ExcludeMatchedPattern: true
        - - Type: EVENT
            Pattern: PUSH
          - Type: COMMIT_MESSAGE
            Pattern: \[CodeBuild\]
          - Type: FILE_PATH
            Pattern: ^src/.+|^test/.+
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```