> ## Documentation Index
> Fetch the complete documentation index at: https://squad.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab

> What agents can do in GitLab at each access level, and how to connect, limit, and disconnect GitLab.

Connect GitLab so your agents can work in your GitLab account. You choose an access level for each account, and Squad refuses any agent action outside that level.

## Access levels

Each GitLab account has an access level: **Read-only**, **Read + write**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.

| Level                          | The connect window describes this level as     | Actions agents can use |
| ------------------------------ | ---------------------------------------------- | ---------------------- |
| **Read-only**                  | "Read projects, profile, and repo contents."   | 62 of 113              |
| **Read + write** (recommended) | "Full API — issues, MRs, repository contents." | 106 of 113             |
| **Full access**                | "Full API plus admin sudo access."             | 113 of 113             |

**Read + write** is the recommended level. The connect window selects it for you, and you can choose another level.

The GitLab sign-in page asks you to approve full access to your account. This is expected. Squad does not narrow the sign-in. It checks every agent action against the level you chose, and it refuses actions outside that level.

## What agents can do at each level

Each level opens with a short summary in plain tasks, then lists every action it adds, grouped by what the action works on. You do not need to name actions. Ask in plain words, and the agent searches for the matching action.

<Tip>**Find an action.** Open a level and use your browser's find (Ctrl+F, or Cmd+F on a Mac) with a word from the task or part of a slug. Or ask your agent in plain words, for example "What can you do in my GitLab account?" The agent can search the GitLab actions for you.</Tip>

Each action shows its name, a one-line description where the GitLab action catalog has one, and its slug. The slug is the ID that agents use when they call the action.

