

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

# トリガーとフィルタリングを使用してパイプラインを自動的に開始する
<a name="pipelines-triggers"></a>

トリガーを使用すると、特定のブランチやプルリクエストの変更を検出したときなど、特定のイベントタイプやフィルタリングされたイベントタイプに応じて開始するようにパイプラインを設定できます。トリガーは、GitHub、Bitbucket、GitLab など、CodePipeline の `CodeStarSourceConnection` アクションを実行する接続を使用するソースアクションに対して設定できます。接続を使用するソースアクションの詳細については、「[CodeConnections を使用してサードパーティのソースプロバイダーを追加する](pipelines-connections.md)」を参照してください。

CodeCommit や S3 などのソースアクションは、自動変更検出を使用して、変更があったときにパイプラインを開始します。詳細については、「[CodeCommit ソースアクションと EventBridge](triggering.md)」を参照してください。

トリガーは、コンソールまたは CLI を使用して指定します。

フィルタータイプは、以下のように指定します。
+ **フィルターなし**

  このトリガー設定は、アクション設定の一環として指定したデフォルトブランチへのあらゆるプッシュに応じてパイプラインを開始します。
+ **フィルターを指定**

  コードプッシュのブランチ名などの特定のフィルターでパイプラインを開始し、正確なコミットを取得するフィルターを追加します。これにより、変更があっても自動的に開始しないようにパイプラインを設定することもできます。
  + **プッシュ**
    + 有効なフィルターの組み合わせは以下のとおりです。
      + **Git タグ**

        包含または除外
      + **ブランチ**

        包含または除外
      + **ブランチ \$1 ファイルパス**

        包含または除外
  + **プルリクエスト**
    + 有効なフィルターの組み合わせは以下のとおりです。
      + **ブランチ**

        包含または除外
      + **ブランチ \$1 ファイルパス**

        包含または除外
+ **変更を検出しない**

  トリガーを追加せず、変更があってもパイプラインを自動的に開始しません。

次の表は、イベントタイプ別の有効なフィルターオプションを示しています。また、アクション設定の自動変更検出がデフォルトで true または false となるトリガー設定も示しています。


****  

| トリガーの設定 | イベントタイプ | フィルターのオプション | 変更を検出する | 
| --- | --- | --- | --- | 
| トリガーを追加 – フィルターなし | なし | なし | true | 
| トリガーを追加 – コードプッシュ時にフィルタリング | プッシュイベント | Git タグ、ブランチ、ファイルパス | false | 
| トリガーを追加 – プルリクエストのフィルタリング  | プルリクエスト | ブランチ、ファイルパス | false | 
| トリガーなし - 検出しない | なし | なし | false | 

**注記**  
このトリガータイプは自動変更検出を (`Webhook` トリガータイプとして) 使用します。このトリガータイプを使用するソースアクションプロバイダーは、コードプッシュ用に設定された接続 (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、GitLab セルフマネージド) です。

フィールド定義とトリガーのその他のリファレンスについては、を参照してください。

