GitHub eventos de webhook - AWS CodeBuild

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: PUSHPULL_REQUEST_CREATED,PULL_REQUEST_UPDATED,PULL_REQUEST_REOPENED,PULL_REQUEST_MERGED, PULL_REQUEST_CLOSEDRELEASED,PRERELEASED,, WORKFLOW_JOB_QUEUED e. O tipo de evento webhook está no cabeçalho X-GitHub-Event na carga webhook. No cabeçalho X-GitHub-Event, você pode ver pull_request ou push. Para obter uma solicitação pull, o tipo de evento está no campo action da carga do evento webhook. A tabela a seguir mostra como valores de cabeçalho X-GitHub-Event e os valores do campo action 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 Webhook Tipo 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 campo merged é true PULL_REQUEST_MERGED
pull_request closed e o campo merged é 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 de WORKFLOW_JOB_QUEUED evento RELEASEDPRERELEASED, e pode ser usado GitHub somente com. Para obter mais informações sobre WORKFLOW_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 objeto sender 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 ou refs/tags/tag-name). Para um evento push, o nome de referência é encontrado na propriedade ref da carga webhook. Para eventos de solicitações pull, o nome da ramificação é encontrado na propriedade ref do objeto head 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 filtro BASE_REF pode ser usado apenas com eventos de solicitação pull. O nome da ramificação é encontrado na propriedade ref do objeto base 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

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.

  1. 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.

  2. Em Event type (Tipo de evento), escolha um ou mais eventos.

  3. 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.

  4. 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.

  5. 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:

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$.

Neste exemplo, um grupo de filtros de webhook aciona uma compilação para todas as solicitações, com exceção de eventos de tag.

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.

Neste exemplo, um grupo de filtros de webhook aciona uma compilação somente quando os arquivos são alterados nas pastas src ou test.

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.

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\].

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.

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

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\]