

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コードプッシュまたはプルリクエストイベントタイプを使用してトリガーを追加する
<a name="pipelines-filter"></a>

タグやブランチのプッシュ、特定のファイルパスの変更、特定のブランチに開かれたプルリクエストなど、さまざまな Git イベントに対してパイプライン実行を開始するようにパイプライントリガーのフィルターを設定できます。 AWS CodePipeline コンソール、または の **create-pipeline**および **update-pipeline** コマンドを使用して AWS CLI 、トリガーフィルターを設定できます。

**注記**  
アクション設定の `BranchName` フィールドは 1 つのブランチを定義しますが、フィルター付きのトリガーは、指定した任意のブランチに使用できます。プッシュリクエストまたはプルリクエストでブランチをフィルタリングするためにトリガーが使用されるパイプラインの場合、パイプラインはアクション設定でデフォルトの `BranchName` フィールドブランチを使用しません。ただし、パイプラインを手動で開始すると、アクション設定の `BranchName` フィールドのブランチがデフォルトになります。例については、[5: デフォルトのアクション設定 BranchName が手動起動に使用される間に設定されたトリガー](pipelines-triggers.md#example-filter-default-manual)を参照してください。

以下のトリガータイプに対してフィルターを指定できます。
+ **プッシュ**

  プッシュトリガーは、変更をソースリポジトリにプッシュすると、パイプラインを開始します。実行では、プッシュ*先*のブランチ (つまり、ターゲットブランチ) からのコミットを使用します。プッシュトリガーは、ブランチ、ファイルパス、または Git タグでフィルタリングできます。
+ **プルリクエスト**

  プルリクエストトリガーは、プルリクエストをソースリポジトリでオープン、更新、またはクローズすると、パイプラインを開始します。実行では、プル*元*のブランチ (つまり、ソースブランチ) からのコミットを使用します。プルリクエストトリガーは、ブランチとファイルパスでフィルタリングできます。

  プルリクエストでサポートされているイベントタイプは次のとおりです。その他すべてのプルリクエストイベントは無視されます。
  + [オープン済み]
  + 更新
  + クローズ (マージ済み)
**注記**  
特定のプルリクエストイベントの動作は、プロバイダーによって異なる場合があります。詳細については、「[プロバイダーによるトリガーのプルリクエストイベント](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 マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

    AWS アカウントに関連付けられているすべてのパイプラインの名前とステータスが表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。または、パイプライン作成ウィザードで以下の手順を使用します。

1. パイプライン詳細ページで、[**編集**] を選択します。

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 「ユーザーガイド*」の「2 [つのステージとトリガー設定を持つパイプライン](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
```