GitLab CI/CD hooks API

Operations about hooks

Operations 22

PUT /api/v4/projects/{id}/hooks/{hook_id}/url_variables/{key} Set a url variable #
DELETE /api/v4/projects/{id}/hooks/{hook_id}/url_variables/{key} Un-Set a url variable #
PUT /api/v4/projects/{id}/hooks/{hook_id}/custom_headers/{key} Set a custom header #
DELETE /api/v4/projects/{id}/hooks/{hook_id}/custom_headers/{key} Un-Set a custom header #
GET /api/v4/projects/{id}/hooks List project hooks #
POST /api/v4/projects/{id}/hooks Add project hook #
GET /api/v4/projects/{id}/hooks/{hook_id} Get project hook #
PUT /api/v4/projects/{id}/hooks/{hook_id} Edit project hook #
DELETE /api/v4/projects/{id}/hooks/{hook_id} Delete a project hook #
GET /api/v4/projects/{id}/hooks/{hook_id}/events Get events for a given hook id #
POST /api/v4/projects/{id}/hooks/{hook_id}/test/{trigger} Triggers a hook test #
POST /api/v4/projects/{id}/hooks/{hook_id}/events/{hook_log_id}/resend Resend a webhook event #
PUT /api/v4/hooks/{hook_id}/url_variables/{key} Set a url variable #
DELETE /api/v4/hooks/{hook_id}/url_variables/{key} Un-Set a url variable #
PUT /api/v4/hooks/{hook_id}/custom_headers/{key} Set a custom header #
DELETE /api/v4/hooks/{hook_id}/custom_headers/{key} Un-Set a custom header #
GET /api/v4/hooks List system hooks #
POST /api/v4/hooks Add new system hook #
GET /api/v4/hooks/{hook_id} Get system hook #
PUT /api/v4/hooks/{hook_id} Edit system hook #
POST /api/v4/hooks/{hook_id} Test a hook #
DELETE /api/v4/hooks/{hook_id} Delete system hook #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gitlab-ci-hooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gitlab-ci-hooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: GitLab access_requests Hooks API
  version: v4
  description: Operations related to access requests
servers:
- url: https://gitlab.com
tags:
- name: hooks
  description: Operations about hooks
