Si desea utilizar el SDK de AWS CodeBuild para filtrar eventos de webhooks, utilice el campo filterGroups
de la sintaxis de la solicitud de los métodos de API CreateWebhook
o UpdateWebhook
. Para obtener más información, consulte WebhookFilter en la Referencia de la API de CodeBuild.
Si desea crear un filtro de webhook que desencadene una compilación únicamente con las solicitudes de extracción, inserte lo siguiente en la sintaxis de la solicitud:
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
}
]
]
Si desea crear un filtro de webhooks que desencadene una compilación únicamente con las ramificaciones especificadas, utilice el parámetro pattern
para especificar una expresión regular que filtre los nombres de las ramificaciones. Si utilizamos un ejemplo con dos grupos de filtros, la compilación se desencadenaría cuando uno de los grupos o los dos se evalúen como true:
-
El primer grupo de filtros especifica las solicitudes de extracción que se crean o actualizan en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular
^refs/heads/main$
y las referencias de encabezado que coinciden con^refs/heads/myBranch$
. -
El segundo grupo de filtros especifica solicitudes de inserción en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular
^refs/heads/myBranch$
.
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_CLOSED"
},
{
"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$"
}
]
]
Puede utilizar el parámetro excludeMatchedPattern
para especificar qué eventos no desencadenan una compilación. En este ejemplo, se desencadena una compilación con todas las solicitudes, excepto los eventos de etiquetas.
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
},
{
"type": "HEAD_REF",
"pattern": "^refs/tags/.*",
"excludeMatchedPattern": true
}
]
]
Puede crear un filtro que desencadene una compilación solo cuando un usuario de Bitbucket con el ID de cuenta actor-account-id
realice algún cambio.
nota
Para obtener información acerca de cómo encontrar el ID de cuenta de Bitbucket, consulte https://api.bitbucket.org/2.0/users/nombre-usuario
, donde nombre-usuario
es el nombre de usuario de Bitbucket.
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
},
{
"type": "ACTOR_ACCOUNT_ID",
"pattern": "actor-account-id"
}
]
]
Puede crear un filtro que desencadene una compilación solo cuando se modifiquen los archivos cuyos nombres coincidan con la expresión regular del argumento pattern
. En este ejemplo, el grupo de filtros especifica que la compilación solo debe desencadenarse cuando se modifiquen los archivos cuyos nombres coincidan con la expresión regular ^buildspec.*
.
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "FILE_PATH",
"pattern": "^buildspec.*"
}
]
]
En este ejemplo, el grupo de filtros especifica que solo se activa una compilación cuando se cambian archivos en las carpetas src
o test
.
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "FILE_PATH",
"pattern": "^src/.+|^test/.+"
}
]
]
Puede crear un filtro que desencadene una compilación solo cuando el mensaje de confirmación del encabezado coincida con la expresión regular en el argumento pattern. En este ejemplo, el grupo de filtros especifica que una compilación se desencadena solo cuando el mensaje de confirmación del encabezado del evento de inserción coincide con la expresión regular \[CodeBuild\]
.
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "COMMIT_MESSAGE",
"pattern": "\[CodeBuild\]"
}
]
]