Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
GitHubeventi webhook
È possibile utilizzare i gruppi di filtri webhook per specificare qualiGitHubgli eventi webhook attivano una build. Ad esempio, puoi specificare che una build viene attivata solo per le modifiche a rami specifici.
È possibile creare uno o più gruppi di filtri di webhook per specificare quali eventi webhook attivano una compilazione. Una build viene attivata se un gruppo di filtri restituisce true, che si verifica quando tutti i filtri del gruppo restituiscono true. Al momento della creazione di un gruppo di filtri sarà necessario indicare:
- Un evento
-
PerGitHub, puoi scegliere uno o più dei seguenti eventi:
PUSH
,PULL_REQUEST_CREATED
,PULL_REQUEST_UPDATED
,PULL_REQUEST_REOPENED
, ePULL_REQUEST_MERGED
. Il tipo di evento webhook si trova nell'intestazioneX-GitHub-Event
nel payload del webhook. Nell'intestazioneX-GitHub-Event
puoi vederepull_request
opush
. Per un evento di richiesta pull, il tipo si trova nel campoaction
del payload del webhook. La tabella seguente mostra il modo in cui i valori dell'intestazioneX-GitHub-Event
e i valori del campoaction
del payload della richiesta pull del webhook sono mappati ai tipi di eventi disponibili.Valore intestazione X-GitHub-Event
Valore action
del payload di eventi webhookTipo di evento pull_request
opened
PULL_REQUEST_CREATED
pull_request
reopened
PULL_REQUEST_REOPENED
pull_request
synchronize
PULL_REQUEST_UPDATED
pull_request
closed
e il campomerged
ètrue
PULL_REQUEST_MERGED
push
N/A PUSH
Nota
La
PULL_REQUEST_REOPENED
il tipo di evento può essere utilizzato conGitHubeGitHubSolo Enterprise Server. - Uno o più filtri opzionali
-
Per specificare un filtro, utilizza un'espressione regolare. Affinché un evento attivi una build, ogni filtro all'interno del gruppo ad esso associato deve restituire true.
ACTOR_ACCOUNT_ID
(ACTOR_ID
nella console)-
Un evento webhook attiva una build quandoGitHuboGitHubL'ID dell'account Enterprise Server corrisponde allo schema delle espressioni regolari. Questo valore si trova nella proprietà
id
dell'oggettosender
nel payload del webhook. HEAD_REF
-
Un evento webhook attiva una build quando il riferimento principale corrisponde allo schema delle espressioni regolari (ad esempio,
refs/heads/branch-name
orefs/tags/tag-name
). Per un evento push, il nome di riferimento si trova nella proprietàref
nel payload del webhook. Per gli eventi di richieste pull, il nome del ramo si trova nella proprietàref
dell'oggettohead
nel payload del webhook. BASE_REF
-
Un evento webhook attiva una build quando il riferimento di base corrisponde al modello delle espressioni regolari (ad esempio,
refs/heads/branch-name
). Un filtroBASE_REF
può essere utilizzato solo con gli eventi di richiesta pull. Il nome del ramo si trova nella proprietàref
dell'oggettobase
nel payload del webhook. FILE_PATH
-
Un webhook attiva una build quando il percorso di un file modificato corrisponde al modello delle espressioni regolari. UN
FILE_PATH
il filtro può essere utilizzato conGitHubeventi di richiesta push e pull eGitHubEventi push di Enterprise Server. Non può essere usato conGitHubEventi di pull request di Enterprise Server. COMMIT_MESSAGE
-
Un webhook attiva una build quando il messaggio head commit corrisponde allo schema delle espressioni regolari. UN
COMMIT_MESSAGE
il filtro può essere utilizzato conGitHubeventi di richiesta push e pull eGitHubEventi push di Enterprise Server. Non può essere usato conGitHubEventi di pull request di Enterprise Server.
Nota
Puoi trovare il payload del webhook nelle impostazioni del webhook del tuoGitHubdeposito.
Argomenti
FiltroGitHubeventi webhook (console)
NelEventi webhook di origine primaria, seleziona quanto segue. Questa sezione è disponibile solo se scegliArchivio nel mioGitHubcontoper il repository dei sorgenti.
-
Al momento della creazione di un progetto, selezionare Rebuild every time a code change is pushed to this repository (Ricompila ogni volta che viene inviata una modifica del codice a questo repository).
-
Da Event type (Tipo di evento), selezionare uno o più eventi.
-
Per applicare un filtro che stabilisce quando un evento avvia una compilazione, in Start a build under these conditions (Avvia una compilazione in queste condizioni) aggiungere uno o più filtri facoltativi.
-
Per applicare un filtro che stabilisce quando un evento non avvia una compilazione, in Don't start a build under these conditions (Non avviare una compilazione in queste condizioni) aggiungere uno o più filtri facoltativi.
-
ScegliAggiungi gruppo di filtriper aggiungere un altro gruppo di filtri, se necessario.
Per ulteriori informazioni, consulta le pagine Creare un progetto di compilazione (console) e WebhookFilter nella Documentazione di riferimento dell'API AWS CodeBuild.
In questo esempio, un gruppo di filtri webhook avvia una compilazione solo per le richieste pull:

