本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要使用 AWS CodeBuild SDK篩選 Webhook 事件,請使用 CreateWebhook
或 UpdateWebhook
API方法請求語法中的 filterGroups
欄位。如需詳細資訊,請參閱 參考 WebhookFilter 中的 。 CodeBuild API
如需 GitHub Webhook 事件的詳細資訊,請參閱 GitHub webhook 事件。
若要建立 Webhook 篩選條件來只針對提取請求觸發組建,請在請求語法插入以下程式碼:
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
}
]
]
若要建立 Webhook 篩選條件來只針對指定的分支觸發組建,請使用 pattern
參數指定規則表達式來篩選分支名稱。在有兩個篩選群組的範例中,當一個或兩個篩選群組評估為 true 時,就會觸發組建:
-
第一個篩選群組指定在分支上建立、更新或重新開啟的提取請求,並且這些分支的 Git 參考名稱符合規則表達式
^refs/heads/main$
,而標頭參考符合^refs/heads/myBranch$
。 -
第二個篩選群組在分支上指定推送請求,並且這些分支的 Git 參考名稱符合規則表達式
^refs/heads/myBranch$
。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED"
},
{
"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_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
},
{
"type": "HEAD_REF",
"pattern": "^refs/tags/.*",
"excludeMatchedPattern": true
}
]
]
您可以建立篩選條件來指定只有在檔案名稱符合 pattern
引數中的規則表達式的檔案變更時,才觸發組建。在這個範例中,篩選群組指定只有在檔案名稱符合規則表達式 ^buildspec.*
的檔案變更時,才觸發組建。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "FILE_PATH",
"pattern": "^buildspec.*"
}
]
]
在此範例中,篩選條件群組會指定只有在 src
或 test
資料夾變更檔案時才會觸發建置。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "FILE_PATH",
"pattern": "^src/.+|^test/.+"
}
]
]
您可以建立篩選條件,只有在帳戶 ID 為 的指定 GitHub 或 GitHub 企業伺服器使用者進行變更時,才會觸發建置actor-account-id
。
注意
如需有關如何尋找 GitHub 帳戶 ID 的資訊,請參閱 https://api.github.com/users/user-name
其中,user-name
是您的 GitHub 使用者名稱。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
},
{
"type": "ACTOR_ACCOUNT_ID",
"pattern": "actor-account-id"
}
]
]
您可以建立篩選條件,只有在 head 提交訊息符合模式引數中的規則運算式時,才觸發組建。在這個範例中,篩選群組指定只有在推送事件的 head 遞交訊息符合規則表達式 \[CodeBuild\]
時,才觸發組建。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "COMMIT_MESSAGE",
"pattern": "\[CodeBuild\]"
}
]
]
若要建立 Webhook 篩選條件,以觸發僅為 GitHub 動作工作流程任務建置,請將下列內容插入請求語法:
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "WORKFLOW_JOB_QUEUED"
}
]
]