<AccordionGroup>
  <Accordion title="Read-only">
    Agents can use 62 of the 113 GitLab actions at this level:

    * View members
    * View users
    * View groups
    * View projects
    * View code
    * View commits
    * View notes
    * View branches
    * View files
    * View issues
    * View jobs
    * View labels

    All 62 actions at this level:

    <AccordionGroup>
      <Accordion title="Branches (2)">
        | Action                  | What it does                                               | Slug                             |
        | ----------------------- | ---------------------------------------------------------- | -------------------------------- |
        | Get repository branch   | Retrieve information about a specific branch in a project. | `GITLAB_GET_REPOSITORY_BRANCH`   |
        | Get repository branches | Retrieves a list of repository branches for a project.     | `GITLAB_GET_REPOSITORY_BRANCHES` |
      </Accordion>

      <Accordion title="Code (3)">
        | Action                                   | What it does                               | Slug                                              |
        | ---------------------------------------- | ------------------------------------------ | ------------------------------------------------- |
        | Get projects ID merge requests iid diffs | List all diff versions of a merge request. | `GITLAB_GET_PROJECTS_ID_MERGE_REQUESTS_IID_DIFFS` |
        | List merge request diffs                 |                                            | `GITLAB_LIST_MERGE_REQUEST_DIFFS`                 |
        | List repository tree                     |                                            | `GITLAB_LIST_REPOSITORY_TREE`                     |
      </Accordion>

      <Accordion title="Comments (1)">
        | Action               | What it does | Slug                          |
        | -------------------- | ------------ | ----------------------------- |
        | List commit comments |              | `GITLAB_LIST_COMMIT_COMMENTS` |
      </Accordion>

      <Accordion title="Commits (5)">
        | Action                            | What it does                                                                                      | Slug                                       |
        | --------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------ |
        | Get commit refs                   | Get all references (branches or tags) a commit is pushed to.                                      | `GITLAB_GET_COMMIT_REFS`                   |
        | Get commit sequence               | Get the sequence number of a commit in a project by following parent links from the given commit. | `GITLAB_GET_COMMIT_SEQUENCE`               |
        | Get project merge request commits | Get commits of a merge request.                                                                   | `GITLAB_GET_PROJECT_MERGE_REQUEST_COMMITS` |
        | Get single commit                 | Get a specific commit identified by the commit hash or name of a branch or tag.                   | `GITLAB_GET_SINGLE_COMMIT`                 |
        | List repository commits           | Get a list of repository commits in a project.                                                    | `GITLAB_LIST_REPOSITORY_COMMITS`           |
      </Accordion>

      <Accordion title="Discussions (1)">
        | Action                         | What it does | Slug                                    |
        | ------------------------------ | ------------ | --------------------------------------- |
        | List merge request discussions |              | `GITLAB_LIST_MERGE_REQUEST_DISCUSSIONS` |
      </Accordion>

      <Accordion title="Files (2)">
        | Action       | What it does | Slug                  |
        | ------------ | ------------ | --------------------- |
        | Get file     |              | `GITLAB_GET_FILE`     |
        | Get raw file |              | `GITLAB_GET_RAW_FILE` |
      </Accordion>

      <Accordion title="Groups (5)">
        | Action                        | What it does                                           | Slug                                   |
        | ----------------------------- | ------------------------------------------------------ | -------------------------------------- |
        | Get group                     | Retrieve information about a specific group by its ID. | `GITLAB_GET_GROUP`                     |
        | Get groups                    |                                                        | `GITLAB_GET_GROUPS`                    |
        | List project groups           | List ancestor groups of a project.                     | `GITLAB_LIST_PROJECT_GROUPS`           |
        | List project invited groups   | List groups invited to a project.                      | `GITLAB_LIST_PROJECT_INVITED_GROUPS`   |
        | List project shareable groups | List groups that can be shared with a project.         | `GITLAB_LIST_PROJECT_SHAREABLE_GROUPS` |
      </Accordion>

      <Accordion title="Issues (2)">
        | Action              | What it does                                                                                      | Slug                         |
        | ------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------- |
        | Get issue           |                                                                                                   | `GITLAB_GET_ISSUE`           |
        | List project issues | List issues for a project with filtering options (state, labels, search, assignee, author, etc.). | `GITLAB_LIST_PROJECT_ISSUES` |
      </Accordion>

      <Accordion title="Jobs (3)">
        | Action             | What it does                                                           | Slug                        |
        | ------------------ | ---------------------------------------------------------------------- | --------------------------- |
        | Get job details    | Retrieve details of a single job by its ID within a specified project. | `GITLAB_GET_JOB_DETAILS`    |
        | Get job trace      |                                                                        | `GITLAB_GET_JOB_TRACE`      |
        | List pipeline jobs | Retrieve a list of jobs for a specified pipeline within a project.     | `GITLAB_LIST_PIPELINE_JOBS` |
      </Accordion>

      <Accordion title="Labels (2)">
        | Action      | What it does | Slug                 |
        | ----------- | ------------ | -------------------- |
        | Get label   |              | `GITLAB_GET_LABEL`   |
        | List labels |              | `GITLAB_LIST_LABELS` |
      </Accordion>

      <Accordion title="Languages (1)">
        | Action                | What it does                                                   | Slug                           |
        | --------------------- | -------------------------------------------------------------- | ------------------------------ |
        | Get project languages | List programming languages used in a project with percentages. | `GITLAB_GET_PROJECT_LANGUAGES` |
      </Accordion>

      <Accordion title="Locations (1)">
        | Action                          | What it does                                    | Slug                                     |
        | ------------------------------- | ----------------------------------------------- | ---------------------------------------- |
        | List project transfer locations | List namespaces available for project transfer. | `GITLAB_LIST_PROJECT_TRANSFER_LOCATIONS` |
      </Accordion>

      <Accordion title="Members (8)">
        | Action                      | What it does                                                                              | Slug                                 |
        | --------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------ |
        | Get group member            | Retrieve details for a specific group member.                                             | `GITLAB_GET_GROUP_MEMBER`            |
        | Get project member          | Retrieve details for a specific project member.                                           | `GITLAB_GET_PROJECT_MEMBER`          |
        | Get project member all      | Retrieve details for a specific project member (including inherited and invited members). | `GITLAB_GET_PROJECT_MEMBER_ALL`      |
        | List all group members      | List all members of a group including direct, inherited, and invited members.             | `GITLAB_LIST_ALL_GROUP_MEMBERS`      |
        | List all project members    | List all members of a project (direct, inherited, invited).                               | `GITLAB_LIST_ALL_PROJECT_MEMBERS`    |
        | List billable group members | List billable members of a top-level group (including its subgroups and projects).        | `GITLAB_LIST_BILLABLE_GROUP_MEMBERS` |
        | List group members          | List direct members of a group.                                                           | `GITLAB_LIST_GROUP_MEMBERS`          |
        | List pending group members  | List pending members of a group and its subgroups and projects.                           | `GITLAB_LIST_PENDING_GROUP_MEMBERS`  |
      </Accordion>

      <Accordion title="Merge requests (4)">
        | Action                           | What it does                                                            | Slug                                      |
        | -------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------- |
        | Get merge request approval state |                                                                         | `GITLAB_GET_MERGE_REQUEST_APPROVAL_STATE` |
        | Get merge request approvals      |                                                                         | `GITLAB_GET_MERGE_REQUEST_APPROVALS`      |
        | Get project merge request        | Fetch full details for a single merge request when the MR IID is known. | `GITLAB_GET_PROJECT_MERGE_REQUEST`        |
        | Get project merge requests       | Retrieve a list of merge requests for a specific project.               | `GITLAB_GET_PROJECT_MERGE_REQUESTS`       |
      </Accordion>

      <Accordion title="Milestones (2)">
        | Action          | What it does | Slug                     |
        | --------------- | ------------ | ------------------------ |
        | Get milestone   |              | `GITLAB_GET_MILESTONE`   |
        | List milestones |              | `GITLAB_LIST_MILESTONES` |
      </Accordion>

      <Accordion title="Notes (3)">
        | Action                  | What it does                       | Slug                             |
        | ----------------------- | ---------------------------------- | -------------------------------- |
        | Get issue note          |                                    | `GITLAB_GET_ISSUE_NOTE`          |
        | Get merge request notes | Fetch comments on a merge request. | `GITLAB_GET_MERGE_REQUEST_NOTES` |
        | List issue notes        |                                    | `GITLAB_LIST_ISSUE_NOTES`        |
      </Accordion>

      <Accordion title="Pipelines (2)">
        | Action                 | What it does                                                                | Slug                            |
        | ---------------------- | --------------------------------------------------------------------------- | ------------------------------- |
        | Get single pipeline    | Retrieve details of a single pipeline by its ID within a specified project. | `GITLAB_GET_SINGLE_PIPELINE`    |
        | List project pipelines | Retrieve a list of pipelines for a specified project.                       | `GITLAB_LIST_PROJECT_PIPELINES` |
      </Accordion>

      <Accordion title="Profiles (1)">
        | Action                  | What it does                       | Slug                             |
        | ----------------------- | ---------------------------------- | -------------------------------- |
        | Download project avatar | Download a project's avatar image. | `GITLAB_DOWNLOAD_PROJECT_AVATAR` |
      </Accordion>

      <Accordion title="Projects (4)">
        | Action              | What it does                                                  | Slug                         |
        | ------------------- | ------------------------------------------------------------- | ---------------------------- |
        | Get project         | Get a single project by ID or URL-encoded path.               | `GITLAB_GET_PROJECT`         |
        | Get projects        | List all projects accessible to the authenticated user.       | `GITLAB_GET_PROJECTS`        |
        | List group projects | List projects within a GitLab group by group ID or full path. | `GITLAB_LIST_GROUP_PROJECTS` |
        | List user projects  | List projects owned by a specific user.                       | `GITLAB_LIST_USER_PROJECTS`  |
      </Accordion>

      <Accordion title="Reports (1)">
        | Action         | What it does | Slug                    |
        | -------------- | ------------ | ----------------------- |
        | Get time stats |              | `GITLAB_GET_TIME_STATS` |
      </Accordion>

      <Accordion title="Settings (1)">
        | Action               | What it does                        | Slug                          |
        | -------------------- | ----------------------------------- | ----------------------------- |
        | Get user preferences | Get the current user's preferences. | `GITLAB_GET_USER_PREFERENCES` |
      </Accordion>

      <Accordion title="Tags (1)">
        | Action            | What it does                                                | Slug                       |
        | ----------------- | ----------------------------------------------------------- | -------------------------- |
        | List project tags | Retrieve a list of repository tags for a specified project. | `GITLAB_LIST_PROJECT_TAGS` |
      </Accordion>

      <Accordion title="Users (7)">
        | Action               | What it does                                            | Slug                          |
        | -------------------- | ------------------------------------------------------- | ----------------------------- |
        | Get current user     |                                                         | `GITLAB_GET_CURRENT_USER`     |
        | Get user             | Retrieve information about a specific user by their ID. | `GITLAB_GET_USER`             |
        | Get user status      | Get the current user's status.                          | `GITLAB_GET_USER_STATUS`      |
        | Get user support pin | Get details of the current user's Support PIN.          | `GITLAB_GET_USER_SUPPORT_PIN` |
        | Get users            | Retrieve a list of users from GitLab.                   | `GITLAB_GET_USERS`            |
        | Get users ID status  | Get a user's status by ID.                              | `GITLAB_GET_USERS_ID_STATUS`  |
        | List project users   | List users of a project.                                | `GITLAB_LIST_PROJECT_USERS`   |
      </Accordion>
    </AccordionGroup>
  </Accordion>

  <Accordion title="Read + write (recommended)">
    Agents can use 106 of the 113 GitLab actions at this level: everything in **Read-only**, plus:

    * Create, update, and delete merge requests
    * Create, update, archive, and share projects
    * Create, update, and delete notes
    * Create, update, and delete files
    * Create and update issues
    * Create, update, and delete labels
    * Create, update, and delete milestones
    * Create and delete branches
    * Update estimates
    * Create comments
    * Create commits
    * Create groups

    The 44 actions that this level adds to **Read-only**:

    <AccordionGroup>
      <Accordion title="Branches (2)">
        | Action                   | What it does                      | Slug                              |
        | ------------------------ | --------------------------------- | --------------------------------- |
        | Create repository branch | Create a new branch in a project. | `GITLAB_CREATE_REPOSITORY_BRANCH` |
        | Delete repository branch |                                   | `GITLAB_DELETE_REPOSITORY_BRANCH` |
      </Accordion>

      <Accordion title="Comments (1)">
        | Action                | What it does | Slug                           |
        | --------------------- | ------------ | ------------------------------ |
        | Create commit comment |              | `GITLAB_CREATE_COMMIT_COMMENT` |
      </Accordion>

      <Accordion title="Commits (1)">
        | Action        | What it does | Slug                   |
        | ------------- | ------------ | ---------------------- |
        | Create commit |              | `GITLAB_CREATE_COMMIT` |
      </Accordion>

      <Accordion title="Estimates (2)">
        | Action              | What it does | Slug                         |
        | ------------------- | ------------ | ---------------------------- |
        | Reset time estimate |              | `GITLAB_RESET_TIME_ESTIMATE` |
        | Set time estimate   |              | `GITLAB_SET_TIME_ESTIMATE`   |
      </Accordion>

      <Accordion title="Files (3)">
        | Action                 | What it does | Slug                            |
        | ---------------------- | ------------ | ------------------------------- |
        | Create file            |              | `GITLAB_CREATE_FILE`            |
        | Delete repository file |              | `GITLAB_DELETE_REPOSITORY_FILE` |
        | Update repository file |              | `GITLAB_UPDATE_REPOSITORY_FILE` |
      </Accordion>

      <Accordion title="Groups (1)">
        | Action       | What it does                  | Slug                  |
        | ------------ | ----------------------------- | --------------------- |
        | Create group | Create a new group in GitLab. | `GITLAB_CREATE_GROUP` |
      </Accordion>

      <Accordion title="Issues (3)">
        | Action               | What it does                                                                                       | Slug                          |
        | -------------------- | -------------------------------------------------------------------------------------------------- | ----------------------------- |
        | Create project issue | Create a new issue in a GitLab project.                                                            | `GITLAB_CREATE_PROJECT_ISSUE` |
        | Move issue           |                                                                                                    | `GITLAB_MOVE_ISSUE`           |
        | Update project issue | Update an existing issue in a GitLab project (title, description, labels, assignees, state, etc.). | `GITLAB_UPDATE_PROJECT_ISSUE` |
      </Accordion>

      <Accordion title="Labels (3)">
        | Action       | What it does | Slug                  |
        | ------------ | ------------ | --------------------- |
        | Create label |              | `GITLAB_CREATE_LABEL` |
        | Delete label |              | `GITLAB_DELETE_LABEL` |
        | Update label |              | `GITLAB_UPDATE_LABEL` |
      </Accordion>

      <Accordion title="Members (1)">
        | Action                 | What it does                                | Slug                            |
        | ---------------------- | ------------------------------------------- | ------------------------------- |
        | Import project members | Import members from one project to another. | `GITLAB_IMPORT_PROJECT_MEMBERS` |
      </Accordion>

      <Accordion title="Merge requests (7)">
        | Action                  | What it does | Slug                             |
        | ----------------------- | ------------ | -------------------------------- |
        | Approve merge request   |              | `GITLAB_APPROVE_MERGE_REQUEST`   |
        | Create merge request    |              | `GITLAB_CREATE_MERGE_REQUEST`    |
        | Delete merge request    |              | `GITLAB_DELETE_MERGE_REQUEST`    |
        | List merge requests     |              | `GITLAB_LIST_MERGE_REQUESTS`     |
        | Merge merge request     |              | `GITLAB_MERGE_MERGE_REQUEST`     |
        | Unapprove merge request |              | `GITLAB_UNAPPROVE_MERGE_REQUEST` |
        | Update merge request    |              | `GITLAB_UPDATE_MERGE_REQUEST`    |
      </Accordion>

      <Accordion title="Milestones (3)">
        | Action           | What it does | Slug                      |
        | ---------------- | ------------ | ------------------------- |
        | Create milestone |              | `GITLAB_CREATE_MILESTONE` |
        | Delete milestone |              | `GITLAB_DELETE_MILESTONE` |
        | Update milestone |              | `GITLAB_UPDATE_MILESTONE` |
      </Accordion>

      <Accordion title="Notes (4)">
        | Action                          | What it does | Slug                                     |
        | ------------------------------- | ------------ | ---------------------------------------- |
        | Create issue note               |              | `GITLAB_CREATE_ISSUE_NOTE`               |
        | Create merge request draft note |              | `GITLAB_CREATE_MERGE_REQUEST_DRAFT_NOTE` |
        | Delete issue note               |              | `GITLAB_DELETE_ISSUE_NOTE`               |
        | Update issue note               |              | `GITLAB_UPDATE_ISSUE_NOTE`               |
      </Accordion>

      <Accordion title="Projects (7)">
        | Action                     | What it does                               | Slug                                |
        | -------------------------- | ------------------------------------------ | ----------------------------------- |
        | Archive project            | Archive a project.                         | `GITLAB_ARCHIVE_PROJECT`            |
        | Create project             | Create a new project in GitLab.            | `GITLAB_CREATE_PROJECT`             |
        | Fork project               |                                            | `GITLAB_FORK_PROJECT`               |
        | Share project with group   | Share a project with a group.              | `GITLAB_SHARE_PROJECT_WITH_GROUP`   |
        | Star project               |                                            | `GITLAB_STAR_PROJECT`               |
        | Start project housekeeping | Start the housekeeping task for a project. | `GITLAB_START_PROJECT_HOUSEKEEPING` |
        | Unstar project             |                                            | `GITLAB_UNSTAR_PROJECT`             |
      </Accordion>

      <Accordion title="Settings (1)">
        | Action               | What it does                           | Slug                          |
        | -------------------- | -------------------------------------- | ----------------------------- |
        | Put user preferences | Update the current user's preferences. | `GITLAB_PUT_USER_PREFERENCES` |
      </Accordion>

      <Accordion title="Users (2)">
        | Action                | What it does                                      | Slug                           |
        | --------------------- | ------------------------------------------------- | ------------------------------ |
        | Post user support pin | Create a support PIN for your authenticated user. | `GITLAB_POST_USER_SUPPORT_PIN` |
        | Set user status       | Set the current user's status.                    | `GITLAB_SET_USER_STATUS`       |
      </Accordion>

      <Accordion title="Other actions (3)">
        | Action              | What it does | Slug                         |
        | ------------------- | ------------ | ---------------------------- |
        | Add spent time      |              | `GITLAB_ADD_SPENT_TIME`      |
        | Reset spent time    |              | `GITLAB_RESET_SPENT_TIME`    |
        | Validate credential |              | `GITLAB_VALIDATE_CREDENTIAL` |
      </Accordion>
    </AccordionGroup>
  </Accordion>

  <Accordion title="Full access">
    Agents can use 113 of the 113 GitLab actions at this level: everything in **Read + write**, plus:

    * Delete and cancel jobs
    * Update branches
    * Delete groups
    * Delete pipelines
    * Delete projects
    * Delete webhooks

    The 7 actions that this level adds to **Read + write**:

    | Works on      | Action           | What it does                                           | Slug                      |
    | ------------- | ---------------- | ------------------------------------------------------ | ------------------------- |
    | **Branches**  | Unprotect branch |                                                        | `GITLAB_UNPROTECT_BRANCH` |
    | **Groups**    | Delete group     |                                                        | `GITLAB_DELETE_GROUP`     |
    | **Jobs**      | Cancel job       |                                                        | `GITLAB_CANCEL_JOB`       |
    |               | Erase job        | Erase the content of a specified job within a project. | `GITLAB_ERASE_JOB`        |
    | **Pipelines** | Delete pipeline  |                                                        | `GITLAB_DELETE_PIPELINE`  |
    | **Projects**  | Delete project   | Delete a GitLab project by its ID.                     | `GITLAB_DELETE_PROJECT`   |
    | **Webhooks**  | Delete webhook   |                                                        | `GITLAB_DELETE_WEBHOOK`   |
  </Accordion>
