---
title: "Update GitLab integration"
method: PATCH
path: "/gitlab-integration/project/{projectId}"
tags: ["GitLab"]
---

# Update GitLab integration

`PATCH /gitlab-integration/project/{projectId}`

## Request

- Base URL: `https://cloud.kaneo.app/api`
- URL: `https://cloud.kaneo.app/api/gitlab-integration/project/{projectId}`
- Auth: HTTP bearer

Update the GitLab integration. Omitted fields keep their current value.

## Path parameters

- `projectId` string, required

## Request body

- object
  - `isActive` boolean
  - `commentTaskLinkOnGitlabIssue` boolean

## Response `200`

The updated integration

- GitlabIntegration, nullable
  - `id` string, required
  - `projectId` string, required
  - `baseUrl` string, required: Root URL of the GitLab instance.
  - `projectPath` string, required: Full path of the linked project, nested groups included.
  - `tokenType` 'private' | 'bearer', required
  - `maskedAccessToken` string, required: First and last characters of the stored token, only returned to callers with workspace:manage_settings.
  - `webhookUrl` string: Where GitLab should POST events for this project.
  - `webhookSecret` string: Only returned to callers with workspace:manage_settings, so the value can be pasted into GitLab.
  - `branchPattern` string
  - `commentTaskLinkOnGitlabIssue` boolean: When on, Kaneo comments a link back to the task on each issue opened in GitLab. Issues Kaneo creates from tasks are not commented on.
  - `isActive` boolean, nullable, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400`: The resulting config failed validation
- `401`: Missing or invalid credentials
- `403`: No access to the project, or missing workspace:manage_settings
- `404`: Project or integration not found
- `409`: Integration changed; refresh before updating settings
- `429`: The API key exceeded its rate limit or usage quota. Wait the number of seconds in Retry-After before retrying. The X-RateLimit headers are sent only when the rate limit was hit.

## Changes

- **2026-10-08** `c7b8a842601b`: 5 breaking, 9 info
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `403`
  - removed the media type `text/plain` for the response with the status `409`
  - removed the media type `text/plain` for the response with the status `429`
  - …10 more
- **2026-10-08** `2ed51b8af657`: 6 breaking, 2 warning, 5 info
  - removed the media type `application/json` for the response with the status `400`
  - removed the media type `application/json` for the response with the status `401`
  - removed the media type `application/json` for the response with the status `403`
  - removed the media type `application/json` for the response with the status `409`
  - …9 more
- **2026-10-07** `df1439c724ee`: 4 breaking, 8 info
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `403`
  - removed the media type `text/plain` for the response with the status `409`
  - removed the required property `error` from the response with the `404` status
  - …8 more
- **2026-10-03** `9c42cb4e1013`: 1 info
  - added the non-success response with the status `409`
- **2026-09-26** `cfcd17ccaa21`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/gitlab-integration/project/:projectId/patch.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) - [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usekaneo/apis/kaneo-api/revisions/93f78789100c?raw)
