# API reference (`gitlab` package)

## Module contents

Wrapper for the GitLab API.

class gitlab.AsyncGraphQL(url: str | None = None, *, token: str | None = None, ssl_verify: bool | str = True, client: AsyncClient | None = None, timeout: float | None = None, user_agent: str = 'python-gitlab/8.0.0', fetch_schema_from_transport: bool = False, max_retries: int = 10, obey_rate_limit: bool = True, retry_transient_errors: bool = False)

  Bases: `_BaseGraphQL`

  Parameters:

    - url (str | None)

    - token (str | None)

    - ssl_verify (bool | str)

    - client (httpx.AsyncClient | None)

    - timeout (float | None)

    - user_agent (str)

    - fetch_schema_from_transport (bool)

    - max_retries (int)

    - obey_rate_limit (bool)

    - retry_transient_errors (bool)

  async execute(request: str, *args: Any, **kwargs: Any) → Any
    Parameters:

      - request (str)

      - args (Any)

      - kwargs (Any)

    Return type:

      Any

class gitlab.Gitlab(url: str | None = None, private_token: str | None = None, oauth_token: str | None = None, job_token: str | None = None, ssl_verify: bool | str = True, http_username: str | None = None, http_password: str | None = None, timeout: float | None = None, api_version: str = '4', per_page: int | None = None, pagination: str | None = None, order_by: str | None = None, user_agent: str = 'python-gitlab/8.0.0', retry_transient_errors: bool = False, keep_base_url: bool = False, **kwargs: Any)

  Bases: `object`

  Represents a GitLab server connection.

  Parameters:

    - url (str | None) – The URL of the GitLab server (defaults to https://gitlab.com).

    - private_token (str | None) – The user private token

    - oauth_token (str | None) – An oauth token

    - job_token (str | None) – A CI job token

    - ssl_verify (bool | str) – Whether SSL certificates should be validated. If the value is a string, it is the path to a CA file used for certificate validation.

    - timeout (float | None) – Timeout to use for requests to the GitLab server.

    - http_username (str | None) – Username for HTTP authentication

    - http_password (str | None) – Password for HTTP authentication

    - api_version (str) – Gitlab API version to use (support for 4 only)

    - pagination (str | None) – Can be set to ‘keyset’ to use keyset pagination

    - order_by (str | None) – Set order_by globally

    - user_agent (str) – A custom user agent to use for making HTTP requests.

    - retry_transient_errors (bool) – Whether to retry after 500, 502, 503, 504 or 52x responses. Defaults to False.

    - keep_base_url (bool) – keep user-provided base URL for pagination if it differs from response headers

    - session (requests.Session) – HTTP Requests Session

    - backend (RequestsBackend) – Backend that will be used to make http requests

    - per_page (int | None)

    - kwargs (Any)

  property api_url: str

    The computed API base URL.

  property api_version: str

    The API version used (4 only).

  appearance

    See `ApplicationAppearanceManager`

  applications

    See `ApplicationManager`

  audit_events

    See `AuditEventManager`

  auth() → None

    Performs an authentication using private token. Warns the user if a potentially misconfigured URL is detected on the client or server side.

    The user attribute will hold a gitlab.objects.CurrentUser object on success.

    Return type:

      None

  broadcastmessages

    See `BroadcastMessageManager`

  bulk_import_entities

    See `BulkImportAllEntityManager`

  bulk_imports

    See `BulkImportManager`

  ci_lint

    See `CiLintManager`

  deploykeys

    See `DeployKeyManager`

  deploytokens

    See `DeployTokenManager`

  dockerfiles

    See `DockerfileManager`

  enable_debug(mask_credentials: bool = True) → None
    Parameters:

      mask_credentials (bool)

    Return type:

      None

  events

    See `EventManager`

  features

    See `FeatureManager`

  classmethod from_config(gitlab_id: str | None = None, config_files: list[str] | None = None, **kwargs: Any) → Gitlab

    Create a Gitlab connection from configuration files.

    Parameters:

      - gitlab_id (str | None) – ID of the configuration section.

      - list[str] (config_files) – List of paths to configuration files.

      - config_files (list[str] | None)

      - kwargs (Any)

    Return type:

      Gitlab

    kwargs:

      session requests.Session: Custom requests Session

    Returns:

      A Gitlab connection.

    Raises:

      gitlab.config.GitlabDataError – If the configuration is not correct.

    Parameters:

      - gitlab_id (str | None)

      - config_files (list[str] | None)

      - kwargs (Any)

    Return type:

      Gitlab

  geonodes

    See `GeoNodeManager`

  get_license(**kwargs: Any) → dict[str, str | dict[str, str]]

    Retrieve information about the current license.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabGetError – If the server cannot perform the request

    Returns:

      The current license information

    Return type:

      dict[str, str | dict[str, str]]

  gitignores

    See `GitignoreManager`

  gitlabciymls

    See `GitlabciymlManager`

  groups

    See `GroupManager`

  headers

    Headers that will be used in request to GitLab

  hooks

    See `HookManager`

  http_delete(path: str, **kwargs: Any) → Response

    Make a DELETE request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The requests object.

    Raises:

      GitlabHttpError – When the return code is not 2xx

    Return type:

      Response

  http_get(path: str, query_data: dict[str, Any] | None = None, streamed: bool = False, raw: bool = False, **kwargs: Any) → dict[str, Any] | Response

    Make a GET request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - streamed (bool) – Whether the data should be streamed

      - raw (bool) – If True do not try to parse the output as json

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      A requests result object is streamed is True or the content type is not json. The parsed json data otherwise.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_head(path: str, query_data: dict[str, Any] | None = None, **kwargs: Any) → CaseInsensitiveDict[Any]

    Make a HEAD request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo, page, per_page)

    Returns:

      A requests.header object

    Raises:

      GitlabHttpError – When the return code is not 2xx

    Return type:

      CaseInsensitiveDict[Any]

  http_list(path: str, query_data: dict[str, Any] | None = None, *, iterator: bool | None = None, message_details: WarnMessageData | None = None, **kwargs: Any) → GitlabList | list[dict[str, Any]]

    Make a GET request to the Gitlab server for list-oriented queries.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projects’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - iterator (bool | None) – Indicate if should return a generator (True)

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo, page, per_page)

      - message_details (WarnMessageData | None)

      - **kwargs

    Returns:

      A list of the objects returned by the server. If iterator is True and no pagination-related arguments (page, per_page, get_all) are defined then a GitlabList object (generator) is returned instead. This object will make API calls when needed to fetch the next items from the server.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      GitlabList | list[dict[str, Any]]

  http_patch(path: str, *, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | bytes | None = None, raw: bool = False, **kwargs: Any) → dict[str, Any] | Response

    Make a PATCH request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | bytes | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The parsed json returned by the server.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_post(path: str, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | None = None, raw: bool = False, files: dict[str, Any] | None = None, **kwargs: Any) → dict[str, Any] | Response

    Make a POST request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - files (dict[str, Any] | None) – The files to send to the server

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The parsed json returned by the server if json is return, else the raw content

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_put(path: str, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | bytes | BinaryIO | None = None, raw: bool = False, files: dict[str, Any] | None = None, **kwargs: Any) → dict[str, Any] | Response

    Make a PUT request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | bytes | BinaryIO | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - files (dict[str, Any] | None) – The files to send to the server

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The parsed json returned by the server.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_request(verb: str, path: str, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | bytes | BinaryIO | None = None, raw: bool = False, streamed: bool = False, files: dict[str, Any] | None = None, timeout: float | None = None, obey_rate_limit: bool = True, retry_transient_errors: bool | None = None, max_retries: int = 10, extra_headers: dict[str, Any] | None = None, **kwargs: Any) → Response

    Make an HTTP request to the Gitlab server.

    Parameters:

      - verb (str) – The HTTP method to call (‘get’, ‘post’, ‘put’, ‘delete’)

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | bytes | BinaryIO | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - streamed (bool) – Whether the data should be streamed

      - files (dict[str, Any] | None) – The files to send to the server

      - timeout (float | None) – The timeout, in seconds, for the request

      - obey_rate_limit (bool) – Whether to obey 429 Too Many Request responses. Defaults to True.

      - retry_transient_errors (bool | None) – Whether to retry after 500, 502, 503, 504 or 52x responses. Defaults to False.

      - max_retries (int) – Max retries after 429 or transient errors, set to -1 to retry forever. Defaults to 10.

      - extra_headers (dict[str, Any] | None) – Add and override HTTP headers for the request.

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      A requests result object.

    Raises:

      GitlabHttpError – When the return code is not 2xx

    Return type:

      Response

  issues

    See `IssueManager`

  issues_statistics

    See `IssuesStatisticsManager`

  keys

    See `KeyManager`

  ldapgroups

    See `LDAPGroupManager`

  licenses

    See `LicenseManager`

  markdown(text: str, gfm: bool = False, project: str | None = None, **kwargs: Any) → str

    Render an arbitrary Markdown document.

    Parameters:

      - text (str) – The markdown text to render

      - gfm (bool) – Render text using GitLab Flavored Markdown. Default is False

      - project (str | None) – Full path of a project used a context when gfm is True

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabMarkdownError – If the server cannot perform the request

    Returns:

      The HTML rendering of the markdown text.

    Return type:

      str

  member_roles

    See `MergeRequestManager`

  classmethod merge_config(options: dict[str, Any], gitlab_id: str | None = None, config_files: list[str] | None = None) → Gitlab

    Create a Gitlab connection by merging configuration with the following precedence:

    1. Explicitly provided CLI arguments,

    2. Environment variables,

    3. Configuration files:
         1. explicitly defined config files:

              1. via the –config-file CLI argument,

              2. via the PYTHON_GITLAB_CFG environment variable,

         2. user-specific config file,

         3. system-level config file,

    4. Environment variables always present in CI (CI_SERVER_URL, CI_JOB_TOKEN).

    Parameters:

      - options (dict[str, Any]) – A dictionary of explicitly provided key-value options.

      - gitlab_id (str | None) – ID of the configuration section.

      - config_files (list[str] | None) – List of paths to configuration files.

    Returns:

      A Gitlab connection.

    Return type:

      (gitlab.Gitlab)

    Raises:

      gitlab.config.GitlabDataError – If the configuration is not correct.

  mergerequests

    See `MergeRequestManager`

  namespaces

    See `NamespaceManager`

  notificationsettings

    See `NotificationSettingsManager`

  pagesdomains

    See `PagesDomainManager`

  personal_access_tokens

    See `PersonalAccessTokenManager`

  projects

    See `ProjectManager`

  registry_repositories

    See `RegistryRepositoryManager`

  runners

    See `RunnerManager`

  runners_all

    See `RunnerManager`

  search(scope: str, search: str, **kwargs: Any) → GitlabList | list[dict[str, Any]]

    Search GitLab resources matching the provided string.’

    Parameters:

      - scope (str) – Scope of the search

      - search (str) – Search string

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabSearchError – If the server failed to perform the request

    Returns:

      A list of dicts describing the resources found.

    Return type:

      GitlabList | list[dict[str, Any]]

  set_license(license: str, **kwargs: Any) → dict[str, Any]

    Add a new license.

    Parameters:

      - license (str) – The license string

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabPostError – If the server cannot perform the request

    Returns:

      The new license information

    Return type:

      dict[str, Any]

  settings

    See `ApplicationSettingsManager`

  sidekiq

    See `SidekiqManager`

  snippets

    See `SnippetManager`

  ssl_verify

    Whether SSL certificates should be validated

  statistics

    See `ApplicationStatisticsManager`

  timeout

    Timeout to use for requests to gitlab server

  todos

    See `TodoManager`

  topics

    See `TopicManager`

  property url: str

    The user-provided server URL.

  user_activities

    See `UserActivitiesManager`

  users

    See `UserManager`

  variables

    See `VariableManager`

  version() → tuple[str, str]

    Returns the version and revision of the gitlab server.

    Note that self.version and self.revision will be set on the gitlab object.

    Returns:

      The server version and server revision.

        (‘unknown’, ‘unknown’) if the server doesn’t perform as expected.

    Return type:

      tuple[str, str]

