As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
GitHub eventos de webhook
Você pode usar grupos de filtros de webhook para especificar quais eventos de GitHub webhook acionam uma compilação. Por exemplo, é possível especificar que uma compilação seja acionada somente para alterações em ramificações especificadas.
Você pode criar um ou mais grupos de filtros de webhook para especificar quais eventos de webhook acionam uma compilação. Uma compilação será acionada se algum grupo de filtros for avaliado como verdadeiro, o que ocorre quando todos os filtros no grupo são avaliados como verdadeiros. Ao criar um grupo de filtros, é necessário especificar:
- Um evento
-
Para GitHub, você pode escolher um ou mais dos seguintes eventos:
PUSH
PULL_REQUEST_CREATED
,PULL_REQUEST_UPDATED
,PULL_REQUEST_REOPENED
,PULL_REQUEST_MERGED
,PULL_REQUEST_CLOSED
RELEASED
,PRERELEASED
,,WORKFLOW_JOB_QUEUED
e. O tipo de evento webhook está no cabeçalhoX-GitHub-Event
na carga webhook. No cabeçalhoX-GitHub-Event
, você pode verpull_request
oupush
. Para obter uma solicitação pull, o tipo de evento está no campoaction
da carga do evento webhook. A tabela a seguir mostra como valores de cabeçalhoX-GitHub-Event
e os valores do campoaction
da carga da solicitação pull webhook são mapeados para os tipos de eventos disponíveis.Valor do cabeçalho X-GitHub-Event
Valor action
da carga do evento WebhookTipo de evento pull_request
opened
PULL_REQUEST_CREATED
pull_request
reopened
PULL_REQUEST_REOPENED
pull_request
synchronize
PULL_REQUEST_UPDATED
pull_request
closed
e o campomerged
étrue
PULL_REQUEST_MERGED
pull_request
closed
e o campomerged
éfalse
PULL_REQUEST_CLOSED
push
n/a PUSH
release
lançou RELEASED
release
pré-lançado PRERELEASED
workflow_job
queued WORKFLOW_JOB_QUEUED
nota
O tipo de
PULL_REQUEST_REOPENED
evento pode ser usado somente com GitHub um GitHub Enterprise Server. O tipo deWORKFLOW_JOB_QUEUED
eventoRELEASED
PRERELEASED
, e pode ser usado GitHub somente com. Para obter mais informações sobreWORKFLOW_JOB_QUEUED
, consulte Tutorial: Configurar um executor de GitHub ações CodeBuild auto-hospedado. - Um ou mais filtros opcionais
-
Use uma expressão regular para especificar um filtro. Para um evento acionar uma compilação, cada filtro do grupo associado a ele deve ser avaliado como verdadeiro.
ACTOR_ACCOUNT_ID
(ACTOR_ID
no console)-
Um evento de webhook aciona uma compilação quando uma ID de conta GitHub ou do GitHub Enterprise Server corresponde ao padrão de expressão regular. Esse valor é encontrado na propriedade
id
do objetosender
na carga webhook. HEAD_REF
-
Um evento de webhook aciona uma compilação quando a referência head corresponde ao padrão da expressão regular (por exemplo,
refs/heads/branch-name
ourefs/tags/tag-name
). Para um evento push, o nome de referência é encontrado na propriedaderef
da carga webhook. Para eventos de solicitações pull, o nome da ramificação é encontrado na propriedaderef
do objetohead
na carga webhook. BASE_REF
-
Um evento de webhook aciona uma compilação quando a referência base corresponde ao padrão da expressão regular (por exemplo,
refs/heads/branch-name
). Um filtroBASE_REF
pode ser usado apenas com eventos de solicitação pull. O nome da ramificação é encontrado na propriedaderef
do objetobase
na carga webhook. FILE_PATH
-
Um evento de webhook aciona uma compilação quando o caminho de um arquivo alterado corresponde ao padrão das expressões regulares. Um
FILE_PATH
filtro pode ser usado com eventos GitHub push e pull request e eventos push do GitHub Enterprise Server. Ele não pode ser usado com eventos de pull request do GitHub Enterprise Server. COMMIT_MESSAGE
-
Um webhook aciona uma compilação quando a mensagem de confirmação head corresponde à expressão padrão. Um
COMMIT_MESSAGE
filtro pode ser usado com eventos GitHub push e pull request e eventos push do GitHub Enterprise Server. Ele não pode ser usado com eventos de pull request do GitHub Enterprise Server. TAG_NAME
-
Um webhook aciona uma compilação quando o nome da tag da versão corresponde ao padrão de expressão regular. Um
TAG_NAME
filtro pode ser usado com eventos de GitHub solicitação lançados e pré-lançados. RELEASE_NAME
-
Um webhook aciona uma compilação quando o nome da versão corresponde ao padrão de expressão regular. Um
RELEASE_NAME
filtro pode ser usado com eventos de GitHub solicitação lançados e pré-lançados. WORKFLOW_NAME
-
Um webhook aciona uma compilação quando o nome do fluxo de trabalho corresponde ao padrão de expressão regular. Um
WORKFLOW_NAME
filtro pode ser usado com eventos de solicitação em fila de tarefas do fluxo de trabalho do GitHub Actions.
nota
Você pode encontrar a carga útil do webhook nas configurações do webhook do seu repositório. GitHub
Tópicos
Filtrar eventos de GitHub webhook (console)
Em Eventos de webhook da origem principal, selecione o seguinte. Essa seção só está disponível quando você escolhe Repositório em minha GitHub conta para o repositório de origem.
-
Selecione Rebuild every time a code change is pushed to this repository (Recompilar toda vez que uma alteração de código for enviada para este repositório) ao criar seu projeto.
-
Em Event type (Tipo de evento), escolha um ou mais eventos.
-
Para filtrar quando um evento aciona uma compilação, em Start a build under these conditions (Iniciar uma compilação sob estas condições), adicione um ou mais filtros opcionais.
-
Para filtrar quando um evento não é acionado, em Don't start a build under these conditions (Não iniciar uma compilação sob estas condições), adicione um ou mais filtros opcionais.
-
Escolha Adicionar grupo de filtros para adicionar outro grupo de filtros, se necessário.
Para obter mais informações, consulte Criar um projeto de compilação (console) e WebhookFilterna Referência AWS CodeBuild da API.
Neste exemplo, um grupo de filtros de webhook aciona uma compilação apenas para solicitações pull:
![](images/pull-request-webhook-filter.png)
Usando um exemplo de dois grupos de filtros de webhook, uma compilação será acionada quando um ou ambos forem avaliados como verdadeiro:
-
O primeiro grupo de filtros especifica as solicitações pull que são criadas, atualizadas ou reabertas nas ramificações com nomes de referência do Git que correspondam à expressão regular
^refs/heads/main$
e referências head que correspondam a^refs/heads/branch1$
. -
O segundo grupo de filtros especifica solicitações push em ramificações com nomes de referência do Git que correspondam à expressão regular
^refs/heads/branch1$
.
![](images/pull-request-webhook-filter-head-base-regexes.png)
Neste exemplo, um grupo de filtros de webhook aciona uma compilação para todas as solicitações, com exceção de eventos de tag.
![](images/pull-request-webhook-filter-exclude.png)
Neste exemplo, um grupo de filtros de webhook acionará uma compilação apenas quando arquivos com nomes que correspondam à expressão regular ^buildspec.*
forem alterados.
![](images/pull-request-webhook-filter-file-name-regex.png)
Neste exemplo, um grupo de filtros de webhook aciona uma compilação somente quando os arquivos são alterados nas pastas src
ou test
.
![](images/pull-request-webhook-filter-file-name-combined-regex.png)
Neste exemplo, um grupo de filtros de webhook aciona uma compilação somente quando uma alteração é feita por um usuário especificado GitHub ou do GitHub Enterprise Server com uma ID de conta que corresponda à expressão regular. actor-account-id
nota
Para obter informações sobre como encontrar o ID GitHub da sua conta, consulte https://api.github.com/users/ nome de usuário, em que nome
de usuário é seu nome
de GitHub usuário.
![](images/pull-request-webhook-filter-actor.png)
Neste exemplo, um grupo de filtros de webhook aciona uma compilação para um evento de push quando a mensagem de confirmação head corresponde à expressão regular \[CodeBuild\]
.
![](images/pull-request-webhook-filter-commit-message.png)
Neste exemplo, um grupo de filtros de webhook aciona uma compilação somente para eventos de trabalho do fluxo de trabalho do GitHub Actions.
nota
CodeBuild só processará trabalhos do fluxo de trabalho do GitHub Actions se um webhook tiver grupos de filtros contendo o filtro de eventos WORKFLOW_JOB_QUEUED.
![](images/github-actions-workflow-job-queued-no-highlight.png)
Neste exemplo, um grupo de filtros de webhook aciona uma compilação para um nome de fluxo de trabalho que corresponda à expressão regular. CI-CodeBuild
![](images/github-actions-workflow-job-specific.png)
Filtrar eventos de GitHub webhook (SDK)
Para usar o AWS CodeBuild SDK para filtrar eventos de webhook, use o filterGroups
campo na sintaxe de solicitação dos métodos da API CreateWebhook
ouUpdateWebhook
. Para obter mais informações, consulte WebhookFiltera Referência CodeBuild da API.
Para criar um filtro de webhook que acione uma compilação apenas para solicitações pull, insira o seguinte na sintaxe de solicitação:
"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" } ] ]
Para criar um filtro de webhook que acione uma compilação apenas para ramificações especificadas, use o parâmetro pattern
para especificar uma expressão regular a fim de filtrar os nomes da ramificação. Usando um exemplo de dois grupos de filtros, uma compilação será acionada quando um ou ambos forem avaliados como verdadeiro:
-
O primeiro grupo de filtros especifica as solicitações pull que são criadas, atualizadas ou reabertas nas ramificações com nomes de referência do Git que correspondam à expressão regular
^refs/heads/main$
e referências head que correspondam a^refs/heads/myBranch$
. -
O segundo grupo de filtros especifica solicitações push em ramificações com nomes de referência do Git que correspondam à expressão regular
^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$" } ] ]
Você pode usar o parâmetro excludeMatchedPattern
para especificar quais eventos não acionam uma compilação. Por exemplo, um compilação é acionada para todas as solicitações, com exceção de eventos de tag.
"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 } ] ]
Você pode criar um filtro que acionará uma compilação apenas quando arquivos com nomes que correspondam à expressão regular no argumento pattern
forem alterados. Neste exemplo, o grupo de filtros especifica que uma compilação será acionada apenas quando arquivos com um nome que corresponda à expressão regular ^buildspec.*
forem alterados.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^buildspec.*" } ] ]
Neste exemplo, um grupo de filtros especifica que uma compilação seja acionada somente quando os arquivos são alterados nas pastas src
ou test
.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^src/.+|^test/.+" } ] ]
Você pode criar um filtro que aciona uma compilação somente quando uma alteração é feita por um usuário especificado GitHub ou do GitHub Enterprise Server com ID da conta. actor-account-id
nota
Para obter informações sobre como encontrar o ID GitHub da sua conta, consulte https://api.github.com/users/ nome de usuário, em que nome
de usuário é seu nome
de GitHub usuário.
"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" } ] ]
É possível criar um filtro que aciona uma compilação somente quando a mensagem de confirmação head corresponde à expressão regular no argumento padrão. Neste exemplo, o grupo de filtros especifica que uma compilação é acionada somente quando a mensagem de confirmação head do evento de push corresponde à expressão regular \[CodeBuild\]
.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "COMMIT_MESSAGE", "pattern": "\[CodeBuild\]" } ] ]
Para criar um filtro de webhook que acione uma compilação somente para trabalhos de fluxo de trabalho do GitHub Actions, insira o seguinte na sintaxe da solicitação:
"filterGroups": [ [ { "type": "EVENT", "pattern": "WORKFLOW_JOB_QUEUED" } ] ]
Filtrar eventos de GitHub webhook ()AWS CloudFormation
Para usar um AWS CloudFormation modelo para filtrar eventos de webhook, use a FilterGroups
propriedade do AWS CodeBuild projeto. A seguinte parte formatada em YAML de um modelo do AWS CloudFormation
cria dois grupos de filtros. Juntos, eles acionarão uma compilação quando um ou ambos forem avaliados como verdadeiro:
-
O primeiro grupo de filtros especifica que as pull requests são criadas ou atualizadas em ramificações com nomes de referência do Git que correspondem à
^refs/heads/main$
expressão regular de GitHub um usuário que não tem ID de conta.12345
-
O segundo grupo de filtros especifica que as solicitações push sejam criadas em arquivos com nomes que correspondem à expressão regular
READ_ME
, em ramificações com nomes de referência do Git que correspondem à expressão regular^refs/heads/.*
. -
O terceiro grupo de filtros especifica uma solicitação push com uma mensagem de confirmação head correspondente à expressão regular
\[CodeBuild\]
. -
O quarto grupo de filtros especifica uma solicitação de trabalho do fluxo de trabalho do GitHub Actions com um nome de fluxo de trabalho correspondente à expressão
\[CI-CodeBuild\]
regular.
CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole:
service-role
Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: GITHUB Location:source-location
Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED - Type: BASE_REF Pattern: ^refs/heads/main$ ExcludeMatchedPattern: false - Type: ACTOR_ACCOUNT_ID Pattern: 12345 ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: HEAD_REF Pattern: ^refs/heads/.* - Type: FILE_PATH Pattern: READ_ME ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: COMMIT_MESSAGE Pattern: \[CodeBuild\] - Type: FILE_PATH Pattern: ^src/.+|^test/.+ - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]