

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

# 코드 푸시 또는 풀 요청 이벤트 유형을 사용하여 트리거 추가
<a name="pipelines-filter"></a>

태그 또는 브랜치 푸시, 특정 파일 경로 변경, 특정 브랜치로 열린 풀 요청 등과 같은 다양한 Git 이벤트에 대해 파이프라인 실행을 시작하도록 파이프라인 트리거에 대한 필터를 구성할 수 있습니다. AWS CodePipeline 콘솔 또는의 **create-pipeline** 및 **update-pipeline** 명령을 사용하여 트리거 필터를 AWS CLI 구성할 수 있습니다.

**참고**  
작업 구성 `BranchName` 필드는 단일 브랜치를 정의하는 반면, 필터가 있는 트리거는 지정한 모든 브랜치에 사용할 수 있습니다. 트리거를 사용하여 푸시 또는 풀 요청으로 브랜치를 필터링하는 파이프라인의 경우 파이프라인은 작업 구성에서 기본 `BranchName` 필드 브랜치를 사용하지 않습니다. 그러나 작업 구성의 `BranchName` 필드에 있는 브랜치는 파이프라인을 수동으로 시작할 때 기본값입니다. 예제는 [5: 수동 시작 시 기본 작업 구성 BranchName이 사용되도록 구성된 트리거](pipelines-triggers.md#example-filter-default-manual) 섹션을 참조하세요.

다음 트리거 유형에 대한 필터를 지정할 수 있습니다.
+ **푸시**

  푸시 트리거는 변경 사항이 소스 리포지토리로 푸시될 때 파이프라인을 시작합니다. 실행은 *푸시하려는* 브랜치(즉, 대상 브랜치)의 커밋을 사용합니다. 브랜치, 파일 경로 또는 Git 태그에서 푸시 트리거를 필터링할 수 있습니다.
+ **풀 요청**

  풀 요청 트리거는 소스 리포지토리에서 풀 요청이 열리거나 업데이트되거나 닫힐 때 파이프라인을 시작합니다. 실행은 *가져오려는* 소스 브랜치(즉, 소스 브랜치)에서 커밋을 사용합니다. 브랜치 및 파일 경로에서 풀 요청 트리거를 필터링할 수 있습니다.

  풀 요청에 지원되는 이벤트 유형은 다음과 같습니다. 다른 모든 풀 요청 이벤트는 무시됩니다.
  + Opened(열어봄)
  + 업데이트
  + 종료됨(병합됨)
**참고**  
특정 풀 요청 이벤트 동작은 공급자마다 다를 수 있습니다. 자세한 내용은 [공급자별 트리거에 대한 풀 요청 이벤트](pipelines-triggers.md#pipelines-filter-pullrequest-events)을 참조하세요.

파이프라인 정의를 사용하면 동일한 푸시 트리거 구성 내에서 서로 다른 필터를 결합할 수 있습니다. 파이프라인 정의에 대한 자세한 내용은 [푸시 및 풀 요청 이벤트 유형에 대한 필터 추가(CLI)](#pipelines-filter-cli) 섹션을 참조하세요. 필드 정의 목록은이 가이드의 *파이프라인 구조 참조*에서 [트리거](pipeline-requirements.md#pipeline.triggers)를 참조하세요.

**Topics**
+ [푸시 및 풀 요청 이벤트 유형에 대한 필터 추가(콘솔)](#pipelines-filter-console)
+ [푸시 및 풀 요청 이벤트 유형에 대한 필터 추가(CLI)](#pipelines-filter-cli)
+ [푸시 및 풀 요청 이벤트 유형에 대한 필터 추가(CloudFormation 템플릿)](#pipelines-filter-cfn)

## 푸시 및 풀 요청 이벤트 유형에 대한 필터 추가(콘솔)
<a name="pipelines-filter-console"></a>

콘솔을 사용하여 푸시 이벤트에 대한 필터를 추가하고 브랜치 또는 파일 경로를 포함하거나 제외할 수 있습니다.

**필터 추가(콘솔)**

1. 에 로그인 AWS Management Console 하고 [http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) CodePipeline 콘솔을 엽니다.

    AWS 계정과 연결된 모든 파이프라인의 이름과 상태가 표시됩니다.

1. [**Name**]에서 편집할 파이프라인의 이름을 선택합니다. 그렇지 않으면 파이프라인 생성 마법사에서 다음 단계를 사용합니다.

1. 파이프라인 세부 정보 페이지에서 [**Edit**]를 선택합니다.

1. **편집** 페이지에서 편집하려는 소스 작업을 선택합니다. **트리거 편집**을 선택합니다. **필터 지정**을 선택합니다.

1. **이벤트 유형**의 다음 옵션에서 **푸시**를 선택합니다.
   + 변경을 소스 리포지토리로 푸시할 때 파이프라인을 시작하려면 **푸시**를 선택합니다. 이 옵션을 선택하면 필드에서 브랜치 및 파일 경로 또는 Git 태그에 대한 필터를 지정할 수 있습니다.
   + 소스 리포지토리에서 풀 요청이 열리거나, 업데이트되거나, 닫힐 때 파이프라인을 시작하려면 **풀 요청**을 선택합니다. 이 옵션을 선택하면 필드에서 대상 브랜치 및 파일 경로에 대한 필터를 지정할 수 있습니다.

1. **푸시**의 **필터 유형**에서 다음 옵션 중 하나를 선택합니다.
   + 워크플로 실행을 시작할 시기를 알아보기 위해 **브랜치**를 선택하여 트리거가 모니터링하는 소스 리포지토리의 브랜치를 지정합니다. **포함**에서 지정된 브랜치 변경 시 파이프라인을 시작하도록 트리거 구성에 지정할 브랜치 이름 패턴을 glob 형식으로 입력합니다. **제외**에서 지정된 브랜치 변경 시 파이프라인을 무시하고 시작하지 않도록 트리거 구성에 지정할 브랜치 이름의 정규식 패턴을 glob 형식으로 입력합니다. 자세한 정보는 [구문에서 glob 패턴 작업](syntax-glob.md)을 참조하세요.
**참고**  
포함과 제외 항목 모두 동일한 패턴을 갖는 경우 기본값은 패턴을 제외하는 것입니다.

     glob 패턴을 사용하여 브랜치 이름을 정의할 수 있습니다. 예를 들어 `main*`을 사용하여 `main`으로 시작하는 모든 브랜치를 일치시킵니다. 자세한 정보는 [구문에서 glob 패턴 작업](syntax-glob.md)을 참조하세요.

     푸시 트리거의 경우 *푸시할* 브랜치, 즉 *대상* 브랜치를 지정합니다. 풀 요청 트리거의 경우 풀 요청을 열고 있는 대상 브랜치를 지정합니다.
   + (선택 사항) **파일 경로**에서 트리거의 파일 경로를 지정합니다. **포함** 및 **제외**에 이름을 알맞게 입력합니다.

     glob 패턴을 사용하여 파일 경로 이름을 정의할 수 있습니다. 예를 들어 `prod*`을 사용하여 `prod`으로 시작하는 모든 파일 경로를 일치시킵니다. 자세한 정보는 [구문에서 glob 패턴 작업](syntax-glob.md)을 참조하세요.
   + Git 태그로 시작하도록 파이프라인 트리거 구성을 구성하려면 **태그**를 선택합니다. **포함**에서 지정된 태그가 릴리스되면 파이프라인을 시작하도록 트리거 구성에 지정할 태그 이름 패턴을 glob 형식으로 입력합니다. **제외**에서 지정된 태그가 릴리스되면 파이프라인을 무시하거나 시작하지 않도록 트리거 구성에 지정할 태그 이름의 정규식 패턴을 glob 형식으로 입력합니다. 포함과 제외 항목 모두 동일한 태그 패턴을 갖는 경우 기본값은 태그 패턴을 제외하는 것입니다.

1. **푸시**의 **필터 유형**에서 다음 옵션 중 하나를 선택합니다.
   + 워크플로 실행을 시작할 시기를 알아보기 위해 **브랜치**를 선택하여 트리거가 모니터링하는 소스 리포지토리의 브랜치를 지정합니다. **포함**에서 지정된 브랜치 변경 시 파이프라인을 시작하도록 트리거 구성에 지정할 브랜치 이름 패턴을 glob 형식으로 입력합니다. **제외**에서 지정된 브랜치 변경 시 파이프라인을 무시하고 시작하지 않도록 트리거 구성에 지정할 브랜치 이름의 정규식 패턴을 glob 형식으로 입력합니다. 자세한 정보는 [구문에서 glob 패턴 작업](syntax-glob.md)을 참조하세요.
**참고**  
포함과 제외 항목 모두 동일한 패턴을 갖는 경우 기본값은 패턴을 제외하는 것입니다.

     glob 패턴을 사용하여 브랜치 이름을 정의할 수 있습니다. 예를 들어 `main*`을 사용하여 `main`으로 시작하는 모든 브랜치를 일치시킵니다. 자세한 정보는 [구문에서 glob 패턴 작업](syntax-glob.md)을 참조하세요.

     푸시 트리거의 경우 *푸시할* 브랜치, 즉 *대상* 브랜치를 지정합니다. 풀 요청 트리거의 경우 풀 요청을 열고 있는 대상 브랜치를 지정합니다.
   + (선택 사항) **파일 경로**에서 트리거의 파일 경로를 지정합니다. **포함** 및 **제외**에 이름을 알맞게 입력합니다.

     glob 패턴을 사용하여 파일 경로 이름을 정의할 수 있습니다. 예를 들어 `prod*`을 사용하여 `prod`으로 시작하는 모든 파일 경로를 일치시킵니다. 자세한 정보는 [구문에서 glob 패턴 작업](syntax-glob.md)을 참조하세요.
   + **풀 요청**을 선택하여 지정한 풀 요청 이벤트로 시작하도록 파이프라인 트리거 구성을 구성합니다.

## 푸시 및 풀 요청 이벤트 유형에 대한 필터 추가(CLI)
<a name="pipelines-filter-cli"></a>

파이프라인 JSON을 업데이트하여 트리거 필터를 추가할 수 있습니다.

를 사용하여 파이프라인 AWS CLI 을 생성하거나 업데이트하려면 `create-pipeline` 또는 `update-pipeline` 명령을 사용합니다.

다음 예제 JSON 구조는 `create-pipeline` 아래의 필드 정의에 대한 참조를 제공합니다.

필드 정의 목록은이 가이드의 *파이프라인 구조 참조*에서 [트리거](pipeline-requirements.md#pipeline.triggers)를 참조하세요.

```
{
    "pipeline": {
        "name": "MyServicePipeline",
        "triggers": [
            {
                "provider": "Connection",
                "gitConfiguration": {
                    "sourceActionName": "ApplicationSource",
                    "push": [
                        {
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            },
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "tags": {
                                "includes": [
                                    "release-v0", "release-v1"
                                ],
                                "excludes": [
                                    "release-v2"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
        "stages": [
            {
                "name": "Source",
                "actions": [
                    {
                        "name": "ApplicationSource",
                        "configuration": {
                            "BranchName": "mainline",
                            "ConnectionArn": "arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f8EXAMPLE",
                            "FullRepositoryId": "monorepo-example",
                            "OutputArtifactFormat": "CODE_ZIP"
                        }
                    }
                ]
            }
        ]
    }
}
```

## 푸시 및 풀 요청 이벤트 유형에 대한 필터 추가(CloudFormation 템플릿)
<a name="pipelines-filter-cfn"></a>

에서 파이프라인 리소스를 업데이트 CloudFormation 하여 트리거 필터링을 추가할 수 있습니다.

다음 예제 템플릿 조각은 트리거 필드 정의에 대한 YAML 참조를 제공합니다. 필드 정의 목록은이 가이드의 *파이프라인 구조 참조*에서 [트리거](pipeline-requirements.md#pipeline.triggers)를 참조하세요.

연결 소스 및 트리거 필터 구성에 대한 전체 템플릿 예제는 * CloudFormation 사용 설명서*의 [Pipeline with two stage and trigger configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration)을 참조하세요.

```
pipeline:
  name: MyServicePipeline
  executionMode: PARALLEL
  triggers:
    - provider: CodeConnection
      gitConfiguration:
        sourceActionName: ApplicationSource
        push:
          - filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
          - tags:
              includes:
                - release-v0
                - release-v1
              excludes:
                - release-v2
        pullRequest:
          - events:
              - CLOSED
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
            filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
  stages:
    - name: Source
      actions:
        - name: ApplicationSource
          configuration:
            BranchName: mainline
            ConnectionArn: arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f85EXAMPLE
            FullRepositoryId: monorepo-example
            OutputArtifactFormat: CODE_ZIP
```