> For the complete documentation index, see [llms.txt](https://docs.stackai.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stackai.com/integrations/catalog/gitlab.md).

# GitLab

GitLab is a source-control and DevOps platform. Read projects and read or create issues from your AI workflows.

### Connectors

Choose the connector that matches your authentication method. The options below use the names shown in StackAI.

| Connector             | Authentication        |
| --------------------- | --------------------- |
| GitLab (Access Token) | Personal Access Token |

#### GitLab (Access Token)

Connect to GitLab to read projects and read or create issues.

**Set up in GitLab**

1. Sign in to GitLab, select your avatar, and open Edit profile.
2. In the left sidebar go to Access → Personal access tokens.
3. Create a token with a name, expiry, and the `api` scope (needed to read projects and create issues), then copy it; it is shown only once.

**Set up in StackAI**

1. Open **Settings → Connections**, add a connection, and select **GitLab (Access Token)**.
2. Enter the credentials and connection details in the fields below.
3. Save the connection and check its connection status. Select this saved connection when configuring an action or feature that uses it.

**Connection fields**

| StackAI field         | Required | What to enter                                                                                                                                            |
| --------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Personal Access Token | Yes      | A GitLab Personal Access Token with the `api` (or `read_api`) scope. [Provider instructions](https://gitlab.com/-/user_settings/personal_access_tokens). |

**Provider documentation:** [Setup reference](https://docs.gitlab.com/user/profile/personal_access_tokens/).

#### Verify the connection

Check that the connection is healthy. Then run a read operation against a resource the connected account can access. A successful connection check confirms authentication; it does not guarantee permission for every action.

If access is denied, check the credential or OAuth permissions, the selected account or environment, and access to the specific resource. Update expired credentials or reconnect after permissions change.

### Use an action

1. Add the required **GitLab** action to the workflow.
2. Select a connection when the action requests one.
3. Complete the required fields. Use the reference picker when a value comes from another workflow step.
4. Run the workflow and inspect the action’s output. Check the result before using it in a later step.

### Actions

#### List Projects

List the GitLab projects the connected token is a member of.

**Inputs**

| Field       | Type    | Required | Description                                                 |
| ----------- | ------- | -------- | ----------------------------------------------------------- |
| Max results | integer | No       | Max projects to return (1-5000). Minimum: 1. Maximum: 5000. |

**Outputs**

| Field    | Type        | Description                                  |
| -------- | ----------- | -------------------------------------------- |
| Projects | dict\_array | Projects the connected token is a member of. |
| Count    | integer     | Number of projects returned.                 |

#### Get Project

Get details for a single GitLab project.

**Inputs**

| Field              | Type   | Required | Description                                              |
| ------------------ | ------ | -------- | -------------------------------------------------------- |
| Project ID or Path | string | Yes      | The numeric project ID or the full path (group/project). |

**Outputs**

| Field      | Type    | Description             |
| ---------- | ------- | ----------------------- |
| Project ID | integer | The numeric project ID. |
| Name       | string  | The project name.       |
| Web URL    | string  | The project's web URL.  |

#### List Issues

List issues in a GitLab project.

**Inputs**

| Field              | Type            | Required | Description                                                  |
| ------------------ | --------------- | -------- | ------------------------------------------------------------ |
| Project ID or Path | string          | Yes      | The numeric project ID or the full path (group/project).     |
| State              | select (string) | No       | Filter issues by state. Available values: Open, Closed, All. |
| Max results        | integer         | No       | Max issues to return (1-5000). Minimum: 1. Maximum: 5000.    |

**Outputs**

| Field  | Type        | Description                |
| ------ | ----------- | -------------------------- |
| Issues | dict\_array | Issues in the project.     |
| Count  | integer     | Number of issues returned. |

#### Create Issue

Create an issue in a GitLab project.

**Inputs**

| Field              | Type     | Required | Description                                              |
| ------------------ | -------- | -------- | -------------------------------------------------------- |
| Project ID or Path | string   | Yes      | The numeric project ID or the full path (group/project). |
| Title              | string   | Yes      | The issue title.                                         |
| Description        | textarea | No       | The issue description (Markdown).                        |
| Labels             | string   | No       | Comma-separated labels.                                  |

**Outputs**

| Field     | Type    | Description                            |
| --------- | ------- | -------------------------------------- |
| Issue IID | integer | The project-scoped issue number (iid). |
| Title     | string  | The created issue's title.             |
| Web URL   | string  | The created issue's web URL.           |

### Important behavior

Actions that create, update, send, or delete data can change the connected service. Review their inputs before running them. A retry can repeat an operation; consider this when configuring retries for actions that change data.

The catalog lists the fields and capabilities available in the supplied provider definition. Availability can also depend on your deployment and organization’s Feature Access settings.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.stackai.com/integrations/catalog/gitlab.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