</AccordionGroup>

## Connect GitLab

Before you start:

* You need a GitLab account that you can sign in to.
* Your Squad subscription must be active. Squad does not connect apps while the subscription is not active.

<Steps>
  <Step title="Open Integrations">
    Open **Settings** > **Integrations**.
  </Step>

  <Step title="Add an integration">
    On the **Connected apps** tab, click **+ Add integration**.
  </Step>

  <Step title="Find GitLab">
    Find **GitLab** in the catalog and click it. You can type the name in **Search the catalog…**.
  </Step>

  <Step title="Choose an access level">
    Under **Default scope**, choose an access level. This level applies to every agent.
  </Step>

  <Step title="Click Connect GitLab">
    Click **Connect GitLab**. The GitLab sign-in page opens in a new tab.
  </Step>

  <Step title="Sign in to GitLab">
    Sign in to GitLab and approve the request.
  </Step>
</Steps>

Check that it works: GitLab shows under **YOUR CONNECTIONS**, with a row for the account and its access level.

## Change the access level

1. Under **YOUR CONNECTIONS**, find the GitLab account.
2. Open the account menu (⋯) and click **Manage scope**.
3. Under **Default scope**, choose the new level.
4. Click **Save access**.

The change does not need a new sign-in. Agents get the new level from their next call.