In un esempio con due gruppi di filtri di webhook, una compilazione si attiva quando uno o entrambi risultano soddisfatti:
-
Il primo gruppo di filtri specifica le richieste pull create, aggiornate o riaperte su rami con nomi di riferimento Git che corrispondono all'espressione regolare
^refs/heads/main$
e riferimenti head che corrispondono a^refs/heads/branch1$
. -
Il secondo gruppo di filtri specifica le richieste push su rami con nomi di riferimento Git che corrispondono all'espressione regolare
^refs/heads/branch1$
.

In questo esempio, un gruppo di filtri webhook avvia una compilazione per tutte le richieste pull, tranne gli eventi tag:

In questo esempio, un gruppo di filtri di webhook attiva una compilazione solo in caso di modifica dei file con nomi che corrispondono all'espressione regolare ^buildspec.*
.

In questo esempio, un gruppo di filtri webhook attiva una build solo quando i file vengono modificati insrc
otest
cartelle.

In questo esempio, un gruppo di filtri webhook attiva una build solo quando viene apportata una modifica da un utente specificatoGitHuboGitHubUtente di Enterprise Server con un ID account che corrisponde all'espressione regolareactor-account-id
.
Nota
Per informazioni su come trovare il tuoGitHubID account, vedi https://api.github.com/users/nome utente
, dovenome utente
è tuoGitHubnome utente.

In questo esempio, un gruppo di filtri di webhook attiva una compilazione per un evento push quando il messaggio di commit HEAD corrisponde all'espressione regolare \[CodeBuild\]
.

FiltroGitHubeventi webhook (SDK)
Per ricorrere a SDK di AWS CodeBuild per filtrare gli eventi webhook, utilizza il campo filterGroups
nella sintassi di richiesta dei metodi API CreateWebhook
o UpdateWebhook
. Per ulteriori informazioni, consulta WebhookFilter nella documentazione di riferimento dell'API CodeBuild.
Per creare un filtro di webhook che attivi una compilazione solo per le richieste pull, inserire nella sintassi di richiesta quanto segue:
"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED" } ] ]
Per creare un filtro di webhook che attivi una compilazione solo per determinati rami, utilizzare il parametro pattern
per specificare un'espressione regolare che filtri i nomi dei rami. In un esempio con due gruppi di filtri, una compilazione si attiva quando uno o entrambi risultano soddisfatti:
-
Il primo gruppo di filtri specifica le richieste pull create, aggiornate o riaperte su rami con nomi di riferimento Git che corrispondono all'espressione regolare
^refs/heads/main$
e riferimenti head che corrispondono a^refs/heads/myBranch$
. -
Il secondo gruppo di filtri specifica le richieste push su rami con nomi di riferimento Git che corrispondono all'espressione regolare
^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$" } ] ]
Il parametro excludeMatchedPattern
consente di indicare quali eventi non attivano una compilazione. In questo esempio, viene attivata una compilazione per tutte le richieste, tranne gli eventi tag.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ] ]
È possibile creare un filtro che attivi una compilazione solo in caso di modifica dei file con nomi che corrispondono all'espressione regolare nell'argomento pattern
. In questo esempio, il gruppo di filtri indica che una compilazione si attiva solo in caso di modifica dei file con nomi che corrispondono all'espressione regolare ^buildspec.*
.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^buildspec.*" } ] ]
In questo esempio, il gruppo di filtri specifica che una build viene attivata solo quando i file vengono modificati insrc
otest
cartelle.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^src/.+|^test/.+" } ] ]
Puoi creare un filtro che attiva una build solo quando viene apportata una modifica da un determinato utente.GitHuboGitHubUtente Enterprise Server con ID accountactor-account-id
.
Nota
Per informazioni su come trovare il tuoGitHubID account, vedi https://api.github.com/users/nome utente
, dovenome utente
è tuoGitHubnome utente.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED" }, { "type": "ACTOR_ACCOUNT_ID", "pattern": "actor-account-id" } ] ]
È possibile creare un filtro che attiva una compilazione solo quando il messaggio di commit HEAD corrisponde all'espressione regolare nell'argomento del modello. In questo esempio, il gruppo di filtri specifica che viene attivata una compilazione solo quando il messaggio di commit HEAD dell'evento push corrisponde all'espressione regolare \[CodeBuild\]
.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "COMMIT_MESSAGE", "pattern": "\[CodeBuild\]" } ] ]
FiltroGitHubeventi webhook (AWS CloudFormation)
Per ricorrere a un modello AWS CloudFormation per filtrare eventi webhook, utilizzare la proprietà FilterGroups
del progetto AWS CodeBuild. La parte di un modello AWS CloudFormation in formato YAML riportata di seguito crea due gruppi di filtri. Insieme, questi attivano una compilazione quando uno o entrambi risultano soddisfatti:
-
Il primo gruppo di filtri specifica che le richieste pull vengono create o aggiornate sui rami con nomi di riferimento Git che corrispondono all'espressione regolare.
^refs/heads/main$
di aGitHubutente che non dispone di un ID account12345
. -
Il secondo gruppo di filtri specifica le richieste push create su file con nomi che corrispondono all'espressione regolare
READ_ME
in rami con nomi di riferimento Git che corrispondono all'espressione regolare^refs/heads/.*
. -
Il terzo gruppo di filtri specifica una richiesta push con un messaggio di commit HEAD corrispondente all'espressione regolare
\[CodeBuild\]
.
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/.+