

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 教學課程：篩選分支名稱，以取得啟動管道的提取請求 (V2 類型）
<a name="tutorials-github-featurebranches"></a>

在本教學課程中，您將建立連線至 GitHub.com 儲存庫的管道，其中來源動作設定為使用觸發組態來啟動管道，該組態會篩選提取請求。當指定的分支發生指定的提取請求事件時，您的管道就會啟動。此範例說明如何建立允許篩選分支名稱的管道。如需使用觸發程序的詳細資訊，請參閱 [新增推送和提取請求事件類型的篩選條件 (CLI)](pipelines-filter.md#pipelines-filter-cli)。如需使用 glob 格式的 regex 模式進行篩選的詳細資訊，請參閱 [使用語法中的 glob 模式](syntax-glob.md)。

**重要**  
在建立管道的過程中，CodePipeline 將使用客戶提供的 S3 成品儲存貯體來製作成品。（這與用於 S3 來源動作的 儲存貯體不同。) 如果 S3 成品儲存貯體位於與管道帳戶不同的帳戶中，請確定 S3 成品儲存貯體由 所擁有 AWS 帳戶 ，安全且可靠。

本教學課程會透過 `CodeStarSourceConnection`動作類型連線至 GitHub.com 

**Topics**
+ [先決條件](#tutorials-github-featurebranches-prereq)
+ [步驟 1：建立管道以啟動指定分支的提取請求](#tutorials-github-featurebranches-pipeline)
+ [步驟 2：在 GitHub.com 中建立和合併提取請求，以啟動您的管道執行](#tutorials-github-featurebranches-pullrequest)

## 先決條件
<a name="tutorials-github-featurebranches-prereq"></a>

開始之前，您必須執行以下作業：
+ 使用 GitHub.com 帳戶建立 GitHub.com 儲存庫。
+ 準備好您的 GitHub 登入資料。當您使用 AWS 管理主控台 設定連線時，系統會要求您使用 GitHub 登入資料登入。

## 步驟 1：建立管道以啟動指定分支的提取請求
<a name="tutorials-github-featurebranches-pipeline"></a>

在本節中，您可以採取下列動作建立管道：
+ 與 GitHub.com 儲存庫和動作連線的來源階段。
+ 具有建置動作的 AWS CodeBuild 建置階段。

**使用精靈建立管道**

1. 前往 [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) 登入 CodePipeline 主控台。

1. 在 **Welcome (歡迎)** 頁面、**Getting started (入門)** 頁面、或者 **Pipelines (管道)** 頁面上，選擇 **Create pipeline (建立管道)**。

1. 在**步驟 1：選擇建立選項**頁面的**建立選項**下，選擇**建置自訂管道**選項。選擇**下一步**。

1. 在**步驟 2：選擇管道設定**中，在**管道名稱**中輸入 **MyFilterBranchesPipeline**。

1. 在**管道類型**中，將預設選擇保留在 **V2**。管道類型在特性和價格方面有所不同。如需詳細資訊，請參閱[管道類型](pipeline-types.md)。

1. 在 **Service role (服務角色)** 中，選擇 **New service role (新服務角色)**。
**注意**  
如果您選擇改用現有的 CodePipeline 服務角色，請確定您已將 `codeconnections:UseConnection` IAM 許可新增至您的服務角色政策。如需 CodePipeline 服務角色的說明，請參閱[為 CodePipeline 服務角色新增許可](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services)。

1. 在**進階設定**底下，請保留預設值。在**Artifact store (成品存放區)** 中，針對您為管道所選取區域中的管道，選擇 **Default location (預設位置)**，即可使用預設成品存放區 (例如指定為預設值的 ​Amazon S3 成品儲存貯體)。
**注意**  
這不是原始碼的來源儲存貯體。這是管道的成品存放區。每個管道都需要有個別成品存放區，例如 S3 儲存貯體。

   選擇**下一步**。

1. 在**步驟 3：新增來源階段**頁面上，新增來源階段：

   1. 在**來源提供者**中，選擇 **GitHub （透過 GitHub 應用程式）**。

   1. 在**連線**下，選擇現有的連線或建立新的連線。若要建立或管理 GitHub 來源動作的連線，請參閱 [GitHub 連線](connections-github.md)。

   1. 在**儲存庫名稱**中，選擇 GitHub.com 儲存庫的名稱。

   1. 在**觸發類型**下，選擇**指定篩選條件**。

      在**事件類型**下，選擇**提取請求**。選取提取請求下的所有事件，以便針對建立、更新或關閉的提取請求發生事件。

      在**分支**下，於**包含**欄位中，輸入 `main*`。  
![\[顯示為具有提取請求事件類型的觸發條件選取值main*為 的包含分支選項的影像\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/pullreq-example-triggers-edit.png)
**重要**  
將針對 WebhookV2 事件設定以此觸發類型開頭的管道，且不會使用 Webhook 事件 （在所有推送事件上變更偵測） 來啟動管道。

   選擇**下一步**。

1. 在**步驟 4：新增建置階段**中，在**建置提供者**中選擇 **AWS CodeBuild**。允許 **Region (區域)** 預設為管道區域。依照 中的指示，選擇或建立建置專案[教學課程：使用 Git 標籤啟動您的管道](tutorials-github-tags.md)。此動作只會在本教學課程中用作建立管道所需的第二個階段。

1. 在**步驟 5：新增測試階段**中，選擇**略過測試階段**，然後再次選擇**略過**以接受警告訊息。

   選擇**下一步**。

1. 在**步驟 6：新增部署階段**頁面上，選擇**略過部署階段**，然後再次選擇**略過**以接受警告訊息。選擇**下一步**。

1. 在**步驟 7：檢閱**中，選擇**建立管道**。

## 步驟 2：在 GitHub.com 中建立和合併提取請求，以啟動您的管道執行
<a name="tutorials-github-featurebranches-pullrequest"></a>

在本節中，您會建立並合併提取請求。這會啟動您的管道，一個執行已開啟的提取請求，另一個執行已關閉的提取請求。

**建立提取請求並啟動管道**

1. 在 GitHub.com,建立提取請求。 README.md `main` 使用類似 的訊息遞交變更`Update README.md for PR`。

1. 管道從來源修訂開始，顯示提取請求的**來源**訊息為**更新 README.md for PR**。  
![\[顯示提取請求來源訊息的影像，文字如下： Update README.md for PR\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/pullreq-example.png)

1. 選擇 **History (歷程記錄)**。在管道執行歷史記錄中，檢視啟動管道執行的 CREATED 和 MERGED 提取請求狀態事件。  
![\[顯示管道執行歷史記錄的影像，顯示啟動管道執行的 CREATED 和 MERGED 提取請求狀態事件\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/pullreq-example-history.png)