---
name: gitlab-runners
description: "Manages GitLab runners. Use for registering, updating, deleting runners at various levels. Triggers: CI infrastructure."
tags: [runners]
---

### Overview
Covers runner setup.

### Available Tools
- `get_runners`: Retrieve a list of runners in GitLab, optionally filtered by scope, type, status, or tags or Retrieve details of a specific GitLab runner..
  - **Parameters**:
    - `runner_id` (Optional[int]): Optional. - ID of the runner to retrieve
    - `scope` (Optional[str]): Optional. - Filter runners by scope (e.g., 'active')
    - `type` (Optional[str]): Optional. - Filter runners by type (e.g., 'instance_type')
    - `status` (Optional[str]): Optional. - Filter runners by status (e.g., 'online')
    - `tag_list` (Optional[List[str]]): Optional. - Filter runners by tags
- `update_runner_details`: Update details for a specific GitLab runner.
  - **Parameters**:
    - `runner_id` (int): Optional. - ID of the runner to update
    - `description` (Optional[str]): Optional. - New description of the runner
    - `active` (Optional[bool]): Optional. - Whether the runner is active
    - `tag_list` (Optional[List[str]]): Optional. - List of tags for the runner
    - `run_untagged` (Optional[bool]): Optional. - Whether the runner can run untagged jobs
    - `locked` (Optional[bool]): Optional. - Whether the runner is locked
    - `access_level` (Optional[str]): Optional. - Access level of the runner (e.g., 'ref_protected')
    - `maximum_timeout` (Optional[int]): Optional. - Maximum timeout for the runner in seconds
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `pause_runner`: Pause or unpause a specific GitLab runner.
  - **Parameters**:
    - `runner_id` (int): Optional. - ID of the runner to pause or unpause
    - `active` (bool): Optional. - Whether the runner should be active (True) or paused (False)
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `get_runner_jobs`: Retrieve jobs for a specific GitLab runner, optionally filtered by status or sorted.
  - **Parameters**:
    - `runner_id` (int): Optional. - ID of the runner to retrieve jobs for
    - `status` (Optional[str]): Optional. - Filter jobs by status (e.g., 'success', 'failed')
    - `sort` (Optional[str]): Optional. - Sort jobs by criteria (e.g., 'created_at')
- `get_project_runners`: Retrieve a list of runners in a specific GitLab project, optionally filtered by scope.
  - **Parameters**:
    - `project_id` (str): Optional. - Project ID or path
    - `scope` (Optional[str]): Optional. - Filter runners by scope (e.g., 'active')
- `enable_project_runner`: Enable a runner in a specific GitLab project.
  - **Parameters**:
    - `project_id` (str): Optional. - Project ID or path
    - `runner_id` (int): Optional. - ID of the runner to enable
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `delete_project_runner`: Delete a runner from a specific GitLab project.
  - **Parameters**:
    - `project_id` (str): Optional. - Project ID or path
    - `runner_id` (int): Optional. - ID of the runner to delete
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `get_group_runners`: Retrieve a list of runners in a specific GitLab group, optionally filtered by scope.
  - **Parameters**:
    - `group_id` (str): Optional. - Group ID or path
    - `scope` (Optional[str]): Optional. - Filter runners by scope (e.g., 'active')
- `register_new_runner`: Register a new GitLab runner.
  - **Parameters**:
    - `token` (str): Optional. - Registration token for the runner
    - `description` (Optional[str]): Optional. - Description of the runner
    - `tag_list` (Optional[List[str]]): Optional. - List of tags for the runner
    - `run_untagged` (Optional[bool]): Optional. - Whether the runner can run untagged jobs
    - `locked` (Optional[bool]): Optional. - Whether the runner is locked
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `delete_runner`: Delete a GitLab runner by ID or token.
  - **Parameters**:
    - `runner_id` (Optional[int]): Optional. - ID of the runner to delete
    - `token` (Optional[str]): Optional. - Token of the runner to delete
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `verify_runner_authentication`: Verify authentication for a GitLab runner using its token.
  - **Parameters**:
    - `token` (str): Optional. - Runner token to verify
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `reset_gitlab_runner_token`: Reset the GitLab runner registration token.
  - **Parameters**:
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `reset_project_runner_token`: Reset the registration token for a project's runner in GitLab.
  - **Parameters**:
    - `project_id` (str): Optional. - Project ID or path
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `reset_group_runner_token`: Reset the registration token for a group's runner in GitLab.
  - **Parameters**:
    - `group_id` (str): Optional. - Group ID or path
    - `ctx` (Optional[Context]): Optional. - MCP context for progress
- `reset_token`: Reset the authentication token for a specific GitLab runner.
  - **Parameters**:
    - `runner_id` (int): Optional. - ID of the runner to reset the token for
    - `token` (str): Optional. - Current token of the runner
    - `ctx` (Optional[Context]): Optional. - MCP context for progress

### Usage Instructions
1. Use tokens for registration.

### Examples
- Register: `register_new_runner` with token="abc123".
- Enable: `enable_project_runner` with runner_id=1.

### Error Handling
- Token invalid: Reset.