paths:
  /api/v4/projects/{id}/hooks/{hook_id}/url_variables/{key}:
    put:
      summary: Set a url variable
      description: Sets a URL variable for a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The key of the variable
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Set a url variable
      tags:
      - hooks
      operationId: putApiV4ProjectsIdHooksHookIdUrlVariablesKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/putApiV4ProjectsIdHooksHookIdUrlVariablesKey'
        required: true
    delete:
      summary: Un-Set a url variable
      description: Removes a URL variable from a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The key of the variable
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: Un-Set a url variable
      tags:
      - hooks
      operationId: deleteApiV4ProjectsIdHooksHookIdUrlVariablesKey
  /api/v4/projects/{id}/hooks/{hook_id}/custom_headers/{key}:
    put:
      summary: Set a custom header
      description: Sets a custom header for a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The name of the custom header
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Set a custom header
      tags:
      - hooks
      operationId: putApiV4ProjectsIdHooksHookIdCustomHeadersKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/putApiV4ProjectsIdHooksHookIdCustomHeadersKey'
        required: true
    delete:
      summary: Un-Set a custom header
      description: Removes a custom header from a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The name of the custom header
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: Un-Set a custom header
      tags:
      - hooks
      operationId: deleteApiV4ProjectsIdHooksHookIdCustomHeadersKey
  /api/v4/projects/{id}/hooks:
    get:
      summary: List project hooks
      description: Get a list of project hooks
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        required: true
        schema:
          type: string
      - in: query
        name: page
        description: Current page number
        required: false
        example: 1
        schema:
          type: integer
          format: int32
          default: 1
      - in: query
        name: per_page
        description: Number of items per page
        required: false
        example: 20
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: List project hooks
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/API_Entities_ProjectHook'
      tags:
      - hooks
      operationId: getApiV4ProjectsIdHooks
    post:
      summary: Add project hook
      description: Adds a hook to a specified project
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Add project hook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API_Entities_ProjectHook'
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - hooks
      operationId: postApiV4ProjectsIdHooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/postApiV4ProjectsIdHooks'
        required: true
  /api/v4/projects/{id}/hooks/{hook_id}:
    get:
      summary: Get project hook
      description: Get a specific hook for a project
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        required: true
        schema:
          type: string
      - in: path
        name: hook_id
        description: The ID of a project hook
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Get project hook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API_Entities_ProjectHook'
        '404':
          description: Not found
      tags:
      - hooks
      operationId: getApiV4ProjectsIdHooksHookId
    put:
      summary: Edit project hook
      description: Edits a hook for a specified project.
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        required: true
        schema:
          type: string
      - in: path
        name: hook_id
        description: The ID of the project hook
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Edit project hook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API_Entities_ProjectHook'
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - hooks
      operationId: putApiV4ProjectsIdHooksHookId
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/putApiV4ProjectsIdHooksHookId'
        required: true
    delete:
      summary: Delete a project hook
      description: Removes a hook from a project. This is an idempotent method and can be called multiple times. Either the hook is available or not.
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        required: true
        schema:
          type: string
      - in: path
        name: hook_id
        description: The ID of the project hook
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: Not found
      tags:
      - hooks
      operationId: deleteApiV4ProjectsIdHooksHookId
  /api/v4/projects/{id}/hooks/{hook_id}/events:
    get:
      summary: Get events for a given hook id
      description: List web hook logs by hook id
      parameters:
      - in: query
        name: status
        description: HTTP status code of the event
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - '100'
            - '101'
            - '102'
            - '103'
            - '200'
            - '201'
            - '202'
            - '203'
            - '204'
            - '205'
            - '206'
            - '207'
            - '208'
            - '226'
            - '300'
            - '301'
            - '302'
            - '303'
            - '304'
            - '305'
            - '306'
            - '307'
            - '308'
            - '400'
            - '401'
            - '402'
            - '403'
            - '404'
            - '405'
            - '406'
            - '407'
            - '408'
            - '409'
            - '410'
            - '411'
            - '412'
            - '413'
            - '414'
            - '415'
            - '416'
            - '417'
            - '421'
            - '422'
            - '423'
            - '424'
            - '425'
            - '426'
            - '428'
            - '429'
            - '431'
            - '451'
            - '500'
            - '501'
            - '502'
            - '503'
            - '504'
            - '505'
            - '506'
            - '507'
            - '508'
            - '509'
            - '510'
            - '511'
            - successful
            - client_failure
            - server_failure
      - in: query
        name: per_page
        description: Number of items per page
        required: false
        example: 20
        schema:
          type: integer
          format: int32
          default: 20
          maximum: 20
          minimum: 1
      - in: query
        name: page
        description: Current page number
        required: false
        example: 1
        schema:
          type: integer
          format: int32
          default: 1
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: hook_id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Get events for a given hook id
        '400':
          description: Bad request
        '404':
          description: Not found
        '403':
          description: Forbidden
      tags:
      - hooks
      operationId: getApiV4ProjectsIdHooksHookIdEvents
  /api/v4/projects/{id}/hooks/{hook_id}/test/{trigger}:
    post:
      summary: Triggers a hook test
      description: Triggers a hook test
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: trigger
        description: The type of trigger hook
        required: true
        schema:
          type: string
          enum:
          - confidential_issues_events
          - confidential_note_events
          - deployment_events
          - emoji_events
          - feature_flag_events
          - issues_events
          - job_events
          - merge_requests_events
          - milestone_events
          - note_events
          - pipeline_events
          - push_events
          - releases_events
          - resource_access_token_events
          - resource_deploy_token_events
          - tag_push_events
          - wiki_page_events
          - vulnerability_events
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '201':
          description: Triggers a hook test
        '400':
          description: Bad request
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
        '429':
          description: Too many requests
      tags:
      - hooks
      operationId: postApiV4ProjectsIdHooksHookIdTestTrigger
  /api/v4/projects/{id}/hooks/{hook_id}/events/{hook_log_id}/resend:
    post:
      summary: Resend a webhook event
      description: Resend a webhook event
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: hook_id
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: hook_log_id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '201':
          description: Resend a webhook event
        '422':
          description: Unprocessable entity
        '404':
          description: Not found
        '429':
          description: Too many requests
      tags:
      - hooks
      operationId: postApiV4ProjectsIdHooksHookIdEventsHookLogIdResend
  /api/v4/hooks/{hook_id}/url_variables/{key}:
    put:
      summary: Set a url variable
      description: Sets a URL variable for a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The key of the variable
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Set a url variable
      tags:
      - hooks
      operationId: putApiV4HooksHookIdUrlVariablesKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/putApiV4HooksHookIdUrlVariablesKey'
        required: true
    delete:
      summary: Un-Set a url variable
      description: Removes a URL variable from a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The key of the variable
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Un-Set a url variable
      tags:
      - hooks
      operationId: deleteApiV4HooksHookIdUrlVariablesKey
  /api/v4/hooks/{hook_id}/custom_headers/{key}:
    put:
      summary: Set a custom header
      description: Sets a custom header for a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The name of the custom header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Set a custom header
      tags:
      - hooks
      operationId: putApiV4HooksHookIdCustomHeadersKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/putApiV4HooksHookIdCustomHeadersKey'
        required: true
    delete:
      summary: Un-Set a custom header
      description: Removes a custom header from a webhook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      - in: path
        name: key
        description: The name of the custom header
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Un-Set a custom header
      tags:
      - hooks
      operationId: deleteApiV4HooksHookIdCustomHeadersKey
  /api/v4/hooks:
    get:
      summary: List system hooks
      description: Get a list of all system hooks
      parameters:
      - in: query
        name: page
        description: Current page number
        required: false
        example: 1
        schema:
          type: integer
          format: int32
          default: 1
      - in: query
        name: per_page
        description: Number of items per page
        required: false
        example: 20
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: List system hooks
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/API_Entities_Hook'
      tags:
      - hooks
      operationId: getApiV4Hooks
    post:
      summary: Add new system hook
      description: Add a new system hook
      responses:
        '201':
          description: Add new system hook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API_Entities_Hook'
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - hooks
      operationId: postApiV4Hooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/postApiV4Hooks'
        required: true
  /api/v4/hooks/{hook_id}:
    get:
      summary: Get system hook
      description: Get a system hook by its ID. Introduced in GitLab 14.9.
      parameters:
      - in: path
        name: hook_id
        description: The ID of the system hook
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Get system hook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API_Entities_Hook'
        '404':
          description: Not found
      tags:
      - hooks
      operationId: getApiV4HooksHookId
    put:
      summary: Edit system hook
      description: Edits a system hook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the system hook
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Edit system hook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API_Entities_Hook'
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - hooks
      operationId: putApiV4HooksHookId
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/putApiV4HooksHookId'
        required: true
    post:
      summary: Test a hook
      description: Tests a webhook by triggering a test event
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '201':
          description: Test a hook
      tags:
      - hooks
      operationId: postApiV4HooksHookId
    delete:
      summary: Delete system hook
      description: Deletes a system hook
      parameters:
      - in: path
        name: hook_id
        description: The ID of the system hook
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '404':
          description: Not found
        '204':
          description: Delete system hook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API_Entities_Hook'
      tags:
      - hooks
      operationId: deleteApiV4HooksHookId