exception gitlab.GitlabActivateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabAttachFileError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabAuthenticationError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabBanError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabBlockError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabBuildCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabCancelError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabBuildEraseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabBuildPlayError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabBuildRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabCherryPickError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabCiLintError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabConnectionError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabCreateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabDeactivateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabDeleteError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabDeploymentApprovalError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `Exception`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabFollowError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabGetError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabGroupTransferError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabHeadError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabHookTestError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabHousekeepingError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabHttpError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabImportError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabInvitationError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabJobCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabCancelError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabJobEraseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabJobPlayError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabJobRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabLicenseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

class gitlab.GitlabList(gl: Gitlab, url: str, query_data: dict[str, Any], get_next: bool = True, **kwargs: Any)

  Bases: `object`

  Generator representing a list of remote objects.

  The object handles the links returned by a query to the API, and will call the API again when needed.

  Parameters:

    - gl (Gitlab)

    - url (str)

    - query_data (dict[str, Any])

    - get_next (bool)

    - kwargs (Any)

  property current_page: int

    The current page number.

  next() → dict[str, Any]
    Return type:

      dict[str, Any]

  property next_page: int | None

    The next page number.

    If None, the current page is the last.

  property per_page: int | None

    The number of items per page.

  property prev_page: int | None

    The previous page number.

    If None, the current page is the first.

  property total: int | None

    The total number of items.

  property total_pages: int | None

    The total number of pages.

exception gitlab.GitlabListError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabMRApprovalError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabMRClosedError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabMRForbiddenError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabMROnBuildSuccessError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabMRRebaseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabMRResetApprovalError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabMarkdownError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabOperationError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabOwnershipError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabParsingError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabPipelineCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabCancelError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabPipelinePlayError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabPipelineRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabProjectDeployKeyError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabPromoteError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabProtectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabRenderError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabRepairError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabRestoreError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabRevertError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabRotateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabSearchError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabSetError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabStopError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabSubscribeError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabTimeTrackingError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabTodoError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabTopicMergeError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabTransferProjectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUnbanError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUnblockError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUnfollowError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUnsubscribeError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUpdateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUploadError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUserApproveError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabUserRejectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.GitlabVerifyError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

class gitlab.GraphQL(url: str | None = None, *, token: str | None = None, ssl_verify: bool | str = True, client: Client | None = None, timeout: float | None = None, user_agent: str = 'python-gitlab/8.0.0', fetch_schema_from_transport: bool = False, max_retries: int = 10, obey_rate_limit: bool = True, retry_transient_errors: bool = False)

  Bases: `_BaseGraphQL`

  Parameters:

    - url (str | None)

    - token (str | None)

    - ssl_verify (bool | str)

    - client (httpx.Client | None)

    - timeout (float | None)

    - user_agent (str)

    - fetch_schema_from_transport (bool)

    - max_retries (int)

    - obey_rate_limit (bool)

    - retry_transient_errors (bool)

  execute(request: str, *args: Any, **kwargs: Any) → Any
    Parameters:

      - request (str)

      - args (Any)

      - kwargs (Any)

    Return type:

      Any

exception gitlab.RedirectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

