

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

# GitLab Webhook 事件
<a name="gitlab-webhook"></a>

您可以使用 Webhook 篩選群組來指定觸發組建的 GitLab Webhook 事件。例如，您可以指定僅針對特定分支的變更觸發組建。

您可以建立一或多個 Webhook 篩選群組來指定哪些 Webhook 事件會觸發組建。如果任何篩選條件群組評估為 true，則會觸發組建，這會在群組中的所有篩選條件評估為 true 時發生。當您建立篩選群組時，您可以指定這些項目：

**事件**  
對於 GitLab，您可以選擇下列一或多個事件：`PUSH`、`PULL_REQUEST_CREATED`、`PULL_REQUEST_UPDATED`、`PULL_REQUEST_MERGED`、`PULL_REQUEST_REOPENED`、`PULL_REQUEST_CLOSED`、 `RELEASED`和 `WORKFLOW_JOB_QUEUED`。  
Webhook 的事件類型位在 `X-GitLab-Event` 欄位的標頭中。下表顯示 `X-GitLab-Event` 標頭值如何映射到事件類型。對於 `Merge Request Hook` Webhook 事件，承載`object_atttributes.action`將包含合併請求類型的其他資訊。      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/gitlab-webhook.html)
對於 `PULL_REQUEST_MERGED`，如果提取請求與 squash 策略合併，且提取請求分支已關閉，則原始提取請求遞交不再存在。在此情況下，`CODEBUILD_WEBHOOK_MERGE_COMMIT`環境變數會包含壓縮合併遞交的識別符。

**一或多個選用篩選條件**  
使用規則表達式來指定篩選條件。若要讓事件觸發組建，與其相關聯的群組中的每個篩選條件都必須評估為 true。    
`ACTOR_ACCOUNT_ID` (`ACTOR_ID` 主控台中的 )  
當 GitLab 帳戶 ID 符合規則表達式模式時，Webhook 事件會觸發組建。這個值會出現在 Webhook 篩選條件承載之 `actor` 物件的 `account_id` 屬性中。  
`HEAD_REF`  
當頭部參考符合規則表達式模式 （例如 `refs/heads/branch-name`和 ) 時，Webhook 事件會觸發組建`refs/tags/tag-name`。`HEAD_REF` 篩選條件會評估分支或標籤的 Git 參考名稱。分支或標籤名稱會出現在 Webhook 承載 `push` 物件之 `new` 物件的 `name` 欄位中。針對提取請求事件，分支名稱會出現在 Webhook 承載 `source` 物件之 `branch` 物件的 `name` 欄位中。  
`BASE_REF`  
當基本參考符合規則表達式模式時，Webhook 事件會觸發組建。`BASE_REF` 篩選條件僅適用於提取請求事件 (例如 `refs/heads/branch-name`)。`BASE_REF` 篩選條件會評估分支的 Git 參考名稱。分支名稱會出現在 Webhook 承載 `destination` 物件之 `branch` 物件的 `name` 欄位中。  
`FILE_PATH`  
當變更的檔案路徑符合規則表達式模式時，Webhook 會觸發組建。  
`COMMIT_MESSAGE`  
當前端遞交訊息符合規則表達式模式時，Webhook 會觸發組建。  
`WORKFLOW_NAME`  
當工作流程名稱符合規則表達式模式時，Webhook 會觸發組建。

**注意**  
您可以在 GitLab 儲存庫的 Webhook 設定中找到 Webhook 承載。

**Topics**
+ [Filter GitLab Webhook 事件 （主控台）](gitlab-webhook-events-console.md)
+ [Filter GitLab Webhook 事件 (SDK)](gitlab-webhook-events-sdk.md)
+ [篩選 GitLab Webhook 事件 (CloudFormation)](gitlab-webhook-events-cfn.md)