doc-locale/fr-fr/api/system_hooks.md
{{< details >}}
{{< /details >}}
Utilisez cette API pour gérer les hooks système. Les hooks système sont différents des webhooks de groupe qui ont un impact sur tous les projets et sous-groupes d'un groupe, et des webhooks de projet qui sont limités à un seul projet.
Prérequis :
Liste tous les hooks système.
GET /hooks
Exemple de requête :
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/hooks"
Exemple de réponse :
[
{
"id":1,
"url":"https://gitlab.example.com/hook",
"name": "Hook name",
"description": "Hook description",
"created_at":"2016-10-31T12:32:15.192Z",
"push_events":true,
"tag_push_events":false,
"merge_requests_events": true,
"repository_update_events": true,
"enable_ssl_verification":true,
"url_variables": [],
"token_present": false,
"signing_token_present": false
}
]
{{< history >}}
name et description ont été introduits dans GitLab 17.1.token_present et signing_token_present ont été introduits dans GitLab 19.0.{{< /history >}}
Récupère un hook système par son ID.
GET /hooks/:id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier | Oui | L'ID du hook. |
Exemple de requête :
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/hooks/1"
Exemple de réponse :
{
"id": 1,
"url": "https://gitlab.example.com/hook",
"name": "Hook name",
"description": "Hook description",
"created_at": "2016-10-31T12:32:15.192Z",
"push_events": true,
"tag_push_events": false,
"merge_requests_events": true,
"repository_update_events": true,
"enable_ssl_verification": true,
"url_variables": [],
"token_present": false,
"signing_token_present": false
}
{{< history >}}
name et description ont été introduits dans GitLab 17.1.signing_token a été introduit dans GitLab 19.0 avec un flag nommé webhook_signing_token. Activé par défaut. Activé par défaut.webhook_signing_token a été supprimé dans GitLab 19.1.{{< /history >}}
Ajoute un nouveau hook système.
POST /hooks
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
url | string | Oui | L'URL du hook. |
branch_filter_strategy | string | Non | Filtrer les événements push par branche. Les valeurs possibles sont wildcard (par défaut), regex et all_branches. |
description | string | Non | Description du hook. |
enable_ssl_verification | boolean | Non | Effectuer la vérification SSL lors du déclenchement du hook. |
merge_requests_events | boolean | Non | Déclencher le hook sur les événements de merge request. |
name | string | Non | Nom du hook. |
push_events | boolean | Non | Lorsque la valeur est true, le hook se déclenche sur les événements push. |
push_events_branch_filter | string | Non | Déclencher le hook sur les événements push uniquement pour les branches correspondantes. |
repository_update_events | boolean | Non | Déclencher le hook sur les événements de mise à jour du dépôt. |
signing_token | string | Non | Token de signature HMAC utilisé pour calculer l'en-tête webhook-signature. Doit être au format whsec_<base64> encodant une clé de 32 octets. Non retourné dans la réponse. |
tag_push_events | boolean | Non | Lorsque la valeur est true, le hook se déclenche lors du push de nouveaux tags. |
token | string | Non | Token secret pour valider les charges utiles reçues. Non retourné dans la réponse. |
Exemple de requête :
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/hooks?url=https://gitlab.example.com/hook"
Exemple de réponse :
[
{
"id":1,
"url":"https://gitlab.example.com/hook",
"name": "Hook name",
"description": "Hook description",
"created_at":"2016-10-31T12:32:15.192Z",
"push_events":true,
"tag_push_events":false,
"merge_requests_events": true,
"repository_update_events": true,
"enable_ssl_verification":true,
"url_variables": [],
"token_present": false,
"signing_token_present": false
}
]
{{< history >}}
name et description ont été introduits dans GitLab 17.1.signing_token a été introduit dans GitLab 19.0 avec un flag nommé webhook_signing_token. Activé par défaut. Activé par défaut.webhook_signing_token a été supprimé dans GitLab 19.1.{{< /history >}}
Met à jour un hook système existant.
PUT /hooks/:hook_id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
hook_id | entier | Oui | L'ID du hook système. |
branch_filter_strategy | string | Non | Filtrer les événements push par branche. Les valeurs possibles sont wildcard (par défaut), regex et all_branches. |
description | string | Non | Description du hook. |
enable_ssl_verification | boolean | Non | Effectuer la vérification SSL lors du déclenchement du hook. |
merge_requests_events | boolean | Non | Déclencher le hook sur les événements de merge request. |
name | string | Non | Nom du hook. |
push_events | boolean | Non | Lorsque la valeur est true, le hook se déclenche sur les événements push. |
push_events_branch_filter | string | Non | Déclencher le hook sur les événements push uniquement pour les branches correspondantes. |
repository_update_events | boolean | Non | Déclencher le hook sur les événements de mise à jour du dépôt. |
signing_token | string | Non | Token de signature HMAC utilisé pour calculer l'en-tête webhook-signature. Doit être au format whsec_<base64> encodant une clé de 32 octets. Non retourné dans la réponse. |
tag_push_events | boolean | Non | Lorsque la valeur est true, le hook se déclenche lors du push de nouveaux tags. |
token | string | Non | Token secret pour valider les charges utiles reçues. Non retourné dans la réponse. |
url | string | Non | L'URL du hook. |
Exécute le hook système avec des données fictives.
POST /hooks/:id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier | Oui | L'ID du hook. |
Exemple de requête :
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/hooks/1"
La réponse est toujours les données fictives :
{
"project_id" : 1,
"owner_email" : "[email protected]",
"owner_name" : "Someone",
"name" : "Ruby",
"path" : "ruby",
"event_name" : "project_create"
}
Supprime un hook système.
DELETE /hooks/:id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier | Oui | L'ID du hook. |
Exemple de requête :
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/hooks/2"
PUT /hooks/:hook_id/url_variables/:key
Attributs pris en charge :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
hook_id | entier | Oui | ID du hook système. |
key | string | Oui | Clé de la variable d'URL. |
value | string | Oui | Valeur de la variable d'URL. |
En cas de succès, cet endpoint retourne le code de réponse 204 No Content.
DELETE /hooks/:hook_id/url_variables/:key
Attributs pris en charge :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
hook_id | entier | Oui | ID du hook système. |
key | string | Oui | Clé de la variable d'URL. |
En cas de succès, cet endpoint retourne le code de réponse 204 No Content.