class gitlab.Gitlab(url: str | None = None, private_token: str | None = None, oauth_token: str | None = None, job_token: str | None = None, ssl_verify: bool | str = True, http_username: str | None = None, http_password: str | None = None, timeout: float | None = None, api_version: str = '4', per_page: int | None = None, pagination: str | None = None, order_by: str | None = None, user_agent: str = 'python-gitlab/8.0.0', retry_transient_errors: bool = False, keep_base_url: bool = False, **kwargs: Any)

  Bases: `object`

  Represents a GitLab server connection.

  Parameters:

    - url (str | None) – The URL of the GitLab server (defaults to https://gitlab.com).

    - private_token (str | None) – The user private token

    - oauth_token (str | None) – An oauth token

    - job_token (str | None) – A CI job token

    - ssl_verify (bool | str) – Whether SSL certificates should be validated. If the value is a string, it is the path to a CA file used for certificate validation.

    - timeout (float | None) – Timeout to use for requests to the GitLab server.

    - http_username (str | None) – Username for HTTP authentication

    - http_password (str | None) – Password for HTTP authentication

    - api_version (str) – Gitlab API version to use (support for 4 only)

    - pagination (str | None) – Can be set to ‘keyset’ to use keyset pagination

    - order_by (str | None) – Set order_by globally

    - user_agent (str) – A custom user agent to use for making HTTP requests.

    - retry_transient_errors (bool) – Whether to retry after 500, 502, 503, 504 or 52x responses. Defaults to False.

    - keep_base_url (bool) – keep user-provided base URL for pagination if it differs from response headers

    - session (requests.Session) – HTTP Requests Session

    - backend (RequestsBackend) – Backend that will be used to make http requests

    - per_page (int | None)

    - kwargs (Any)

  property api_url: str

    The computed API base URL.

  property api_version: str

    The API version used (4 only).

  appearance

    See `ApplicationAppearanceManager`

  applications

    See `ApplicationManager`

  audit_events

    See `AuditEventManager`

  auth() → None

    Performs an authentication using private token. Warns the user if a potentially misconfigured URL is detected on the client or server side.

    The user attribute will hold a gitlab.objects.CurrentUser object on success.

    Return type:

      None

  broadcastmessages

    See `BroadcastMessageManager`

  bulk_import_entities

    See `BulkImportAllEntityManager`

  bulk_imports

    See `BulkImportManager`

  ci_lint

    See `CiLintManager`

  deploykeys

    See `DeployKeyManager`

  deploytokens

    See `DeployTokenManager`

  dockerfiles

    See `DockerfileManager`

  enable_debug(mask_credentials: bool = True) → None
    Parameters:

      mask_credentials (bool)

    Return type:

      None

  events

    See `EventManager`

  features

    See `FeatureManager`

  classmethod from_config(gitlab_id: str | None = None, config_files: list[str] | None = None, **kwargs: Any) → Gitlab

    Create a Gitlab connection from configuration files.

    Parameters:

      - gitlab_id (str | None) – ID of the configuration section.

      - list[str] (config_files) – List of paths to configuration files.

      - config_files (list[str] | None)

      - kwargs (Any)

    Return type:

      Gitlab

    kwargs:

      session requests.Session: Custom requests Session

    Returns:

      A Gitlab connection.

    Raises:

      gitlab.config.GitlabDataError – If the configuration is not correct.

    Parameters:

      - gitlab_id (str | None)

      - config_files (list[str] | None)

      - kwargs (Any)

    Return type:

      Gitlab

  geonodes

    See `GeoNodeManager`

  get_license(**kwargs: Any) → dict[str, str | dict[str, str]]

    Retrieve information about the current license.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabGetError – If the server cannot perform the request

    Returns:

      The current license information

    Return type:

      dict[str, str | dict[str, str]]

  gitignores

    See `GitignoreManager`

  gitlabciymls

    See `GitlabciymlManager`

  groups

    See `GroupManager`

  headers

    Headers that will be used in request to GitLab

  hooks

    See `HookManager`

  http_delete(path: str, **kwargs: Any) → Response

    Make a DELETE request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The requests object.

    Raises:

      GitlabHttpError – When the return code is not 2xx

    Return type:

      Response

  http_get(path: str, query_data: dict[str, Any] | None = None, streamed: bool = False, raw: bool = False, **kwargs: Any) → dict[str, Any] | Response

    Make a GET request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - streamed (bool) – Whether the data should be streamed

      - raw (bool) – If True do not try to parse the output as json

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      A requests result object is streamed is True or the content type is not json. The parsed json data otherwise.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_head(path: str, query_data: dict[str, Any] | None = None, **kwargs: Any) → CaseInsensitiveDict[Any]

    Make a HEAD request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo, page, per_page)

    Returns:

      A requests.header object

    Raises:

      GitlabHttpError – When the return code is not 2xx

    Return type:

      CaseInsensitiveDict[Any]

  http_list(path: str, query_data: dict[str, Any] | None = None, *, iterator: bool | None = None, message_details: WarnMessageData | None = None, **kwargs: Any) → GitlabList | list[dict[str, Any]]

    Make a GET request to the Gitlab server for list-oriented queries.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projects’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - iterator (bool | None) – Indicate if should return a generator (True)

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo, page, per_page)

      - message_details (WarnMessageData | None)

      - **kwargs

    Returns:

      A list of the objects returned by the server. If iterator is True and no pagination-related arguments (page, per_page, get_all) are defined then a GitlabList object (generator) is returned instead. This object will make API calls when needed to fetch the next items from the server.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      GitlabList | list[dict[str, Any]]

  http_patch(path: str, *, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | bytes | None = None, raw: bool = False, **kwargs: Any) → dict[str, Any] | Response

    Make a PATCH request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | bytes | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The parsed json returned by the server.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_post(path: str, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | None = None, raw: bool = False, files: dict[str, Any] | None = None, **kwargs: Any) → dict[str, Any] | Response

    Make a POST request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - files (dict[str, Any] | None) – The files to send to the server

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The parsed json returned by the server if json is return, else the raw content

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_put(path: str, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | bytes | BinaryIO | None = None, raw: bool = False, files: dict[str, Any] | None = None, **kwargs: Any) → dict[str, Any] | Response

    Make a PUT request to the Gitlab server.

    Parameters:

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | bytes | BinaryIO | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - files (dict[str, Any] | None) – The files to send to the server

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The parsed json returned by the server.

    Raises:

      - GitlabHttpError – When the return code is not 2xx

      - GitlabParsingError – If the json data could not be parsed

    Return type:

      dict[str, Any] | Response

  http_request(verb: str, path: str, query_data: dict[str, Any] | None = None, post_data: dict[str, Any] | bytes | BinaryIO | None = None, raw: bool = False, streamed: bool = False, files: dict[str, Any] | None = None, timeout: float | None = None, obey_rate_limit: bool = True, retry_transient_errors: bool | None = None, max_retries: int = 10, extra_headers: dict[str, Any] | None = None, **kwargs: Any) → Response

    Make an HTTP request to the Gitlab server.

    Parameters:

      - verb (str) – The HTTP method to call (‘get’, ‘post’, ‘put’, ‘delete’)

      - path (str) – Path or full URL to query (‘/projects’ or ‘http://whatever/v4/api/projecs’)

      - query_data (dict[str, Any] | None) – Data to send as query parameters

      - post_data (dict[str, Any] | bytes | BinaryIO | None) – Data to send in the body (will be converted to json by default)

      - raw (bool) – If True, do not convert post_data to json

      - streamed (bool) – Whether the data should be streamed

      - files (dict[str, Any] | None) – The files to send to the server

      - timeout (float | None) – The timeout, in seconds, for the request

      - obey_rate_limit (bool) – Whether to obey 429 Too Many Request responses. Defaults to True.

      - retry_transient_errors (bool | None) – Whether to retry after 500, 502, 503, 504 or 52x responses. Defaults to False.

      - max_retries (int) – Max retries after 429 or transient errors, set to -1 to retry forever. Defaults to 10.

      - extra_headers (dict[str, Any] | None) – Add and override HTTP headers for the request.

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      A requests result object.

    Raises:

      GitlabHttpError – When the return code is not 2xx

    Return type:

      Response

  issues

    See `IssueManager`

  issues_statistics

    See `IssuesStatisticsManager`

  keys

    See `KeyManager`

  ldapgroups

    See `LDAPGroupManager`

  licenses

    See `LicenseManager`

  markdown(text: str, gfm: bool = False, project: str | None = None, **kwargs: Any) → str

    Render an arbitrary Markdown document.

    Parameters:

      - text (str) – The markdown text to render

      - gfm (bool) – Render text using GitLab Flavored Markdown. Default is False

      - project (str | None) – Full path of a project used a context when gfm is True

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabMarkdownError – If the server cannot perform the request

    Returns:

      The HTML rendering of the markdown text.

    Return type:

      str

  member_roles

    See `MergeRequestManager`

  classmethod merge_config(options: dict[str, Any], gitlab_id: str | None = None, config_files: list[str] | None = None) → Gitlab

    Create a Gitlab connection by merging configuration with the following precedence:

    1. Explicitly provided CLI arguments,

    2. Environment variables,

    3. Configuration files:
         1. explicitly defined config files:

              1. via the –config-file CLI argument,

              2. via the PYTHON_GITLAB_CFG environment variable,

         2. user-specific config file,

         3. system-level config file,

    4. Environment variables always present in CI (CI_SERVER_URL, CI_JOB_TOKEN).

    Parameters:

      - options (dict[str, Any]) – A dictionary of explicitly provided key-value options.

      - gitlab_id (str | None) – ID of the configuration section.

      - config_files (list[str] | None) – List of paths to configuration files.

    Returns:

      A Gitlab connection.

    Return type:

      (gitlab.Gitlab)

    Raises:

      gitlab.config.GitlabDataError – If the configuration is not correct.

  mergerequests

    See `MergeRequestManager`

  namespaces

    See `NamespaceManager`

  notificationsettings

    See `NotificationSettingsManager`

  pagesdomains

    See `PagesDomainManager`

  personal_access_tokens

    See `PersonalAccessTokenManager`

  projects

    See `ProjectManager`

  registry_repositories

    See `RegistryRepositoryManager`

  runners

    See `RunnerManager`

  runners_all

    See `RunnerManager`

  search(scope: str, search: str, **kwargs: Any) → GitlabList | list[dict[str, Any]]

    Search GitLab resources matching the provided string.’

    Parameters:

      - scope (str) – Scope of the search

      - search (str) – Search string

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabSearchError – If the server failed to perform the request

    Returns:

      A list of dicts describing the resources found.

    Return type:

      GitlabList | list[dict[str, Any]]

  set_license(license: str, **kwargs: Any) → dict[str, Any]

    Add a new license.

    Parameters:

      - license (str) – The license string

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabPostError – If the server cannot perform the request

    Returns:

      The new license information

    Return type:

      dict[str, Any]

  settings

    See `ApplicationSettingsManager`

  sidekiq

    See `SidekiqManager`

  snippets

    See `SnippetManager`

  ssl_verify

    Whether SSL certificates should be validated

  statistics

    See `ApplicationStatisticsManager`

  timeout

    Timeout to use for requests to gitlab server

  todos

    See `TodoManager`

  topics

    See `TopicManager`

  property url: str

    The user-provided server URL.

  user: objects.CurrentUser | None
  user_activities

    See `UserActivitiesManager`

  users

    See `UserManager`

  variables

    See `VariableManager`

  version() → tuple[str, str]

    Returns the version and revision of the gitlab server.

    Note that self.version and self.revision will be set on the gitlab object.

    Returns:

      The server version and server revision.

        (‘unknown’, ‘unknown’) if the server doesn’t perform as expected.

    Return type:

      tuple[str, str]

class gitlab.GitlabList(gl: Gitlab, url: str, query_data: dict[str, Any], get_next: bool = True, **kwargs: Any)

  Bases: `object`

  Generator representing a list of remote objects.

  The object handles the links returned by a query to the API, and will call the API again when needed.

  Parameters:

    - gl (Gitlab)

    - url (str)

    - query_data (dict[str, Any])

    - get_next (bool)

    - kwargs (Any)

  property current_page: int

    The current page number.

  next() → dict[str, Any]
    Return type:

      dict[str, Any]

  property next_page: int | None

    The next page number.

    If None, the current page is the last.

  property per_page: int | None

    The number of items per page.

  property prev_page: int | None

    The previous page number.

    If None, the current page is the first.

  property total: int | None

    The total number of items.

  property total_pages: int | None

    The total number of pages.

## Subpackages

- gitlab.v4 package
  - Submodules
  - gitlab.v4.objects module
    - `Any`
    - `Application`
    - `ApplicationAppearance`
    - `ApplicationAppearanceManager`
      - `ApplicationAppearanceManager.update()`
    - `ApplicationManager`
    - `ApplicationSettings`
    - `ApplicationSettingsManager`
      - `ApplicationSettingsManager.update()`
    - `ApplicationStatistics`
    - `ApplicationStatisticsManager`
    - `AuditEvent`
    - `AuditEventManager`
    - `BroadcastMessage`
    - `BroadcastMessageManager`
    - `BulkImport`
      - `BulkImport.entities`
    - `BulkImportAllEntity`
    - `BulkImportAllEntityManager`
    - `BulkImportEntity`
    - `BulkImportEntityManager`
    - `BulkImportManager`
    - `CiLint`
    - `CiLintManager`
      - `CiLintManager.validate()`
    - `CurrentUser`
      - `CurrentUser.emails`
      - `CurrentUser.gpgkeys`
      - `CurrentUser.keys`
      - `CurrentUser.runners`
      - `CurrentUser.status`
    - `CurrentUserEmail`
    - `CurrentUserEmailManager`
    - `CurrentUserGPGKey`
    - `CurrentUserGPGKeyManager`
    - `CurrentUserKey`
    - `CurrentUserKeyManager`
    - `CurrentUserManager`
    - `CurrentUserRunner`
    - `CurrentUserRunnerManager`
    - `CurrentUserStatus`
    - `CurrentUserStatusManager`
    - `DeployKey`
    - `DeployKeyManager`
    - `DeployToken`
    - `DeployTokenManager`
    - `Dockerfile`
    - `DockerfileManager`
    - `Event`
    - `EventManager`
    - `Feature`
    - `FeatureManager`
      - `FeatureManager.set()`
    - `GenericPackage`
    - `GenericPackageManager`
      - `GenericPackageManager.download()`
      - `GenericPackageManager.upload()`
    - `GeoNode`
      - `GeoNode.repair()`
      - `GeoNode.status()`
    - `GeoNodeManager`
      - `GeoNodeManager.current_failures()`
      - `GeoNodeManager.status()`
    - `Gitignore`
    - `GitignoreManager`
    - `Gitlabciyml`
    - `GitlabciymlManager`
    - `Group`
      - `Group.access_tokens`
      - `Group.accessrequests`
      - `Group.approval_rules`
      - `Group.audit_events`
      - `Group.badges`
      - `Group.billable_members`
      - `Group.boards`
      - `Group.clusters`
      - `Group.customattributes`
      - `Group.deploytokens`
      - `Group.descendant_groups`
      - `Group.epics`
      - `Group.exports`
      - `Group.hooks`
      - `Group.imports`
      - `Group.invitations`
      - `Group.issues`
      - `Group.issues_statistics`
      - `Group.iterations`
      - `Group.labels`
      - `Group.ldap_group_links`
      - `Group.ldap_sync()`
      - `Group.member_roles`
      - `Group.members`
      - `Group.members_all`
      - `Group.mergerequests`
      - `Group.milestones`
      - `Group.notificationsettings`
      - `Group.packages`
      - `Group.projects`
      - `Group.protectedbranches`
      - `Group.pushrules`
      - `Group.registry_repositories`
      - `Group.restore()`
      - `Group.runners`
      - `Group.saml_group_links`
      - `Group.search()`
      - `Group.service_accounts`
      - `Group.share()`
      - `Group.shared_projects`
      - `Group.subgroups`
      - `Group.transfer()`
      - `Group.transfer_project()`
      - `Group.unshare()`
      - `Group.variables`
      - `Group.wikis`
    - `GroupAccessRequest`
    - `GroupAccessRequestManager`
    - `GroupAccessToken`
    - `GroupAccessTokenManager`
    - `GroupApprovalRule`
    - `GroupApprovalRuleManager`
    - `GroupAuditEvent`
    - `GroupAuditEventManager`
    - `GroupBadge`
    - `GroupBadgeManager`
    - `GroupBillableMember`
      - `GroupBillableMember.memberships`
    - `GroupBillableMemberManager`
    - `GroupBillableMemberMembership`
    - `GroupBillableMemberMembershipManager`
    - `GroupBoard`
      - `GroupBoard.lists`
    - `GroupBoardList`
    - `GroupBoardListManager`
    - `GroupBoardManager`
    - `GroupCluster`
    - `GroupClusterManager`
      - `GroupClusterManager.create()`
    - `GroupCustomAttribute`
    - `GroupCustomAttributeManager`
    - `GroupDeployToken`
    - `GroupDeployTokenManager`
    - `GroupDescendantGroup`
    - `GroupDescendantGroupManager`
    - `GroupEpic`
      - `GroupEpic.issues`
      - `GroupEpic.notes`
      - `GroupEpic.resourcelabelevents`
    - `GroupEpicAwardEmoji`
    - `GroupEpicAwardEmojiManager`
    - `GroupEpicDiscussionNote`
    - `GroupEpicDiscussionNoteManager`
    - `GroupEpicIssue`
      - `GroupEpicIssue.manager`
      - `GroupEpicIssue.save()`
    - `GroupEpicIssueManager`
      - `GroupEpicIssueManager.create()`
    - `GroupEpicManager`
    - `GroupEpicNote`
      - `GroupEpicNote.awardemojis`
    - `GroupEpicNoteAwardEmoji`
    - `GroupEpicNoteAwardEmojiManager`
    - `GroupEpicNoteManager`
    - `GroupEpicResourceLabelEvent`
    - `GroupEpicResourceLabelEventManager`
    - `GroupExport`
    - `GroupExportManager`
    - `GroupHook`
      - `GroupHook.test()`
    - `GroupHookManager`
    - `GroupImport`
    - `GroupImportManager`
    - `GroupInvitation`
    - `GroupInvitationManager`
    - `GroupIssue`
    - `GroupIssueManager`
    - `GroupIssuesStatistics`
    - `GroupIssuesStatisticsManager`
    - `GroupIteration`
    - `GroupIterationManager`
    - `GroupLDAPGroupLink`
      - `GroupLDAPGroupLink.delete()`
    - `GroupLDAPGroupLinkManager`
    - `GroupLabel`
      - `GroupLabel.manager`
      - `GroupLabel.save()`
    - `GroupLabelManager`
      - `GroupLabelManager.update()`
    - `GroupManager`
      - `GroupManager.import_group()`
    - `GroupMember`
    - `GroupMemberAll`
    - `GroupMemberAllManager`
    - `GroupMemberManager`
    - `GroupMemberRole`
    - `GroupMemberRoleManager`
    - `GroupMergeRequest`
    - `GroupMergeRequestManager`
    - `GroupMilestone`
      - `GroupMilestone.issues()`
      - `GroupMilestone.merge_requests()`
    - `GroupMilestoneManager`
    - `GroupNotificationSettings`
    - `GroupNotificationSettingsManager`
    - `GroupPackage`
    - `GroupPackageManager`
    - `GroupProject`
    - `GroupProjectManager`
    - `GroupPushRules`
    - `GroupPushRulesManager`
    - `GroupRegistryRepositoryManager`
    - `GroupRunner`
    - `GroupRunnerManager`
    - `GroupSAMLGroupLink`
    - `GroupSAMLGroupLinkManager`
    - `GroupServiceAccount`
    - `GroupServiceAccountManager`
    - `GroupSubgroup`
    - `GroupSubgroupManager`
    - `GroupVariable`
    - `GroupVariableManager`
    - `GroupWiki`
    - `GroupWikiManager`
    - `Hook`
    - `HookManager`
    - `Issue`
    - `IssueManager`
    - `IssuesStatistics`
    - `IssuesStatisticsManager`
    - `Key`
    - `KeyManager`
      - `KeyManager.get()`
    - `LDAPGroup`
    - `LDAPGroupManager`
      - `LDAPGroupManager.list()`
    - `License`
    - `LicenseManager`
    - `MemberRole`
    - `MemberRoleManager`
    - `MergeRequest`
    - `MergeRequestManager`
    - `Namespace`
    - `NamespaceManager`
      - `NamespaceManager.exists()`
    - `NotificationSettings`
    - `NotificationSettingsManager`
    - `PagesDomain`
    - `PagesDomainManager`
    - `PersonalAccessToken`
    - `PersonalAccessTokenManager`
    - `Project`
      - `Project.access_tokens`
      - `Project.accessrequests`
      - `Project.additionalstatistics`
      - `Project.approvalrules`
      - `Project.approvals`
      - `Project.archive()`
      - `Project.artifacts`
      - `Project.audit_events`
      - `Project.badges`
      - `Project.boards`
      - `Project.branches`
      - `Project.ci_lint`
      - `Project.cluster_agents`
      - `Project.clusters`
      - `Project.commits`
      - `Project.create_fork_relation()`
      - `Project.customattributes`
      - `Project.delete_fork_relation()`
      - `Project.deployments`
      - `Project.deploytokens`
      - `Project.dockerfile_templates`
      - `Project.environments`
      - `Project.events`
      - `Project.exports`
      - `Project.external_status_checks`
      - `Project.files`
      - `Project.forks`
      - `Project.generic_packages`
      - `Project.gitignore_templates`
      - `Project.gitlabciyml_templates`
      - `Project.groups`
      - `Project.hooks`
      - `Project.housekeeping()`
      - `Project.imports`
      - `Project.integrations`
      - `Project.invitations`
      - `Project.issue_templates`
      - `Project.issues`
      - `Project.issues_statistics`
      - `Project.iterations`
      - `Project.job_token_scope`
      - `Project.jobs`
      - `Project.keys`
      - `Project.labels`
      - `Project.languages()`
      - `Project.license_templates`
      - `Project.members`
      - `Project.members_all`
      - `Project.merge_request_templates`
      - `Project.merge_trains`
      - `Project.mergerequests`
      - `Project.milestones`
      - `Project.mirror_pull()`
      - `Project.mirror_pull_details()`
      - `Project.notes`
      - `Project.notificationsettings`
      - `Project.package_protection_rules`
      - `Project.packages`
      - `Project.pages`
      - `Project.pagesdomains`
      - `Project.path_with_namespace`
      - `Project.pipelines`
      - `Project.pipelineschedules`
      - `Project.protected_environments`
      - `Project.protectedbranches`
      - `Project.protectedtags`
      - `Project.pull_mirror`
      - `Project.pushrules`
      - `Project.registry_protection_repository_rules`
      - `Project.registry_protection_rules`
      - `Project.releases`
      - `Project.remote_mirrors`
      - `Project.repositories`
      - `Project.resource_groups`
      - `Project.restore()`
      - `Project.runners`
      - `Project.search()`
      - `Project.secure_files`
      - `Project.services`
      - `Project.share()`
      - `Project.snapshot()`
      - `Project.snippets`
      - `Project.star()`
      - `Project.storage`
      - `Project.tags`
      - `Project.transfer()`
      - `Project.trigger_pipeline()`
      - `Project.triggers`
      - `Project.unarchive()`
      - `Project.unshare()`
      - `Project.unstar()`
      - `Project.users`
      - `Project.variables`
      - `Project.wikis`
    - `ProjectAccessRequest`
    - `ProjectAccessRequestManager`
    - `ProjectAccessToken`
    - `ProjectAccessTokenManager`
    - `ProjectAdditionalStatistics`
    - `ProjectAdditionalStatisticsManager`
    - `ProjectApproval`
    - `ProjectApprovalManager`
    - `ProjectApprovalRule`
    - `ProjectApprovalRuleManager`
    - `ProjectArtifact`
    - `ProjectArtifactManager`
      - `ProjectArtifactManager.delete()`
      - `ProjectArtifactManager.download()`
      - `ProjectArtifactManager.raw()`
    - `ProjectAudit`
    - `ProjectAuditEvent`
    - `ProjectAuditEventManager`
    - `ProjectAuditManager`
    - `ProjectBadge`
    - `ProjectBadgeManager`
    - `ProjectBoard`
      - `ProjectBoard.lists`
    - `ProjectBoardList`
    - `ProjectBoardListManager`
    - `ProjectBoardManager`
    - `ProjectBranch`
    - `ProjectBranchManager`
    - `ProjectCiLint`
    - `ProjectCiLintManager`
      - `ProjectCiLintManager.validate()`
    - `ProjectCluster`
    - `ProjectClusterAgent`
    - `ProjectClusterAgentManager`
    - `ProjectClusterManager`
      - `ProjectClusterManager.create()`
    - `ProjectCommit`
      - `ProjectCommit.cherry_pick()`
      - `ProjectCommit.comments`
      - `ProjectCommit.diff()`
      - `ProjectCommit.discussions`
      - `ProjectCommit.merge_requests()`
      - `ProjectCommit.refs()`
      - `ProjectCommit.revert()`
      - `ProjectCommit.sequence()`
      - `ProjectCommit.signature()`
      - `ProjectCommit.statuses`
    - `ProjectCommitComment`
    - `ProjectCommitCommentManager`
    - `ProjectCommitDiscussion`
      - `ProjectCommitDiscussion.notes`
    - `ProjectCommitDiscussionManager`
    - `ProjectCommitDiscussionNote`
    - `ProjectCommitDiscussionNoteManager`
    - `ProjectCommitManager`
    - `ProjectCommitStatus`
    - `ProjectCommitStatusManager`
      - `ProjectCommitStatusManager.create()`
    - `ProjectCustomAttribute`
    - `ProjectCustomAttributeManager`
    - `ProjectDeployToken`
    - `ProjectDeployTokenManager`
    - `ProjectDeployment`
      - `ProjectDeployment.approval()`
      - `ProjectDeployment.mergerequests`
    - `ProjectDeploymentManager`
    - `ProjectDeploymentMergeRequest`
    - `ProjectDeploymentMergeRequestManager`
    - `ProjectDockerfileTemplate`
    - `ProjectDockerfileTemplateManager`
    - `ProjectEnvironment`
      - `ProjectEnvironment.stop()`
    - `ProjectEnvironmentManager`
    - `ProjectEvent`
    - `ProjectEventManager`
    - `ProjectExport`
    - `ProjectExportManager`
    - `ProjectExternalStatusCheck`
    - `ProjectExternalStatusCheckManager`
    - `ProjectFile`
      - `ProjectFile.branch`
      - `ProjectFile.commit_message`
      - `ProjectFile.content`
      - `ProjectFile.decode()`
      - `ProjectFile.delete()`
      - `ProjectFile.file_path`
      - `ProjectFile.manager`
      - `ProjectFile.save()`
      - `ProjectFile.start_branch`
    - `ProjectFileManager`
      - `ProjectFileManager.blame()`
      - `ProjectFileManager.create()`
      - `ProjectFileManager.delete()`
      - `ProjectFileManager.get()`
      - `ProjectFileManager.head()`
      - `ProjectFileManager.raw()`
      - `ProjectFileManager.update()`
    - `ProjectFork`
    - `ProjectForkManager`
      - `ProjectForkManager.create()`
    - `ProjectGitignoreTemplate`
    - `ProjectGitignoreTemplateManager`
    - `ProjectGitlabciymlTemplate`
    - `ProjectGitlabciymlTemplateManager`
    - `ProjectHook`
      - `ProjectHook.test()`
    - `ProjectHookManager`
    - `ProjectImport`
    - `ProjectImportManager`
    - `ProjectIntegration`
    - `ProjectIntegrationManager`
      - `ProjectIntegrationManager.available()`
    - `ProjectInvitation`
    - `ProjectInvitationManager`
    - `ProjectIssue`
      - `ProjectIssue.awardemojis`
      - `ProjectIssue.closed_by()`
      - `ProjectIssue.discussions`
      - `ProjectIssue.links`
      - `ProjectIssue.move()`
      - `ProjectIssue.notes`
      - `ProjectIssue.related_merge_requests()`
      - `ProjectIssue.reorder()`
      - `ProjectIssue.resource_iteration_events`
      - `ProjectIssue.resource_weight_events`
      - `ProjectIssue.resourcelabelevents`
      - `ProjectIssue.resourcemilestoneevents`
      - `ProjectIssue.resourcestateevents`
    - `ProjectIssueAwardEmoji`
    - `ProjectIssueAwardEmojiManager`
    - `ProjectIssueDiscussion`
      - `ProjectIssueDiscussion.notes`
    - `ProjectIssueDiscussionManager`
    - `ProjectIssueDiscussionNote`
    - `ProjectIssueDiscussionNoteManager`
    - `ProjectIssueLink`
    - `ProjectIssueLinkManager`
      - `ProjectIssueLinkManager.create()`
    - `ProjectIssueManager`
    - `ProjectIssueNote`
      - `ProjectIssueNote.awardemojis`
    - `ProjectIssueNoteAwardEmoji`
    - `ProjectIssueNoteAwardEmojiManager`
    - `ProjectIssueNoteManager`
    - `ProjectIssueResourceIterationEvent`
    - `ProjectIssueResourceIterationEventManager`
    - `ProjectIssueResourceLabelEvent`
    - `ProjectIssueResourceLabelEventManager`
    - `ProjectIssueResourceMilestoneEvent`
    - `ProjectIssueResourceMilestoneEventManager`
    - `ProjectIssueResourceStateEvent`
    - `ProjectIssueResourceStateEventManager`
    - `ProjectIssueResourceWeightEvent`
    - `ProjectIssueResourceWeightEventManager`
    - `ProjectIssueTemplate`
    - `ProjectIssueTemplateManager`
    - `ProjectIssuesStatistics`
    - `ProjectIssuesStatisticsManager`
    - `ProjectIterationManager`
    - `ProjectJob`
      - `ProjectJob.artifact()`
      - `ProjectJob.artifacts()`
      - `ProjectJob.cancel()`
      - `ProjectJob.delete_artifacts()`
      - `ProjectJob.erase()`
      - `ProjectJob.keep_artifacts()`
      - `ProjectJob.play()`
      - `ProjectJob.retry()`
      - `ProjectJob.trace()`
    - `ProjectJobManager`
    - `ProjectJobTokenScope`
      - `ProjectJobTokenScope.allowlist`
      - `ProjectJobTokenScope.groups_allowlist`
    - `ProjectJobTokenScopeManager`
    - `ProjectKey`
    - `ProjectKeyManager`
      - `ProjectKeyManager.enable()`
    - `ProjectLabel`
      - `ProjectLabel.manager`
      - `ProjectLabel.save()`
    - `ProjectLabelManager`
      - `ProjectLabelManager.update()`
    - `ProjectLicenseTemplate`
    - `ProjectLicenseTemplateManager`
    - `ProjectManager`
      - `ProjectManager.import_bitbucket_server()`
      - `ProjectManager.import_github()`
      - `ProjectManager.import_project()`
      - `ProjectManager.remote_import()`
      - `ProjectManager.remote_import_s3()`
    - `ProjectMember`
    - `ProjectMemberAll`
    - `ProjectMemberAllManager`
    - `ProjectMemberManager`
    - `ProjectMergeRequest`
      - `ProjectMergeRequest.approval_rules`
      - `ProjectMergeRequest.approval_state`
      - `ProjectMergeRequest.approvals`
      - `ProjectMergeRequest.approve()`
      - `ProjectMergeRequest.awardemojis`
      - `ProjectMergeRequest.cancel_merge_when_pipeline_succeeds()`
      - `ProjectMergeRequest.changes()`
      - `ProjectMergeRequest.closes_issues()`
      - `ProjectMergeRequest.commits()`
      - `ProjectMergeRequest.diffs`
      - `ProjectMergeRequest.discussions`
      - `ProjectMergeRequest.draft_notes`
      - `ProjectMergeRequest.merge()`
      - `ProjectMergeRequest.merge_ref()`
      - `ProjectMergeRequest.notes`
      - `ProjectMergeRequest.pipelines`
      - `ProjectMergeRequest.rebase()`
      - `ProjectMergeRequest.related_issues()`
      - `ProjectMergeRequest.reset_approvals()`
      - `ProjectMergeRequest.resourcelabelevents`
      - `ProjectMergeRequest.resourcemilestoneevents`
      - `ProjectMergeRequest.resourcestateevents`
      - `ProjectMergeRequest.reviewer_details`
      - `ProjectMergeRequest.status_checks`
      - `ProjectMergeRequest.unapprove()`
    - `ProjectMergeRequestApproval`
    - `ProjectMergeRequestApprovalManager`
      - `ProjectMergeRequestApprovalManager.set_approvers()`
    - `ProjectMergeRequestApprovalRule`
    - `ProjectMergeRequestApprovalRuleManager`
    - `ProjectMergeRequestApprovalState`
    - `ProjectMergeRequestApprovalStateManager`
    - `ProjectMergeRequestAwardEmoji`
    - `ProjectMergeRequestAwardEmojiManager`
    - `ProjectMergeRequestDiff`
    - `ProjectMergeRequestDiffManager`
    - `ProjectMergeRequestDiscussion`
      - `ProjectMergeRequestDiscussion.notes`
    - `ProjectMergeRequestDiscussionManager`
    - `ProjectMergeRequestDiscussionNote`
    - `ProjectMergeRequestDiscussionNoteManager`
    - `ProjectMergeRequestDraftNote`
      - `ProjectMergeRequestDraftNote.publish()`
    - `ProjectMergeRequestDraftNoteManager`
      - `ProjectMergeRequestDraftNoteManager.bulk_publish()`
    - `ProjectMergeRequestManager`
    - `ProjectMergeRequestNote`
      - `ProjectMergeRequestNote.awardemojis`
    - `ProjectMergeRequestNoteAwardEmoji`
    - `ProjectMergeRequestNoteAwardEmojiManager`
    - `ProjectMergeRequestNoteManager`
    - `ProjectMergeRequestPipeline`
    - `ProjectMergeRequestPipelineManager`
    - `ProjectMergeRequestResourceLabelEvent`
    - `ProjectMergeRequestResourceLabelEventManager`
    - `ProjectMergeRequestResourceMilestoneEvent`
    - `ProjectMergeRequestResourceMilestoneEventManager`
    - `ProjectMergeRequestResourceStateEvent`
    - `ProjectMergeRequestResourceStateEventManager`
    - `ProjectMergeRequestReviewerDetail`
    - `ProjectMergeRequestReviewerDetailManager`
    - `ProjectMergeRequestStatusCheck`
    - `ProjectMergeRequestStatusCheckManager`
    - `ProjectMergeRequestTemplate`
    - `ProjectMergeRequestTemplateManager`
    - `ProjectMergeTrain`
    - `ProjectMergeTrainManager`
    - `ProjectMilestone`
      - `ProjectMilestone.issues()`
      - `ProjectMilestone.merge_requests()`
    - `ProjectMilestoneManager`
    - `ProjectNote`
    - `ProjectNoteManager`
    - `ProjectNotificationSettings`
    - `ProjectNotificationSettingsManager`
    - `ProjectPackage`
      - `ProjectPackage.package_files`
      - `ProjectPackage.pipelines`
    - `ProjectPackageFile`
    - `ProjectPackageFileManager`
    - `ProjectPackageManager`
    - `ProjectPackagePipeline`
    - `ProjectPackagePipelineManager`
    - `ProjectPackageProtectionRule`
    - `ProjectPackageProtectionRuleManager`
    - `ProjectPages`
    - `ProjectPagesDomain`
    - `ProjectPagesDomainManager`
    - `ProjectPagesManager`
    - `ProjectPipeline`
      - `ProjectPipeline.bridges`
      - `ProjectPipeline.cancel()`
      - `ProjectPipeline.jobs`
      - `ProjectPipeline.retry()`
      - `ProjectPipeline.test_report`
      - `ProjectPipeline.test_report_summary`
      - `ProjectPipeline.variables`
    - `ProjectPipelineBridge`
    - `ProjectPipelineBridgeManager`
    - `ProjectPipelineJob`
    - `ProjectPipelineJobManager`
    - `ProjectPipelineManager`
      - `ProjectPipelineManager.create()`
      - `ProjectPipelineManager.latest()`
    - `ProjectPipelineSchedule`
      - `ProjectPipelineSchedule.pipelines`
      - `ProjectPipelineSchedule.play()`
      - `ProjectPipelineSchedule.take_ownership()`
      - `ProjectPipelineSchedule.variables`
    - `ProjectPipelineScheduleManager`
    - `ProjectPipelineSchedulePipeline`
    - `ProjectPipelineSchedulePipelineManager`
    - `ProjectPipelineScheduleVariable`
    - `ProjectPipelineScheduleVariableManager`
    - `ProjectPipelineTestReport`
    - `ProjectPipelineTestReportManager`
    - `ProjectPipelineTestReportSummary`
    - `ProjectPipelineTestReportSummaryManager`
    - `ProjectPipelineVariable`
    - `ProjectPipelineVariableManager`
    - `ProjectProtectedBranch`
    - `ProjectProtectedBranchManager`
    - `ProjectProtectedEnvironment`
    - `ProjectProtectedEnvironmentManager`
    - `ProjectProtectedTag`
    - `ProjectProtectedTagManager`
    - `ProjectPullMirror`
    - `ProjectPullMirrorManager`
      - `ProjectPullMirrorManager.create()`
      - `ProjectPullMirrorManager.start()`
    - `ProjectPushRules`
    - `ProjectPushRulesManager`
    - `ProjectRegistryProtectionRule`
    - `ProjectRegistryProtectionRuleManager`
    - `ProjectRegistryRepository`
      - `ProjectRegistryRepository.tags`
    - `ProjectRegistryRepositoryManager`
    - `ProjectRegistryRepositoryProtectionRule`
    - `ProjectRegistryRepositoryProtectionRuleManager`
    - `ProjectRegistryTag`
    - `ProjectRegistryTagManager`
      - `ProjectRegistryTagManager.delete_in_bulk()`
    - `ProjectRelease`
      - `ProjectRelease.links`
    - `ProjectReleaseLink`
    - `ProjectReleaseLinkManager`
    - `ProjectReleaseManager`
    - `ProjectRemoteMirror`
      - `ProjectRemoteMirror.sync()`
    - `ProjectRemoteMirrorManager`
    - `ProjectResourceGroup`
      - `ProjectResourceGroup.upcoming_jobs`
    - `ProjectResourceGroupManager`
    - `ProjectResourceGroupUpcomingJob`
    - `ProjectResourceGroupUpcomingJobManager`
    - `ProjectRunner`
    - `ProjectRunnerManager`
    - `ProjectSecureFile`
      - `ProjectSecureFile.download()`
    - `ProjectSecureFileManager`
    - `ProjectService`
    - `ProjectServiceManager`
    - `ProjectSnippet`
      - `ProjectSnippet.awardemojis`
      - `ProjectSnippet.content()`
      - `ProjectSnippet.discussions`
      - `ProjectSnippet.notes`
    - `ProjectSnippetAwardEmoji`
    - `ProjectSnippetAwardEmojiManager`
    - `ProjectSnippetDiscussion`
      - `ProjectSnippetDiscussion.notes`
    - `ProjectSnippetDiscussionManager`
    - `ProjectSnippetDiscussionNote`
    - `ProjectSnippetDiscussionNoteManager`
    - `ProjectSnippetManager`
    - `ProjectSnippetNote`
      - `ProjectSnippetNote.awardemojis`
    - `ProjectSnippetNoteAwardEmoji`
    - `ProjectSnippetNoteAwardEmojiManager`
    - `ProjectSnippetNoteManager`
    - `ProjectStorage`
    - `ProjectStorageManager`
    - `ProjectTag`
    - `ProjectTagManager`
    - `ProjectTrigger`
    - `ProjectTriggerManager`
    - `ProjectUser`
    - `ProjectUserManager`
    - `ProjectVariable`
    - `ProjectVariableManager`
    - `ProjectWiki`
    - `ProjectWikiManager`
    - `RegistryRepository`
    - `RegistryRepositoryManager`
    - `RepositoryMixin`
      - `RepositoryMixin.delete_merged_branches()`
      - `RepositoryMixin.repository_archive()`
      - `RepositoryMixin.repository_blob()`
      - `RepositoryMixin.repository_compare()`
      - `RepositoryMixin.repository_contributors()`
      - `RepositoryMixin.repository_merge_base()`
      - `RepositoryMixin.repository_raw_blob()`
      - `RepositoryMixin.repository_tree()`
      - `RepositoryMixin.update_submodule()`
    - `Runner`
      - `Runner.jobs`
    - `RunnerAll`
    - `RunnerAllManager`
    - `RunnerJob`
    - `RunnerJobManager`
    - `RunnerManager`
      - `RunnerManager.all()`
      - `RunnerManager.verify()`
    - `SharedProject`
    - `SharedProjectManager`
    - `SidekiqManager`
      - `SidekiqManager.compound_metrics()`
      - `SidekiqManager.job_stats()`
      - `SidekiqManager.process_metrics()`
      - `SidekiqManager.queue_metrics()`
    - `Snippet`
      - `Snippet.content()`
    - `SnippetManager`
      - `SnippetManager.list_all()`
      - `SnippetManager.list_public()`
      - `SnippetManager.public()`
    - `StarredProject`
    - `StarredProjectManager`
    - `Todo`
      - `Todo.mark_as_done()`
    - `TodoManager`
      - `TodoManager.mark_all_as_done()`
    - `Topic`
    - `TopicManager`
      - `TopicManager.merge()`
    - `User`
      - `User.activate()`
      - `User.approve()`
      - `User.ban()`
      - `User.block()`
      - `User.contributed_projects`
      - `User.customattributes`
      - `User.deactivate()`
      - `User.emails`
      - `User.events`
      - `User.follow()`
      - `User.followers_users`
      - `User.following_users`
      - `User.gpgkeys`
      - `User.identityproviders`
      - `User.impersonationtokens`
      - `User.keys`
      - `User.memberships`
      - `User.personal_access_tokens`
      - `User.projects`
      - `User.reject()`
      - `User.starred_projects`
      - `User.status`
      - `User.unban()`
      - `User.unblock()`
      - `User.unfollow()`
    - `UserActivities`
    - `UserActivitiesManager`
    - `UserContributedProject`
    - `UserContributedProjectManager`
    - `UserCustomAttribute`
    - `UserCustomAttributeManager`
    - `UserEmail`
    - `UserEmailManager`
    - `UserEvent`
    - `UserEventManager`
    - `UserGPGKey`
    - `UserGPGKeyManager`
    - `UserIdentityProviderManager`
    - `UserImpersonationToken`
    - `UserImpersonationTokenManager`
    - `UserKey`
    - `UserKeyManager`
    - `UserManager`
    - `UserMembership`
    - `UserMembershipManager`
    - `UserPersonalAccessToken`
    - `UserPersonalAccessTokenManager`
    - `UserProject`
    - `UserProjectManager`
      - `UserProjectManager.list()`
    - `UserStatus`
    - `UserStatusManager`
    - `Variable`
    - `VariableManager`
    - `overload()`
  - Module contents

## Submodules

## gitlab.base module

class gitlab.base.RESTManager(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `Generic`[`TObjCls`]

  Base class for CRUD operations on objects.

  Derived class must define `_path` and `_obj_cls`.

  `_path`: Base URL path on which requests will be sent (e.g. ‘/projects’) `_obj_cls`: The class of objects that will be created

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  gitlab: Gitlab
  property parent_attrs: dict[str, Any] | None
  property path: str

class gitlab.base.RESTObject(manager: RESTManager[Any], attrs: dict[str, Any], *, created_from_list: bool = False, lazy: bool = False)

  Bases: `object`

  Represents an object built from server data.

  It holds the attributes know from the server, and the updated attributes in another. This allows smart updates, if the object allows it.

  You can redefine `_id_attr` in child classes to specify which attribute must be used as the unique ID. `None` means that the object can be updated without ID in the url.

  Likewise, you can define a `_repr_attr` in subclasses to specify which attribute should be added as a human-readable identifier when called in the object’s `__repr__()` method.

  Parameters:

    - manager (RESTManager[Any])

    - attrs (dict[str, Any])

    - created_from_list (bool)

    - lazy (bool)

  asdict(*, with_parent_attrs: bool = False) → dict[str, Any]
    Parameters:

      with_parent_attrs (bool)

    Return type:

      dict[str, Any]

  property attributes: dict[str, Any]
  property encoded_id: int | str | None

    Ensure that the ID is url-encoded so that it can be safely used in a URL path

  get_id() → int | str | None

    Returns the id of the resource.

    Return type:

      int | str | None

  manager: RESTManager[Any]
  pformat() → str
    Return type:

      str

  pprint() → None
    Return type:

      None

  to_json(*, with_parent_attrs: bool = False, **kwargs: Any) → str
    Parameters:

      - with_parent_attrs (bool)

      - kwargs (Any)

    Return type:

      str

class gitlab.base.RESTObjectList(manager: RESTManager[TObjCls], obj_cls: type[TObjCls], _list: GitlabList)

  Bases: `Generic`[`TObjCls`]

  Generator object representing a list of RESTObject’s.

  This generator uses the Gitlab pagination system to fetch new data when required.

  Note: you should not instantiate such objects, they are returned by calls to RESTManager.list()

  Parameters:

    - manager (RESTManager[TObjCls]) – Manager to attach to the created objects

    - obj_cls (type[TObjCls]) – Type of objects to create from the json data

    - _list (GitlabList) – A GitlabList object

  property current_page: int

    The current page number.

  next() → TObjCls
    Return type:

      TObjCls

  property next_page: int | None

    The next page number.

    If None, the current page is the last.

  property per_page: int | None

    The number of items per page.

  property prev_page: int | None

    The previous page number.

    If None, the current page is the first.

  property total: int | None

    The total number of items.

  property total_pages: int | None

    The total number of pages.

## gitlab.cli module

class gitlab.cli.CustomAction(required: 'tuple[str, ...]', optional: 'tuple[str, ...]', in_object: 'bool', requires_id: 'bool', help: 'str | None')

  Bases: `object`

  Parameters:

    - required (tuple[str, ...])

    - optional (tuple[str, ...])

    - in_object (bool)

    - requires_id (bool)

    - help (str | None)

  help: str | None
  in_object: bool
  optional: tuple[str, ...]
  required: tuple[str, ...]
  requires_id: bool

gitlab.cli.cls_to_gitlab_resource(cls: type[RESTObject]) → str
  Parameters:

    cls (type[RESTObject])

  Return type:

    str

gitlab.cli.die(msg: str, e: Exception | None = None) → NoReturn
  Parameters:

    - msg (str)

    - e (Exception | None)

  Return type:

    NoReturn

gitlab.cli.docs() → ArgumentParser

  Provide a statically generated parser for sphinx only, so we don’t need to provide dummy gitlab config for readthedocs.

  Return type:

    ArgumentParser

gitlab.cli.gitlab_resource_to_cls(gitlab_resource: str, namespace: ModuleType) → type[RESTObject]
  Parameters:

    - gitlab_resource (str)

    - namespace (ModuleType)

  Return type:

    type[RESTObject]

gitlab.cli.main() → None
  Return type:

    None

gitlab.cli.register_custom_action(*, cls_names: str | tuple[str, ...], required: tuple[str, ...] = (), optional: tuple[str, ...] = (), custom_action: str | None = None, requires_id: bool = True, help: str | None = None) → Callable[[__F], __F]
  Parameters:

    - cls_names (str | tuple[str, ...])

    - required (tuple[str, ...])

    - optional (tuple[str, ...])

    - custom_action (str | None)

    - requires_id (bool)

    - help (str | None)

  Return type:

    Callable[[__F], __F]

## gitlab.config module

exception gitlab.config.ConfigError

  Bases: `Exception`

exception gitlab.config.GitlabConfigHelperError

  Bases: `ConfigError`

exception gitlab.config.GitlabConfigMissingError

  Bases: `ConfigError`

class gitlab.config.GitlabConfigParser(gitlab_id: str | None = None, config_files: list[str] | None = None)

  Bases: `object`

  Parameters:

    - gitlab_id (str | None)

    - config_files (list[str] | None)

exception gitlab.config.GitlabDataError

  Bases: `ConfigError`

exception gitlab.config.GitlabIDError

  Bases: `ConfigError`

## gitlab.const module

class gitlab.const.AccessLevel(*values)

  Bases: `IntEnum`

  ADMIN = 60
  DEVELOPER = 30
  GUEST = 10
  MAINTAINER = 40
  MINIMAL_ACCESS = 5
  NO_ACCESS = 0
  OWNER = 50
  PLANNER = 15
  REPORTER = 20

class gitlab.const.NotificationLevel(*values)

  Bases: `GitlabEnum`

  CUSTOM = 'custom'
  DISABLED = 'disabled'
  GLOBAL = 'global'
  MENTION = 'mention'
  PARTICIPATING = 'participating'
  WATCH = 'watch'

class gitlab.const.SearchScope(*values)

  Bases: `GitlabEnum`

  BLOBS = 'blobs'
  COMMITS = 'commits'
  GLOBAL_SNIPPET_TITLES = 'snippet_titles'
  ISSUES = 'issues'
  MERGE_REQUESTS = 'merge_requests'
  MILESTONES = 'milestones'
  PROJECTS = 'projects'
  PROJECT_NOTES = 'notes'
  USERS = 'users'
  WIKI_BLOBS = 'wiki_blobs'

class gitlab.const.Visibility(*values)

  Bases: `GitlabEnum`

  INTERNAL = 'internal'
  PRIVATE = 'private'
  PUBLIC = 'public'

## gitlab.exceptions module

exception gitlab.exceptions.GitlabActivateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabAttachFileError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabAuthenticationError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabBanError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabBlockError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabBuildCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabCancelError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabBuildEraseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabBuildPlayError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabBuildRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabCherryPickError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabCiLintError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabConnectionError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabCreateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabDeactivateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabDeleteError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabDeploymentApprovalError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `Exception`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabFollowError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabGetError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabGroupTransferError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabHeadError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabHookTestError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabHousekeepingError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabHttpError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabImportError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabInvitationError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabJobCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabCancelError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabJobEraseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabJobPlayError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabJobRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabLicenseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabListError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabMRApprovalError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabMRClosedError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabMRForbiddenError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabMROnBuildSuccessError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabMRRebaseError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabMRResetApprovalError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabMarkdownError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabOperationError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabOwnershipError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabParsingError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabPipelineCancelError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabCancelError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabPipelinePlayError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabPipelineRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabRetryError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabProjectDeployKeyError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabPromoteError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabProtectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabRenderError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabRepairError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabRestoreError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabRetryError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabRevertError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabRotateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabSearchError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabSetError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabStopError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabSubscribeError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabTimeTrackingError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabTodoError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabTopicMergeError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabTransferProjectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUnbanError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUnblockError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUnfollowError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUnsubscribeError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUpdateError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUploadError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUserApproveError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabUserRejectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.GitlabVerifyError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabOperationError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

exception gitlab.exceptions.RedirectError(error_message: str | bytes = '', response_code: int | None = None, response_body: bytes | None = None)

  Bases: `GitlabError`

  Parameters:

    - error_message (str | bytes)

    - response_code (int | None)

    - response_body (bytes | None)

  Return type:

    None

## gitlab.mixins module

class gitlab.mixins.AccessRequestMixin

  Bases: `object`

  approve(access_level: int = 30, **kwargs: Any) → None

    Approve an access request.

    Parameters:

      - access_level (int) – The access level for the user

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabUpdateError – If the server fails to perform the request

    Return type:

      None

  manager: RESTManager[Any]

class gitlab.mixins.BadgeRenderMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `RESTManager`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  render(link_url: str, image_url: str, **kwargs: Any) → dict[str, Any]

    Preview link_url and image_url after interpolation.

    Parameters:

      - link_url (str) – URL of the badge link

      - image_url (str) – URL of the badge image

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabRenderError – If the rendering failed

    Returns:

      The rendering properties

    Return type:

      dict[str, Any]

class gitlab.mixins.CRUDMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `GetMixin`[`TObjCls`], `ListMixin`[`TObjCls`], `CreateMixin`[`TObjCls`], `UpdateMixin`[`TObjCls`], `DeleteMixin`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

class gitlab.mixins.CreateMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `RESTManager`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  create(data: dict[str, Any] | None = None, **kwargs: Any) → TObjCls

    Create a new object.

    Parameters:

      - data (dict[str, Any] | None) – parameters to send to the server to create the resource

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      A new instance of the managed object class built with

        the data sent by the server

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabCreateError – If the server cannot perform the request

    Return type:

      TObjCls

class gitlab.mixins.DeleteMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `RESTManager`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  delete(id: str | int | None = None, **kwargs: Any) → None

    Delete an object on the server.

    Parameters:

      - id (str | int | None) – ID of the object to delete

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabDeleteError – If the server cannot perform the request

    Return type:

      None

class gitlab.mixins.DownloadMixin

  Bases: `object`

  download(streamed: Literal[False] = False, action: None = None, chunk_size: int = 1024, *, iterator: Literal[False] = False, **kwargs: Any) → bytes
  download(streamed: bool = False, action: None = None, chunk_size: int = 1024, *, iterator: Literal[True] = True, **kwargs: Any) → Iterator[Any]
  download(streamed: Literal[True] = True, action: Callable[[bytes], Any] | None = None, chunk_size: int = 1024, *, iterator: Literal[False] = False, **kwargs: Any) → None

    Download the archive of a resource export.

    Parameters:

      - streamed (bool) – If True the data will be processed by chunks of chunk_size and each chunk is passed to action for treatment

      - iterator (bool) – If True directly return the underlying response iterator

      - action (Callable[[bytes], Any] | None) – Callable responsible of dealing with chunk of data

      - chunk_size (int) – Size of each chunk

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabGetError – If the server failed to perform the request

    Returns:

      The blob content if streamed is False, None otherwise

    Return type:

      bytes | Iterator[Any] | None

  manager: RESTManager[Any]

class gitlab.mixins.GetMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `HeadMixin`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  get(id: str | int, lazy: bool = False, **kwargs: Any) → TObjCls

    Retrieve a single object.

    Parameters:

      - id (str | int) – ID of the object to retrieve

      - lazy (bool) – If True, don’t request the server, but create a shallow object giving access to the managers. This is useful if you want to avoid useless calls to the API.

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The generated RESTObject.

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabGetError – If the server cannot perform the request

    Return type:

      TObjCls

class gitlab.mixins.GetWithoutIdMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `HeadMixin`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  get(**kwargs: Any) → TObjCls

    Retrieve a single object.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The generated RESTObject

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabGetError – If the server cannot perform the request

    Return type:

      TObjCls

class gitlab.mixins.ListMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `HeadMixin`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  list(*, iterator: Literal[False] = False, **kwargs: Any) → list[base.TObjCls]
  list(*, iterator: Literal[True] = True, **kwargs: Any) → base.RESTObjectList[base.TObjCls]
  list(*, iterator: bool = False, **kwargs: Any) → base.RESTObjectList[base.TObjCls] | list[base.TObjCls]

    Retrieve a list of objects.

    Parameters:

      - get_all – If True, return all the items, without pagination

      - per_page – Number of items to retrieve per request

      - page – ID of the page to return (starts with page 1)

      - iterator (bool) – If set to True and no pagination option is defined, return a generator instead of a list

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The list of objects, or a generator if iterator is True

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabListError – If the server cannot perform the request

    Return type:

      RESTObjectList[TObjCls] | list[TObjCls]

class gitlab.mixins.NoUpdateMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `GetMixin`[`TObjCls`], `ListMixin`[`TObjCls`], `CreateMixin`[`TObjCls`], `DeleteMixin`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

class gitlab.mixins.ObjectDeleteMixin

  Bases: `object`

  Mixin for RESTObject’s that can be deleted.

  delete(**kwargs: Any) → None

    Delete the object from the server.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabDeleteError – If the server cannot perform the request

    Return type:

      None

  manager: RESTManager[Any]

class gitlab.mixins.ParticipantsMixin

  Bases: `object`

  manager: RESTManager[Any]
  participants(**kwargs: Any) → GitlabList | list[dict[str, Any]]

    List the participants.

    Parameters:

      - get_all – If True, return all the items, without pagination

      - per_page – Number of items to retrieve per request

      - page – ID of the page to return (starts with page 1)

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabListError – If the list could not be retrieved

    Returns:

      The list of participants

    Return type:

      GitlabList | list[dict[str, Any]]

class gitlab.mixins.RefreshMixin

  Bases: `object`

  manager: RESTManager[Any]
  refresh(**kwargs: Any) → None

    Refresh a single object from server.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Return type:

      None

    Returns None (updates the object)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabGetError – If the server cannot perform the request

    Parameters:

      kwargs (Any)

    Return type:

      None

class gitlab.mixins.RetrieveMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `ListMixin`[`TObjCls`], `GetMixin`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

class gitlab.mixins.SaveMixin

  Bases: `object`

  Mixin for RESTObject’s that can be updated.

  manager: RESTManager[Any]
  save(**kwargs: Any) → dict[str, Any] | None

    Save the changes made to the object to the server.

    The object is updated to match what the server returns.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The new object data (not a RESTObject)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabUpdateError – If the server cannot perform the request

    Return type:

      dict[str, Any] | None

class gitlab.mixins.SetMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `RESTManager`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  set(key: str, value: str, **kwargs: Any) → TObjCls

    Create or update the object.

    Parameters:

      - key (str) – The key of the object to create/update

      - value (str) – The value to set for the object

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabSetError – If an error occurred

    Returns:

      The created/updated attribute

    Return type:

      TObjCls

class gitlab.mixins.SubscribableMixin

  Bases: `object`

  manager: RESTManager[Any]
  subscribe(**kwargs: Any) → None

    Subscribe to the object notifications.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabSubscribeError – If the subscription cannot be done

    Return type:

      None

  unsubscribe(**kwargs: Any) → None

    Unsubscribe from the object notifications.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabUnsubscribeError – If the unsubscription cannot be done

    Return type:

      None

class gitlab.mixins.TimeTrackingMixin

  Bases: `object`

  add_spent_time(duration: str, **kwargs: Any) → dict[str, Any]

    Add time spent working on the object.

    Parameters:

      - duration (str) – Duration in human format (e.g. 3h30)

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabTimeTrackingError – If the time tracking update cannot be done

    Return type:

      dict[str, Any]

  manager: RESTManager[Any]
  reset_spent_time(**kwargs: Any) → dict[str, Any]

    Resets the time spent working on the object.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabTimeTrackingError – If the time tracking update cannot be done

    Return type:

      dict[str, Any]

  reset_time_estimate(**kwargs: Any) → dict[str, Any]

    Resets estimated time for the object to 0 seconds.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabTimeTrackingError – If the time tracking update cannot be done

    Return type:

      dict[str, Any]

  time_estimate(duration: str, **kwargs: Any) → dict[str, Any]

    Set an estimated time of work for the object.

    Parameters:

      - duration (str) – Duration in human format (e.g. 3h30)

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabTimeTrackingError – If the time tracking update cannot be done

    Return type:

      dict[str, Any]

  time_stats(**kwargs: Any) → dict[str, Any]

    Get time stats for the object.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabTimeTrackingError – If the time tracking update cannot be done

    Return type:

      dict[str, Any]

class gitlab.mixins.TodoMixin

  Bases: `object`

  manager: RESTManager[Any]
  todo(**kwargs: Any) → None

    Create a todo associated to the object.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabTodoError – If the todo cannot be set

    Return type:

      None

class gitlab.mixins.UpdateMixin(gl: Gitlab, parent: RESTObject | None = None)

  Bases: `RESTManager`[`TObjCls`]

  Parameters:

    - gl (Gitlab)

    - parent (RESTObject | None)

  update(id: str | int | None = None, new_data: dict[str, Any] | None = None, **kwargs: Any) → dict[str, Any]

    Update an object on the server.

    Parameters:

      - id (str | int | None) – ID of the object to update (can be None if not required)

      - new_data (dict[str, Any] | None) – the update data for the object

      - **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Returns:

      The new object data (not a RESTObject)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabUpdateError – If the server cannot perform the request

    Return type:

      dict[str, Any]

class gitlab.mixins.UserAgentDetailMixin

  Bases: `object`

  manager: RESTManager[Any]
  user_agent_detail(**kwargs: Any) → dict[str, Any]

    Get the user agent detail.

    Parameters:

      **kwargs (Any) – Extra options to send to the server (e.g. sudo)

    Raises:

      - GitlabAuthenticationError – If authentication is not correct

      - GitlabGetError – If the server cannot perform the request

    Return type:

      dict[str, Any]

## gitlab.utils module

class gitlab.utils.EncodedId(value: str | int | EncodedId)

  Bases: `str`

  A custom str class that will return the URL-encoded value of the string.

  > - Using it recursively will only url-encode the value once.

  > - Can accept either str or int as input value.

  > - Can be used in an f-string and output the URL-encoded string.

  Reference to documentation on why this is necessary.

  See:

      https://docs.gitlab.com/ee/api/index.html#namespaced-path-encoding
      https://docs.gitlab.com/ee/api/index.html#path-parameters

  Parameters:

    value (str | int | EncodedId)

  Return type:

    EncodedId

class gitlab.utils.MaskingFormatter(fmt: str | None = '%(levelname)s:%(name)s:%(message)s', datefmt: str | None = None, style: Literal['%', '{', '$'] = '%', validate: bool = True, masked: str | None = None)

  Bases: `Formatter`

  A logging formatter that can mask credentials

  Parameters:

    - fmt (str | None)

    - datefmt (str | None)

    - style (Literal['%', '{', '$'])

    - validate (bool)

    - masked (str | None)

  format(record: LogRecord) → str

    Format the specified record as text.

    The record’s attribute dictionary is used as the operand to a string formatting operation which yields the returned string. Before formatting the dictionary, a couple of preparatory steps are carried out. The message attribute of the record is computed using LogRecord.getMessage(). If the formatting string uses the time (as determined by a call to usesTime(), formatTime() is called to format the event time. If there is exception information, it is formatted using formatException() and appended to the message.

    Parameters:

      record (LogRecord)

    Return type:

      str

class gitlab.utils.Retry(max_retries: int, obey_rate_limit: bool | None = True, retry_transient_errors: bool | None = False)

  Bases: `object`

  Parameters:

    - max_retries (int)

    - obey_rate_limit (bool | None)

    - retry_transient_errors (bool | None)

  handle_retry() → bool
    Return type:

      bool

  handle_retry_on_status(status_code: int | None, headers: MutableMapping[str, str] | None = None, reason: str = '') → bool
    Parameters:

      - status_code (int | None)

      - headers (MutableMapping[str, str] | None)

      - reason (str)

    Return type:

      bool

class gitlab.utils.WarnMessageData(message: 'str', show_caller: 'bool')

  Bases: `object`

  Parameters:

    - message (str)

    - show_caller (bool)

  message: str
  show_caller: bool

gitlab.utils.copy_dict(*, src: dict[str, Any], dest: dict[str, Any]) → None
  Parameters:

    - src (dict[str, Any])

    - dest (dict[str, Any])

  Return type:

    None

gitlab.utils.get_base_url(url: str | None = None) → str

  Return the base URL with the trailing slash stripped. If the URL is a Falsy value, return the default URL. :returns: The base URL

  Parameters:

    url (str | None)

  Return type:

    str

gitlab.utils.get_content_type(content_type: str | None) → str
  Parameters:

    content_type (str | None)

  Return type:

    str

gitlab.utils.remove_none_from_dict(data: dict[str, Any]) → dict[str, Any]
  Parameters:

    data (dict[str, Any])

  Return type:

    dict[str, Any]

gitlab.utils.response_content(response: Response, streamed: bool, action: Callable[[bytes], Any] | None, chunk_size: int, *, iterator: bool) → bytes | Iterator[Any] | None
  Parameters:

    - response (Response)

    - streamed (bool)

    - action (Callable[[bytes], Any] | None)

    - chunk_size (int)

    - iterator (bool)

  Return type:

    bytes | Iterator[Any] | None

gitlab.utils.warn(message: str, *, category: type[Warning] | None = None, source: Any | None = None, show_caller: bool = True) → None

  This warnings.warn wrapper function attempts to show the location causing the warning in the user code that called the library.

  It does this by walking up the stack trace to find the first frame located outside the gitlab/ directory. This is helpful to users as it shows them their code that is causing the warning.

  Parameters:

    - message (str)

    - category (type[Warning] | None)

    - source (Any | None)

    - show_caller (bool)

  Return type:

    None