## Set access for one agent

Every agent uses the account's level unless you set something else for it. You can narrow one agent to a lower level, or block it.

1. Under **YOUR CONNECTIONS**, open the account menu (⋯) on the GitLab account.
2. Click **Manage scope**.
3. Under **Per-agent access**, find the agent.
4. Choose the **Default** option to follow the account's level, choose a lower level, or choose **No access**.
5. Click **Save access**.

An agent never gets more than the account's level, even if you choose a higher level for it. Changes apply from the agent's next call. An agent with **No access** does not see the account.

## Use more than one GitLab account

Click **+ Account** on the GitLab card to connect another account. Agents use the primary account unless they are asked to use a specific one.

* After you click **+ Account**, follow the connect steps above.
* Each account has its own access level.
* The first account you connect becomes the primary account. It shows **★ PRIMARY**.
* To change the primary account, open the account menu (⋯) and click **Make primary**.
* To tell accounts apart, open the account menu (⋯) and click **Rename**.

## Reconnect or disconnect

Reconnect when the connection has expired, or when you need to change what the account can reach on the GitLab side:

1. Open the account menu (⋯) and click **Reconnect**.
2. Click **Reauthorize on GitLab**.
3. Sign in to GitLab and approve the request.

Reconnect signs in to the same account again. It does not add a second connection.