components:
  schemas:
    API_Entities_Hook:
      type: object
      properties:
        id:
          type: integer
          format: int32
          example: 1
        url:
          type: string
          example: https://webhook.site
        name:
          type: string
          example: Hook name
        description:
          type: string
          example: Hook description
        created_at:
          type: string
          format: date-time
          example: '2012-05-28T04:42:42-07:00'
        push_events:
          type: boolean
        tag_push_events:
          type: boolean
        merge_requests_events:
          type: boolean
        repository_update_events:
          type: boolean
        enable_ssl_verification:
          type: boolean
        organization_id:
          type: integer
          format: int32
          example: 1
        alert_status:
          type: string
          example: executable
        disabled_until:
          type: string
          format: date-time
          example: '2012-05-28T04:42:42-07:00'
        url_variables:
          type: array
          items:
            type: object
          example:
          - token: secr3t
        push_events_branch_filter:
          type: string
          example: my-branch-*
        branch_filter_strategy:
          type: string
          example: wildcard
        custom_webhook_template:
          type: string
          example: '{"event":"{{object_kind}}"}'
        custom_headers:
          type: array
          items:
            type: object
          example:
          - X-Custom-Header: value
        token_present:
          type: boolean
          example: false
          description: Whether a secret token is configured
        signing_token_present:
          type: boolean
          example: false
          description: Whether an HMAC signing token is configured
      required:
      - id
      - url
      - name
      - description
      - created_at
      - push_events
      - tag_push_events
      - merge_requests_events
      - repository_update_events
      - enable_ssl_verification
      - alert_status
      - disabled_until
      - push_events_branch_filter
      - branch_filter_strategy
      - custom_webhook_template
      - token_present
      - signing_token_present
      description: API_Entities_Hook model
    putApiV4ProjectsIdHooksHookId:
      type: object
      properties:
        url:
          type: string
          description: The URL to send the request to
        name:
          type: string
          description: Name of the hook
        description:
          type: string
          description: Description of the hook
        push_events:
          type: boolean
          description: Trigger hook on push events
        issues_events:
          type: boolean
          description: Trigger hook on issues events
        confidential_issues_events:
          type: boolean
          description: Trigger hook on confidential issues events
        merge_requests_events:
          type: boolean
          description: Trigger hook on merge request events
        tag_push_events:
          type: boolean
          description: Trigger hook on tag push events
        note_events:
          type: boolean
          description: Trigger hook on note (comment) events
        confidential_note_events:
          type: boolean
          description: Trigger hook on confidential note (comment) events
        job_events:
          type: boolean
          description: Trigger hook on job events
        pipeline_events:
          type: boolean
          description: Trigger hook on pipeline events
        wiki_page_events:
          type: boolean
          description: Trigger hook on wiki events
        deployment_events:
          type: boolean
          description: Trigger hook on deployment events
        feature_flag_events:
          type: boolean
          description: Trigger hook on feature flag events
        releases_events:
          type: boolean
          description: Trigger hook on release events
        milestone_events:
          type: boolean
          description: Trigger hook on milestone events
        emoji_events:
          type: boolean
          description: Trigger hook on emoji events
        resource_access_token_events:
          type: boolean
          description: Trigger hook on project access token expiry events
        resource_deploy_token_events:
          type: boolean
          description: Trigger hook on deploy token expiry events
        enable_ssl_verification:
          type: boolean
          description: Do SSL verification when triggering the hook
        token:
          type: string
          description: Secret token to validate received payloads; this will not be returned in the response
        signing_token:
          type: string
          description: HMAC signing token used to compute the webhook-signature header. Must be in whsec_<base64> format encoding a 32-byte key. Not returned in the response
        push_events_branch_filter:
          type: string
          description: Trigger hook on specified branch only
        custom_webhook_template:
          type: string
          description: Custom template for the request payload
        branch_filter_strategy:
          type: string
          description: Filter push events by branch. Possible values are `wildcard` (default), `regex`, and `all_branches`
          enum:
          - wildcard
          - regex
          - all_branches
        vulnerability_events:
          type: boolean
          description: Trigger hook on vulnerability events
        url_variables:
          type: array
          description: URL variables for interpolation
          items:
            type: object
            properties:
              key:
                type: string
                description: Name of the variable
                example: token
              value:
                type: string
                description: Value of the variable
                example: '123'
            required:
            - key
            - value
        custom_headers:
          type: array
          description: Custom headers
          items:
            type: object
            properties:
              key:
                type: string
                description: Name of the header
                example: X-Custom-Header
              value:
                type: string
                description: Value of the header
                example: value
            required:
            - key
            - value
      description: Edit project hook
    postApiV4Hooks:
      type: object
      properties:
        url:
          type: string
          description: The URL to send the request to
          example: http://example.com/hook
        name:
          type: string
          description: Name of the hook
        description:
          type: string
          description: Description of the hook
        token:
          type: string
          description: Secret token to validate received payloads; this isn't returned in the response
        signing_token:
          type: string
          description: HMAC signing token used to compute the webhook-signature header. Must be in whsec_<base64> format encoding a 32-byte key. Not returned in the response
        push_events:
          type: boolean
          description: When true, the hook fires on push events
        tag_push_events:
          type: boolean
          description: When true, the hook fires on new tags being pushed
        merge_requests_events:
          type: boolean
          description: Trigger hook on merge requests events
        repository_update_events:
          type: boolean
          description: Trigger hook on repository update events
        enable_ssl_verification:
          type: boolean
          description: Do SSL verification when triggering the hook
        push_events_branch_filter:
          type: string
          description: Trigger hook on specified branch only
        branch_filter_strategy:
          type: string
          description: Filter push events by branch. Possible values are `wildcard` (default), `regex`, and `all_branches`
          enum:
          - wildcard
          - regex
          - all_branches
        custom_webhook_template:
          type: string
          description: Custom template for the request payload
        url_variables:
          type: array
          description: URL variables for interpolation
          items:
            type: object
            properties:
              key:
                type: string
                description: Name of the variable
                example: token
              value:
                type: string
                description: Value of the variable
                example: '123'
            required:
            - key
            - value
        custom_headers:
          type: array
          description: Custom headers
          items:
            type: object
            properties:
              key:
                type: string
                description: Name of the header
                example: X-Custom-Header
              value:
                type: string
                description: Value of the header
                example: value
            required:
            - key
            - value
      required:
      - url
      description: Add new system hook
    putApiV4HooksHookIdUrlVariablesKey:
      type: object
      properties:
        value:
          type: string
          description: The value of the variable
      required:
      - value
      description: Set a url variable
    putApiV4HooksHookIdCustomHeadersKey:
      type: object
      properties:
        value:
          type: string
          description: The value of the custom header
      required:
      - value
      description: Set a custom header
    putApiV4ProjectsIdHooksHookIdUrlVariablesKey:
      type: object
      properties:
        value:
          type: string
          description: The value of the variable
      required:
      - value
      description: Set a url variable
    putApiV4HooksHookId:
      type: object
      properties:
        url:
          type: string
          description: The URL to send the request to
        name:
          type: string
          description: Name of the hook
        description:
          type: string
          description: Description of the hook
        token:
          type: string
          description: Secret token to validate received payloads; this isn't returned in the response
        signing_token:
          type: string
          description: HMAC signing token used to compute the webhook-signature header. Must be in whsec_<base64> format encoding a 32-byte key. Not returned in the response
        push_events:
          type: boolean
          description: When true, the hook fires on push events
        tag_push_events:
          type: boolean
          description: When true, the hook fires on new tags being pushed
        merge_requests_events:
          type: boolean
          description: Trigger hook on merge requests events
        repository_update_events:
          type: boolean
          description: Trigger hook on repository update events
        enable_ssl_verification:
          type: boolean
          description: Do SSL verification when triggering the hook
        push_events_branch_filter:
          type: string
          description: Trigger hook on specified branch only
        branch_filter_strategy:
          type: string
          description: Filter push events by branch. Possible values are `wildcard` (default), `regex`, and `all_branches`
          enum:
          - wildcard
          - regex
          - all_branches
        custom_webhook_template:
          type: string
          description: Custom template for the request payload
        url_variables:
          type: array
          description: URL variables for interpolation
          items:
            type: object
            properties:
              key:
                type: string
                description: Name of the variable
                example: token
              value:
                type: string
                description: Value of the variable
                example: '123'
            required:
            - key
            - value
        custom_headers:
         

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/openapi/gitlab-ci-hooks-api-openapi.yml