4.0 KiB
		
	
	
	
	
	
			
		
		
	
	
			4.0 KiB
		
	
	
	
	
	
| stage | group | info | 
|---|---|---|
| Manage | Import and Integrate | To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments | 
System hooks API (FREE SELF)
All methods require administrator authorization.
You can configure the URL endpoint of the system hooks from the GitLab user interface:
- On the left sidebar, expand the top-most chevron ({chevron-down}).
- Select Admin Area.
- Select System Hooks (/admin/hooks).
Read more about system hooks.
List system hooks
Get a list of all system hooks.
GET /hooks
Example request:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks"
Example response:
[
  {
    "id":1,
    "url":"https://gitlab.example.com/hook",
    "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
  }
]
Get system hook
Introduced in GitLab 14.9.
Get a system hook by its ID.
GET /hooks/:id
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer | yes | The ID of the hook | 
Example request:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/1"
Example response:
[
  {
    "id": 1,
    "url": "https://gitlab.example.com/hook",
    "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
  }
]
Add new system hook
Add a new system hook.
POST /hooks
| Attribute | Type | Required | Description | 
|---|---|---|---|
| url | string | yes | The hook URL | 
| token | string | no | Secret token to validate received payloads; this isn't returned in the response | 
| push_events | boolean | no | When true, the hook fires on push events | 
| tag_push_events | boolean | no | When true, the hook fires on new tags being pushed | 
| merge_requests_events | boolean | no | Trigger hook on merge requests events | 
| repository_update_events | boolean | no | Trigger hook on repository update events | 
| enable_ssl_verification | boolean | no | Do SSL verification when triggering the hook | 
Example request:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks?url=https://gitlab.example.com/hook"
Example response:
[
  {
    "id":1,
    "url":"https://gitlab.example.com/hook",
    "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
  }
]
Test system hook
Executes the system hook with mock data.
POST /hooks/:id
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer | yes | The ID of the hook | 
Example request:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/1"
The response is always the mock data:
{
   "project_id" : 1,
   "owner_email" : "example@gitlabhq.com",
   "owner_name" : "Someone",
   "name" : "Ruby",
   "path" : "ruby",
   "event_name" : "project_create"
}
Delete system hook
Deletes a system hook.
DELETE /hooks/:id
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer | yes | The ID of the hook | 
Example request:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/hooks/2"