Webhooks are an event-driven integration mechanism with external systems. They enable automatic sending of HTTP requests when specific events occur in Deckhouse Code:
- Support for a wide range of events: Push, Merge Request, Issue, Pipeline, Release, and others.
- Request configuration: choice of method (POST, PUT), JSON format, header customization.
- Security features: Secret Token, SSL/TLS, event filtering.
- Support at the project, group, and instance levels.
- Integration with CI/CD, monitoring, messaging platforms, and tracking systems.
- Retry mechanism for connection failures.
Project webhooks are supported in GitLab CE.
Group webhooks
To add a webhook at the group level, open the group page and navigate to “Settings” → “Webhooks”. Then select the desired events. Group webhooks support all project events plus:
- Member events;
- Project events;
- Subgroup events.
Member events trigger upon creation, modification, or deletion of group or project members.
If the user has no public email specified, the email in the request body will appear as “[REDACTED]”.
Creating group webhooks
Request header:
X-Gitlab-Event: Member Hook
Example request body:
{
"created_at": "2025-07-02T15:23:25Z",
"updated_at": "2025-07-02T15:35:51Z",
"group_name": "agriculture",
"group_path": "agriculture",
"group_id": 1130,
"user_username": "reported_user_barabara",
"user_name": "Estella Gleason",
"user_email": "[DELETED]",
"user_id": 58,
"group_access": "Guest",
"expires_at": "2025-07-09T00:00:00Z",
"event_name": "user_add_to_group"
}Updating group webhooks
Request header:
X-Gitlab-Event: Member HookExample request body:
{
"created_at": "2025-07-02T15:23:25Z",
"updated_at": "2025-07-02T15:36:21Z",
"group_name": "agriculture",
"group_path": "agriculture",
"group_id": 1130,
"user_username": "reported_user_barabara",
"user_name": "Estella Gleason",
"user_email": "[DELETED]",
"user_id": 58,
"group_access": "Guest",
"expires_at": null,
"event_name": "user_update_for_group"
}Deleting group webhooks
Request header:
X-Gitlab-Event: Member HookExample request body:
{
"created_at": "2025-07-02T15:23:25Z",
"updated_at": "2025-07-02T15:36:21Z",
"group_name": "agriculture",
"group_path": "agriculture",
"group_id": 1130,
"user_username": "reported_user_barabara",
"user_name": "Estella Gleason",
"user_email": "[DELETED]",
"user_id": 58,
"group_access": "Guest",
"expires_at": null,
"event_name": "user_remove_from_group"
}Project events
Trigger on creation or deletion of projects in groups and subgroups.
Creating project webhooks
Request header:
X-Gitlab-Event: Project HookExample request body:
{
"event_name": "project_create",
"created_at": "2025-07-02T15:40:09Z",
"updated_at": "2025-07-02T15:40:09Z",
"name": "rspec",
"path": "rspec",
"path_with_namespace": "flant-development/agriculture/rspec",
"project_id": 28,
"project_namespace_id": 1130,
"owners": [
{
"name": "Administrator",
"email": "[DELETED]"
}
],
"project_visibility": "private"
}Deleting project webhooks
Request header:
X-Gitlab-Event: Project HookExample request body:
{
"event_name": "project_destroy",
"created_at": "2025-07-02T15:40:09Z",
"updated_at": "2025-07-02T15:42:04Z",
"name": "rspec",
"path": "rspec",
"path_with_namespace": "flant-development/agriculture/rspec",
"project_id": 28,
"project_namespace_id": 1130,
"owners": [
{
"name": "Administrator",
"email": "[REDACTED]"
}
],
"project_visibility": "private"
}Subgroup events
Trigger on creation or deletion of subgroups.
Creating subgroup webhooks
Request header:
X-Gitlab-Event: Subgroup HookExample request body:
{
"created_at": "2025-07-02T15:44:02Z",
"updated_at": "2025-07-02T15:44:02Z",
"event_name": "subgroup_create",
"name": "finances",
"path": "finances",
"full_path": "flant-development/finances",
"group_id": 1659,
"parent_group_id": 1123,
"parent_name": "Flant development",
"parent_path": "flant-development",
"parent_full_path": "flant-development"
}Deleting subgroup webhooks
Request header:
X-Gitlab-Event: Subgroup HookExample request body:
{
"created_at": "2025-07-02T15:44:02Z",
"updated_at": "2025-07-02T15:44:02Z",
"event_name": "subgroup_destroy",
"name": "finances",
"path": "finances",
"full_path": "flant-development/finances",
"group_id": 1659,
"parent_group_id": 1123,
"parent_name": "Flant development",
"parent_path": "flant-development",
"parent_full_path": "flant-development"
}