篩選 GitLab 網路掛鉤事件 () SDK - AWS CodeBuild

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

篩選 GitLab 網路掛鉤事件 () SDK

若要使用 AWS CodeBuild SDK來篩選 webhook 事件,請使用CreateWebhookUpdateWebhookAPI方法的要求語法中的filterGroups欄位。如需詳細資訊,請參閱〈CodeBuild API參考WebhookFilter中的〈〉。

如需 GitLab Webhook 事件的詳細資訊,請參閱GitLab 網絡掛鉤事件

若要建立 Webhook 篩選條件來只針對提取請求觸發組建,請在請求語法插入以下程式碼:

"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED" } ] ]

若要建立 Webhook 篩選條件來只針對指定的分支觸發組建,請使用 pattern 參數指定規則表達式來篩選分支名稱。在有兩個篩選群組的範例中,當一個或兩個篩選群組評估為 true 時,就會觸發組建:

  • 第一個篩選群組指定在分支上建立或更新的提取請求,並且這些分支的 Git 參考名稱符合規則表達式 ^refs/heads/main$,而標頭參考符合 ^refs/heads/myBranch$

  • 第二個篩選群組在分支上指定推送請求,並且這些分支的 Git 參考名稱符合規則表達式 ^refs/heads/myBranch$

"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" }, { "type": "BASE_REF", "pattern": "^refs/heads/main$" } ], [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" } ] ]

您可以使用 excludeMatchedPattern 參數來指定哪些事件不會觸發組建。在這個範例中,將針對所有請求 (標籤事件除外) 觸發組建。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ] ]

您可以建立篩選器,只有在具有帳戶 ID 的 GitLab使用者進行變更時才會觸發組建actor-account-id

注意

如需如何尋找 GitLab 帳戶 ID 的詳細資訊,請參閱 https://api.github.com/users/user-name其中,user-name 是您的 GitLab 使用者名稱。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED" }, { "type": "ACTOR_ACCOUNT_ID", "pattern": "actor-account-id" } ] ]

您可以建立篩選條件來指定只有在檔案名稱符合 pattern 引數中的規則表達式的檔案變更時,才觸發組建。在這個範例中,篩選群組指定只有在檔案名稱符合規則表達式 ^buildspec.* 的檔案變更時,才觸發組建。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^buildspec.*" } ] ]

在此範例中,篩選器群組會指定只有在srctest資料夾中變更檔案時才會觸發組建。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^src/.+|^test/.+" } ] ]

您可以建立篩選條件,只有在 head 提交訊息符合模式引數中的規則運算式時,才觸發組建。在這個範例中,篩選群組指定只有在推送事件的 head 遞交訊息符合規則表達式 \[CodeBuild\] 時,才觸發組建。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "COMMIT_MESSAGE", "pattern": "\[CodeBuild\]" } ] ]