JSON 構造内のフィールド定義のリストについては、「[`triggers`](pipeline-requirements.md#pipeline.triggers)」を参照してください。

フィルタリングでは、「[構文での glob パターンの使用](syntax-glob.md)」で詳述しているように、正規表現パターンを glob 形式でサポートしています。

**注記**  
ファイルパスでトリガーをフィルタリングするパイプラインの場合、ファイルパスフィルターを含むブランチの最初の作成時にパイプラインが開始しないことがあります。詳細については、「[ファイルパスによるトリガーフィルタリングを使用する接続を持つパイプラインは、ブランチの作成時に開始しない可能性があります](troubleshooting.md#troubleshooting-file-paths-filtering)」を参照してください。

## トリガーフィルターに関する考慮事項
<a name="pipelines-filter-considerations"></a>

トリガーを使用するときは、以下の考慮事項が適用されます。
+ ソースアクションごとに複数のトリガーを追加することはできません。
+ トリガーには複数のフィルタータイプを追加できます。例については、[4: 競合する包含と除外の 2 つのプッシュフィルタータイプを持つトリガー](#example-filter-multiple-push)を参照してください。
+ ブランチフィルターとファイルパスフィルターを含むトリガーの場合、ブランチを初めてプッシュすると、新しく作成したブランチでは変更されたファイルのリストにアクセスできないため、パイプラインは実行されません。
+ プルリクエストをマージすると、プッシュ (ブランチフィルター) とプルリクエスト (ブランチフィルター) のトリガー設定が交差して、2 つのパイプライン実行がトリガーされる場合があります。
+ プルリクエストイベントでパイプラインをトリガーするフィルターの場合、クローズドプルリクエストイベントタイプでは、接続用のサードパーティーリポジトリプロバイダーがマージイベントに対して別のステータスを持つ場合があります。例えば、Bitbucket では、マージの Git イベントはプルリクエストクローズイベントではありません。ただし、GitHub では、プルリクエストのマージはクローズイベントです。詳細については、「[プロバイダーによるトリガーのプルリクエストイベント](#pipelines-filter-pullrequest-events)」を参照してください。

## プロバイダーによるトリガーのプルリクエストイベント
<a name="pipelines-filter-pullrequest-events"></a>

次の表は、プルリクエストのクローズなど、プロバイダーによるプルリクエストイベントタイプにつながる Git イベントの概要を示しています。


****  

|  | 接続のリポジトリプロバイダー | トリガーの PR イベント | Bitbucket | GitHub | GHES | GitLab | 
| --- | --- | --- | --- | --- | --- | --- | 
| 開始 - このオプションは、ブランチ/ファイルパスのプルリクエストが作成されると、パイプラインをトリガーします。 | プルリクエストを作成すると、開始済み Git イベントが発生します。 | プルリクエストを作成すると、開始済み Git イベントが発生します。 | プルリクエストを作成すると、開始済み Git イベントが発生します。 | プルリクエストを作成すると、開始済み Git イベントが発生します。 | 
| 更新 - このオプションは、ブランチ/ファイルパスのプルリクエストのリビジョンが公開されると、パイプラインをトリガーします。 | 更新を発行すると、更新済み Git イベントが発生します。 | 更新を発行すると、更新済み Git イベントが発生します。 | 更新を発行すると、更新済み Git イベントが発生します。 | 更新を発行すると、更新済み Git イベントが発生します。 | 
| 終了済み - このオプションは、ブランチ/ファイルパスのプルリクエストが終了したときにパイプラインをトリガーします。 | Bitbucket でプルリクエストをマージすると、終了済み Git イベントが発生します。重要: マージせずに Bitbucket でプルリクエストを手動で閉じても、終了済み Git イベントは発生しません。 | プルリクエストをマージするか手動で閉じると、終了済み Git イベントが発生します。 | プルリクエストをマージするか手動で閉じると、終了済み Git イベントが発生します。 | プルリクエストをマージするか手動で閉じると、終了済み Git イベントが発生します。 | 

## トリガーフィルターの例
<a name="pipelines-filter-examples"></a>

プッシュとプルリクエストのイベントタイプのフィルターを含む Git 設定では、指定した複数のフィルターが互いに競合する場合があります。プッシュおよびプルリクエストのイベントの有効なフィルターの組み合わせの例を次に示します。トリガーには、トリガー設定に 2 つのプッシュフィルタータイプなど、複数のフィルタータイプを含めることができます。プッシュリクエストフィルタータイプとプルリクエストフィルタータイプは、それらの間で OR 演算を使用します。つまり、一致するとパイプラインが開始されます。同様に、各フィルタータイプには、filePaths や branches などの複数のフィルターを含めることができます。これらのフィルターは AND 演算を使用します。つまり、完全一致のみがパイプラインを開始します。各フィルタータイプには、包含と除外を含めることができます。除外が包含よりも優先されます。ブランチまたはファイルパスが除外パターンと一致する場合、インクルードパターンとも一致しても、パイプラインはトリガーされません。コミットが複数のファイルを変更すると、各ファイルはフィルタに対して個別に評価されます。変更されたファイルが合格した場合 (インクルードに一致し、アンクルードと一致しない場合）、パイプラインが開始されます。ブランチ名など、包含/除外内の名前は、OR 演算を使用します。次のリストは、Git 設定オブジェクトの各部分の演算をまとめたものです。

JSON 構造内のフィールド定義のリストと、包含と除外の詳細なリファレンスについては、「[`triggers`](pipeline-requirements.md#pipeline.triggers)」を参照してください。

**Example 1: ブランチとファイルパスのフィルターを含むフィルタータイプ (AND 演算)**  <a name="example-filter-branches-filepaths"></a>
プルリクエストなど単一フィルタータイプの場合、複数のフィルターを組み合わせることができます。これらのフィルターは AND 演算を使用するため、完全に一致する場合にのみパイプラインが開始します。次の例は、2 つの異なるフィルター (`filePaths` と `branches`) を持つプッシュイベントタイプの Git 設定を示しています。次の例で、`filePaths` は `branches` と AND 演算されます。  

```
{
  "filePaths": {
    "includes": ["common/**/*.js"]
  },
  "branches": {
    "includes": ["feature/**"]
  }
}
```
上の Git 設定の場合、次の例は AND 演算の成功により、パイプライン実行を開始するイベントを示しています。つまり、ファイルパス `common/app.js` はフィルターに含まれ、指定されたブランチ `refs/heads/feature/triggers ` に影響がない場合でも、パイプラインは AND として開始されます。  

```
{
  "ref": "refs/heads/feature/triggers",
  ...
  "commits": [
    {
      ...
      "modified": [
        "common/app.js"
      ]
      ...
    }
  ]
}
```
次の例は、ブランチはフィルタリングできるが、ファイルパスはフィルタリングできないため、パイプライン実行を開始しない、上記設定を持つトリガーのイベントを示しています。  

```
{
   "ref": "refs/heads/feature/triggers",
  ...
  "commits": [
    {
      ...
      "modified": [
        "src/Main.java"
      ]
      ...
    }
  ]
}
```

**Example 2: 除外が包含よりも優先される**  <a name="example-filter-includes-excludes"></a>
1 つのフィルター内では、 除外が include よりも優先されます。次の例は、設定オブジェクト内に 1 つのフィルター (`branches`) を含む Git 設定を示しています。つまり、ブランチが除外パターン (`feature-branch`例では ) と一致する場合、インクルードパターンとも一致してもパイプラインはトリガーされません。`main` ブランチなど、包含パターンが一致し、除外パターンが一致しない場合、パイプラインがトリガーされます。  
たとえば、次の JSON の例の場合:   
+ コミットを `main` ブランチにプッシュすると、パイプラインがトリガーされます。
+ コミットを `feature-branch` ブランチにプッシュすると、パイプラインはトリガーされません。

```
{
  "branches": {
      "Includes": [
          "main"
      ],
      "Excludes": [
          "feature-branch"
      ]
   }
```

**Example 3: プッシュおよびプルリクエストフィルタータイプ (OR オペレーション）、ファイルパスとブランチのフィルター (AND オペレーション）、および包含/除外 (除外が優先) を持つトリガー**  <a name="example-filter-push-pullrequest"></a>
プッシュイベントタイプとプルリクエストイベントタイプを含むトリガーなどのトリガー設定オブジェクトは、2 つのイベントタイプ間で OR 演算を使用します。次の例は、`main` ブランチを含むプッシュイベントタイプと、同じブランチ `main` を除外する 1 つのプルリクエストイベントタイプのトリガー設定を示しています。さらに、プッシュイベントタイプには、1 つのファイルパス `LICENSE.txt` が除外され、1 つのファイルパス `README.MD` が含まれます。2 番目のイベントタイプでは、`feature-branch`ブランチ (含まれる) `Created` で `Closed`または のいずれかのプルリクエストがパイプラインを開始し、 `feature-branch-2` または `main`ブランチ (含まれない) でプルリクエストを作成または終了するときにパイプラインが開始しません。各イベントタイプ内では、 除外が include よりも優先されます。たとえば、`feature-branch`ブランチのプルリクエストイベント (プルリクエストに含まれる) の場合、プッシュイベントタイプは`feature-branch`ブランチを除外するため、プッシュはパイプラインをトリガーしません。  
次の例では   
+ `README.MD` ファイルパス (包含) の `main` ブランチ (包含) にコミットをプッシュすると、パイプラインがトリガーされます。
+ `feature-branch` ブランチ (除外) でコミットをプッシュすると、パイプラインはトリガーされません。
+ 包含ブランチで、`README.MD` ファイルパス (包含) を編集すると、パイプラインがトリガーされます。
+ 含まれているブランチでは、`LICENSE.TXT`ファイルパス (除外) のみを編集してもパイプラインはトリガーされません。ただし、同じコミットも変更 `README.MD` (含まれている) された場合、各ファイルは個別に評価されるため、パイプラインがトリガーされます。
+ `feature-branch` ブランチでプルリクエストを閉じると、プルリクエストイベントタイプと CLOSED イベントタイプ`feature-branch`が一致するため、パイプラインがトリガーされます。
次の画像は、構成を示しています。  

![\[プッシュフィルタータイプとプルリクエストフィルタータイプのトリガー設定の例\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/example-trigger-filters-pushpluspullrequest.png)

以下は、設定の JSON の例です。  

```
"triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "branches": {
                                "includes": [
                                    "main"
                                ],
                                "excludes": [
                                    "feature-branch",
                                    "feature-branch-2"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "README.md"
                                ],
                                "excludes": [
                                    "LICENSE.txt"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED",
                                "OPEN"
                            ],
                            "branches": {
                                "includes": [
                                    "feature-branch"
                                ],
                                "excludes": [
                                    "feature-branch-2",
                                    "main"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
```

**Example 4: 競合する包含と除外の 2 つのプッシュフィルタータイプを持つトリガー**  <a name="example-filter-multiple-push"></a>
次の図は、タグ `release-1` (包含) でフィルタリングするように指定するプッシュフィルタータイプを示しています。2 番目のプッシュフィルタータイプが追加され、ブランチ `main` をフィルタリングするように指定され(包含)、`feature*` ブランチへのプッシュを開始しないように指定されます (除外)。  
次の例では  
+ `feature-branch` ブランチのタグ `release-1` (最初のプッシュフィルターに含まれる) (2 番目のプッシュフィルター`feature*`の を除く) からリリースをプッシュすると、2 つのプッシュフィルタータイプがそれらの間で OR オペレーションを使用し、最初のプッシュフィルター (タグ`release-1`) が一致するため、パイプラインがトリガーされます。
+ `main` ブランチ (2 番目のプッシュフィルターに含まれる) からリリースをプッシュすると、パイプラインは開始されます。
   
次の [編集] ページの例は、2 つのプッシュフィルタータイプと、それらのフィルタータイプの包含と除外の設定を示しています。  

![\[release-1 タグを含むプッシュフィルタータイプと、main* ブランチを含むプッシュフィルタータイプ、および feature* ブランチを除外するトリガー設定の例\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/example-trigger-filters-pushtags-pushbranches.png)


以下は、設定の JSON の例です。

```
"triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "tags": {
                                "includes": [
                                    "release-1"
                                ]
                            }
                        },
                        {
                            "branches": {
                                "includes": [
                                    "main*"
                                ],
                                "excludes": [
                                    "feature*"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
```

**Example 5: デフォルトのアクション設定 BranchName が手動起動に使用される間に設定されたトリガー**  <a name="example-filter-default-manual"></a>
  
アクション設定のデフォルト `BranchName` フィールドは、パイプラインを手動で開始するときに使用する単一のブランチを定義しますが、フィルター付きのトリガーは、指定した任意のブランチに使用できます。  
以下は、`BranchName` フィールドを示すアクション設定の JSON の例です。  

```
{
                "name": "Source",
                "actions": [
                    {
                        "name": "Source",
                        "actionTypeId": {
                            "category": "Source",
                            "owner": "AWS",
                            "provider": "CodeStarSourceConnection",
                            "version": "1"
                        },
                        "runOrder": 1,
                        "configuration": {
                            "BranchName": "main",
                            "ConnectionArn": "ARN",
                            "DetectChanges": "false",
                            "FullRepositoryId": "owner-name/my-bitbucket-repo",
                            "OutputArtifactFormat": "CODE_ZIP"
                        },
                        "outputArtifacts": [
                            {
                                "name": "SourceArtifact"
                            }
                        ],
                        "inputArtifacts": [],
                        "region": "us-west-2",
                        "namespace": "SourceVariables"
                    }
                ],
```
次のアクション出力の例は、パイプラインを手動で開始したときに使用されたデフォルトのブランチ main を示しています。  

![\[手動で開始されたパイプラインのアクション出力ページの例\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/example-source-action-manual.png)

次のアクション出力の例は、プルリクエストでフィルタリングされたときにトリガーに使用されたプルリクエストとブランチを示しています。  

![\[トリガープルリクエストフィルタータイプで開始されたパイプラインのアクション出力ページの例\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/example-source-action-pr.png)


# フィルターを使用せずにコードプッシュにトリガーを追加する
<a name="pipelines-trigger-add"></a>

トリガーを使用すると、コードプッシュやプルリクエストなど、特定のイベントタイプで開始するようにパイプラインを設定できます。トリガーは、GitHub、Bitbucket、GitLab など、CodePipeline の CodeStarSourceConnection アクションを実行する接続を使用するソースアクションに対して設定できます。

**トリガーを追加する (コンソール)**

1. にサインイン AWS マネジメントコンソール し、[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home) で CodePipeline コンソールを開きます。

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

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

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

1. **[編集]** ページで、編集するソースアクションを選択します。**[トリガーの編集]** を選択します。[トリガーを追加] を選択します。

1. **[トリガータイプ]** で、**[フィルターなし]** を選択します。

# コードプッシュまたはプルリクエストイベントタイプを使用してトリガーを追加する
<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
```

# トリガーを追加して変更検出をオフにする
<a name="pipelines-trigger-no-detection"></a>

トリガーを使用すると、コードプッシュやプルリクエストなど、特定のイベントタイプで開始するようにパイプラインを設定できます。トリガーは、GitHub、Bitbucket、GitLab など、CodePipeline の `CodeStarSourceConnection` アクションを実行する接続を使用するソースアクションに対して設定できます。

**トリガーを追加して変更検出をオフにする (コンソール)**

1. AWS マネジメントコンソール にサインインして、CodePipeline コンソール [(https://console.aws.amazon.com/codesuite/codebuild/home)](https://console.aws.amazon.com/codesuite/codepipeline/home) を開きます。

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

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

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

1. **[編集]** ページで、編集するソースアクションを選択します。**[トリガーの編集]** を選択します。[トリガーを追加] を選択します。

1. **[トリガータイプ]** で、**[変更を検出しない]** を選択します。