Open the account menu (⋯) on the GitLab account and click **Disconnect**. Agents lose access to that account at once.

<Warning>**Disconnect** acts at once, with no confirmation step. If it was the primary account, another connected GitLab account becomes primary.</Warning>

## Costs

GitLab actions do not use Squad credits. Connected apps never use credits. For what does use credits, see [What Squad costs](/docs/costs).

## Troubleshooting

An agent reports that an action is not allowed on this account.

* Cause: the action is outside the account's access level, or outside the level you set for that agent.
* Fix: choose a higher level in **Manage scope**, or change the agent's row under **Per-agent access**.

An agent says it has no access to GitLab, or it does not see the account.

* Cause: the agent is set to **No access** under **Per-agent access**, or the account is not connected.
* Fix: open **Manage scope** and change the agent's row. If the account is missing, connect it again.

Connecting or saving fails with "Your subscription isn't active."

* Cause: your Squad subscription is not active.
* Fix: resubscribe. See [Manage your subscription](/docs/billing).

An agent says the GitLab connection has expired.

* Cause: the sign-in for that account is no longer valid.
* Fix: use **Reconnect** on the account.

## Common questions

<AccordionGroup>
  <Accordion title="Can I limit what agents can do in GitLab?">
    Each GitLab account has an access level: **Read-only**, **Read + write**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.
  </Accordion>

  <Accordion title="Can I connect more than one GitLab account?">
    Click **+ Account** on the GitLab card to connect another account. Agents use the primary account unless they are asked to use a specific one.
  </Accordion>

  <Accordion title="How do I disconnect GitLab?">
    Open the account menu (⋯) on the GitLab account and click **Disconnect**. Agents lose access to that account at once.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Connect apps" icon="plug" href="/docs/integrations" />

  <Card title="Add an MCP server or an API key" icon="server" href="/docs/custom-integrations">
    Use this when an action you need is not in this app.
  </Card>
</CardGroup>
