Module airbyte_agent_sdk.connectors.gitlab.connector
Gitlab connector.
Classes
BranchesQuery(connector: GitlabConnector)
: Query class for Branches entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: BranchesSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[BranchesSearchData]
: Search branches records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (BranchesSearchFilter):
- project_id: ID of the project the branch belongs to
- name: Name of the branch
- merged: Whether the branch is merged
- protected: Whether the branch is protected
- developers_can_push: Whether developers can push to the branch
- developers_can_merge: Whether developers can merge into the branch
- can_push: Whether the current user can push
- default: Whether this is the default branch
- web_url: Web URL of the branch
- commit_id: SHA of the head commit
- commit: Head commit details
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: BranchesSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, branch: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Branch
: Get a single project repository branch.
Args: project_id: The ID or URL-encoded path of the project branch: The name of the branch (URL-encoded if it contains special characters) **kwargs: Additional parameters
Returns: Branch
list(self, project_id: str, page: int | None = None, per_page: int | None = None, search: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Branch], BranchesListResultMeta]
: Get a list of repository branches from a project.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page search: Return list of branches containing the search string **kwargs: Additional parameters
Returns: BranchesListResult
CommitsQuery(connector: GitlabConnector)
: Query class for Commits entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: CommitsSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[CommitsSearchData]
: Search commits records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (CommitsSearchFilter):
- project_id: ID of the project the commit belongs to
- id: SHA of the commit
- short_id: Short SHA of the commit
- created_at: Timestamp when the commit was created
- parent_ids: SHAs of parent commits
- title: Title of the commit
- message: Full commit message
- author_name: Name of the commit author
- author_email: Email of the commit author
- authored_date: Date the commit was authored
- committer_name: Name of the committer
- committer_email: Email of the committer
- committed_date: Date the commit was committed
- trailers: Git trailers for the commit
- web_url: Web URL of the commit
- stats: Commit statistics
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: CommitsSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, sha: str, stats: bool | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Commit
: Get a specific commit identified by the commit hash or name of a branch or tag.
Args: project_id: The ID or URL-encoded path of the project sha: The commit hash or name of a repository branch or tag stats: Include commit stats **kwargs: Additional parameters
Returns: Commit
list(self, project_id: str, page: int | None = None, per_page: int | None = None, ref_name: str | None = None, since: str | None = None, until: str | None = None, with_stats: bool | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Commit], CommitsListResultMeta]
: Get a list of repository commits in a project.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page ref_name: The name of a repository branch, tag, or revision range since: Only commits after or on this date (ISO 8601) until: Only commits before or on this date (ISO 8601) with_stats: Include stats about each commit **kwargs: Additional parameters
Returns: CommitsListResult
GitlabConnector(auth_config: GitlabAuthConfig | AirbyteAuthConfig | BaseModel | None = None, on_token_refresh: Any | None = None, api_url: str | None = None)
: Type-safe Gitlab API connector.
Auto-generated from OpenAPI specification with full type safety.
Initialize a new gitlab connector instance.
Supports both local and hosted execution modes:
- Local mode: Provide connector-specific auth config (e.g., GitlabAuthConfig)
- Hosted mode: Provide
AirbyteAuthConfigwith client credentials and eitherconnector_idorworkspace_name
Args: auth_config: Either connector-specific auth config for local mode, or AirbyteAuthConfig for hosted mode on_token_refresh: Optional callback for OAuth2 token refresh persistence. Called with new_tokens dict when tokens are refreshed. Can be sync or async. Example: lambda tokens: save_to_database(tokens) api_url: GitLab instance hostname Examples:
Local mode (direct API calls)
connector = GitlabConnector(auth_config=GitlabAuthConfig(access_token="..."))
Hosted mode with explicit connector_id (no lookup needed)
connector = GitlabConnector( auth_config=AirbyteAuthConfig( airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789", connector_id="existing-source-uuid" ) )
Hosted mode with lookup by workspace_name
connector = GitlabConnector( auth_config=AirbyteAuthConfig( workspace_name="user-123", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789" ) )
Class variables
connector_name
: The type of the None singleton.
connector_version
: The type of the None singleton.
sdk_version
: The type of the None singleton.
Static methods
create(*, airbyte_config: AirbyteAuthConfig, auth_config: "'GitlabAuthConfig' | None" = None, server_side_oauth_secret_id: str | None = None, name: str | None = None, replication_config: "'GitlabReplicationConfig' | None" = None, source_template_id: str | None = None)
: Create a new hosted connector on Airbyte Cloud.
This factory method:
- Creates a source on Airbyte Cloud with the provided credentials
- Returns a connector configured with the new connector_id
Supports two authentication modes:
- Direct credentials: Provide
auth_configwith typed credentials - Server-side OAuth: Provide
server_side_oauth_secret_idfrom OAuth flow
Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. auth_config: Typed auth config. Required unless using server_side_oauth_secret_id. server_side_oauth_secret_id: OAuth secret ID from get_consent_url redirect. When provided, auth_config is not required. name: Optional source name (defaults to connector name + workspace_name) replication_config: Typed replication settings. Required for connectors with x-airbyte-replication-config (REPLICATION mode sources). source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.
Returns: A GitlabConnector instance configured in hosted mode
Raises: ValueError: If neither or both auth_config and server_side_oauth_secret_id provided
Example:
Create a new hosted connector with API key auth
connector = await GitlabConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), auth_config=GitlabAuthConfig(access_token="..."), )
With replication config (required for this connector):
connector = await GitlabConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), auth_config=GitlabAuthConfig(access_token="..."), replication_config=GitlabReplicationConfig(start_date="..."), )
With server-side OAuth:
connector = await GitlabConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), server_side_oauth_secret_id="airbyte_oauth_...secret...", replication_config=GitlabReplicationConfig(start_date="..."), )
Use the connector
result = await connector.execute("entity", "list", {})
get_consent_url(*, airbyte_config: AirbyteAuthConfig, redirect_url: str, name: str | None = None, replication_config: "'GitlabReplicationConfig' | None" = None, source_template_id: str | None = None)
: Initiate server-side OAuth flow with auto-source creation.
Returns a consent URL where the end user should be redirected to grant access.
After completing consent, the source is automatically created and the user is
redirected to your redirect_url with a connector_id query parameter.
Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. redirect_url: URL where users will be redirected after OAuth consent. After consent, user arrives at: redirect_url?connector_id=... name: Optional name for the source. Defaults to connector name + workspace_name. replication_config: Typed replication settings. Merged with OAuth credentials. source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.
Returns: The OAuth consent URL
Example: consent_url = await GitlabConnector.get_consent_url( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), redirect_url="https://myapp.com/oauth/callback", name="My Gitlab Source", replication_config=GitlabReplicationConfig(start_date="..."), )
Redirect user to: consent_url
After consent, user arrives at: https://myapp.com/oauth/callback?connector_id=...
tool_utils(func: _F | None = None, *, update_docstring: bool = True, max_output_chars: int | None = 100000, framework: FrameworkName | None = None, internal_retries: int = 0, should_internal_retry: Callable[[Exception, tuple[Any, ...], dict[str, Any]], bool] | None = None, exhausted_runtime_failure_message: Callable[[Exception, tuple[Any, ...], dict[str, Any]], str | None] | None = None) ‑> ~_F | Callable[[~_F], ~_F]
: Decorator that adds tool utilities like docstring augmentation and output limits.
Composes :func:airbyte_agent_sdk.translation.translate_exceptions for
runtime wrapping (sync/async branch + output-size check + framework
signal translation + optional internal retry loop), and adds
connector-specific docstring augmentation on top of it.
Usage: @mcp.tool() @GitlabConnector.tool_utils async def execute(entity: str, action: str, params: dict): ...
@mcp.tool() @GitlabConnector.tool_utils(update_docstring=False, max_output_chars=None) async def execute(entity: str, action: str, params: dict): ...
@mcp.tool() @GitlabConnector.tool_utils(framework="pydantic_ai", internal_retries=2) async def execute(entity: str, action: str, params: dict): ...
Args:
update_docstring: When True, append connector capabilities to doc.
max_output_chars: Max serialized output size before raising. Use None to disable.
framework: One of "pydantic_ai" | "langchain" | "openai_agents" | "mcp".
Defaults to None → auto-detect by attempting each framework's canonical
import in order. Explicit always wins.
internal_retries: How many transient runtime failures (429/5xx, network,
timeout) to retry silently before surfacing. Default 0. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
should_internal_retry: Optional predicate (error, args, kwargs) -> bool
further restricting which retryable errors are safe for this specific
tool. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
exhausted_runtime_failure_message: Optional callback
(error, args, kwargs) -> str | None. Invoked after internal retries
are exhausted OR were skipped via should_internal_retry returning
False. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
Instance variables
connector_id: str | None
: Get the connector/source ID (only available in hosted mode).
Returns: The connector ID if in hosted mode, None if in local mode.
Example: connector = await GitlabConnector.create(...) print(f"Created connector: {connector.connector_id}")
Methods
check(self) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabCheckResult
: Perform a health check to verify connectivity and credentials.
Executes a lightweight list operation (limit=1) to validate that the connector can communicate with the API and credentials are valid.
Returns: GitlabCheckResult with status ("healthy" or "unhealthy") and optional error message
Example: result = await connector.check() if result.status == "healthy": print("Connection verified!") else: print(f"Check failed: {result.error}")
close(self)
: Close the connector and release resources.
entity_schema(self, entity: str) ‑> dict[str, typing.Any] | None
: Get the JSON schema for an entity.
Args: entity: Entity name (e.g., "contacts", "companies")
Returns: JSON schema dict describing the entity structure, or None if not found.
Example: schema = connector.entity_schema("contacts") if schema: print(f"Contact properties: {list(schema.get('properties', {}).keys())}")
execute(self, entity: str, action: "Literal['list', 'get', 'context_store_search']", params: Mapping[str, Any] | None = None) ‑> Any
: Execute an entity operation with full type safety.
This is the recommended interface for blessed connectors as it:
- Uses the same signature as non-blessed connectors
- Provides full IDE autocomplete for entity/action/params
- Makes migration from generic to blessed connectors seamless
Args: entity: Entity name (e.g., "customers") action: Operation action (e.g., "create", "get", "list") params: Operation parameters (typed based on entity+action)
Returns: Typed response based on the operation
Example: customer = await connector.execute( entity="customers", action="get", params={"id": "cus_123"} )
list_entities(self) ‑> list[dict[str, typing.Any]]
: Get structured data about available entities, actions, and parameters.
Returns a list of entity descriptions with:
- entity_name: Name of the entity (e.g., "contacts", "deals")
- description: Entity description from the first endpoint
- available_actions: List of actions (e.g., ["list", "get", "create"])
- parameters: Dict mapping action -> list of parameter dicts
Example: entities = connector.list_entities() for entity in entities: print(f"{entity['entity_name']}: {entity['available_actions']}")
GroupMembersQuery(connector: GitlabConnector)
: Query class for GroupMembers entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: GroupMembersSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[GroupMembersSearchData]
: Search group_members records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (GroupMembersSearchFilter):
- group_id: ID of the group
- id: ID of the member
- name: Full name of the member
- username: Username of the member
- state: State of the member account
- membership_state: State of the membership
- avatar_url: URL of the member avatar
- web_url: Web URL of the member profile
- access_level: Access level of the member
- created_at: Timestamp when the member was added
- expires_at: Expiration date of the membership
- created_by: User who added the member
- locked: Whether the member account is locked
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: GroupMembersSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, group_id: str, user_id: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Member
: Get a member of a group.
Args: group_id: The ID or URL-encoded path of the group user_id: The user ID of the member **kwargs: Additional parameters
Returns: Member
list(self, group_id: str, page: int | None = None, per_page: int | None = None, query: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Member], GroupMembersListResultMeta]
: Gets a list of group members viewable by the authenticated user.
Args: group_id: The ID or URL-encoded path of the group page: Page number per_page: Number of items per page query: Filter members by name or username **kwargs: Additional parameters
Returns: GroupMembersListResult
GroupMilestonesQuery(connector: GitlabConnector)
: Query class for GroupMilestones entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: GroupMilestonesSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[GroupMilestonesSearchData]
: Search group_milestones records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (GroupMilestonesSearchFilter):
- id: ID of the milestone
- iid: Internal ID of the milestone within the group
- group_id: ID of the group
- title: Title of the milestone
- description: Description of the milestone
- state: State of the milestone
- created_at: Timestamp when the milestone was created
- updated_at: Timestamp when the milestone was last updated
- due_date: Due date of the milestone
- start_date: Start date of the milestone
- expired: Whether the milestone is expired
- web_url: Web URL of the milestone
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: GroupMilestonesSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, group_id: str, milestone_id: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Milestone
: Get a single group milestone.
Args: group_id: The ID or URL-encoded path of the group milestone_id: The ID of the milestone **kwargs: Additional parameters
Returns: Milestone
list(self, group_id: str, page: int | None = None, per_page: int | None = None, state: str | None = None, search: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Milestone], GroupMilestonesListResultMeta]
: Returns a list of group milestones.
Args: group_id: The ID or URL-encoded path of the group page: Page number per_page: Number of items per page state: Filter milestones by state search: Search for milestones by title or description **kwargs: Additional parameters
Returns: GroupMilestonesListResult
GroupsQuery(connector: GitlabConnector)
: Query class for Groups entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: GroupsSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[GroupsSearchData]
: Search groups records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (GroupsSearchFilter):
- id: ID of the group
- web_url: Web URL of the group
- name: Name of the group
- path: URL path of the group
- description: Description of the group
- visibility: Visibility level of the group
- share_with_group_lock: Whether sharing with other groups is locked
- require_two_factor_authentication: Whether two-factor authentication is required
- two_factor_grace_period: Grace period for two-factor authentication
- project_creation_level: Level required to create projects
- auto_devops_enabled: Whether Auto DevOps is enabled
- subgroup_creation_level: Level required to create subgroups
- emails_disabled: Whether emails are disabled
- emails_enabled: Whether emails are enabled
- mentions_disabled: Whether mentions are disabled
- lfs_enabled: Whether Git LFS is enabled
- default_branch_protection: Default branch protection level
- avatar_url: URL of the group avatar
- request_access_enabled: Whether access requests are enabled
- full_name: Full name of the group
- full_path: Full path of the group
- created_at: Timestamp when the group was created
- parent_id: ID of the parent group
- shared_with_groups: Groups this group is shared with
- projects: Projects in the group
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: GroupsSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, id: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Group
: Get all details of a group.
Args: id: The ID or URL-encoded path of the group **kwargs: Additional parameters
Returns: Group
list(self, page: int | None = None, per_page: int | None = None, search: str | None = None, owned: bool | None = None, order_by: str | None = None, sort: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Group], GroupsListResultMeta]
: Get a list of visible groups for the authenticated user.
Args: page: Page number per_page: Number of items per page search: Search for groups by name or path owned: Limit to groups explicitly owned by the current user order_by: Order groups by field sort: Sort order **kwargs: Additional parameters
Returns: GroupsListResult
IssuesQuery(connector: GitlabConnector)
: Query class for Issues entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: IssuesSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[IssuesSearchData]
: Search issues records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (IssuesSearchFilter):
- id: ID of the issue
- iid: Internal ID of the issue within the project
- project_id: ID of the project the issue belongs to
- title: Title of the issue
- description: Description of the issue
- state: State of the issue
- created_at: Timestamp when the issue was created
- updated_at: Timestamp when the issue was last updated
- closed_at: Timestamp when the issue was closed
- labels: Labels assigned to the issue
- assignees: Users assigned to the issue
- type_: Type of the issue
- user_notes_count: Number of user notes on the issue
- merge_requests_count: Number of related merge requests
- upvotes: Number of upvotes
- downvotes: Number of downvotes
- due_date: Due date for the issue
- confidential: Whether the issue is confidential
- discussion_locked: Whether discussion is locked
- issue_type: Type classification of the issue
- web_url: Web URL of the issue
- time_stats: Time tracking statistics
- task_completion_status: Task completion status
- blocking_issues_count: Number of blocking issues
- has_tasks: Whether the issue has tasks
- links: Related resource links
- references: Issue references
- author: Author of the issue
- author_id: ID of the author
- assignee: Primary assignee of the issue
- assignee_id: ID of the primary assignee
- closed_by: User who closed the issue
- closed_by_id: ID of the user who closed the issue
- milestone: Milestone the issue belongs to
- milestone_id: ID of the milestone
- weight: Weight of the issue
- severity: Severity level of the issue
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: IssuesSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, issue_iid: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Issue
: Get a single project issue.
Args: project_id: The ID or URL-encoded path of the project issue_iid: The internal ID of a project's issue **kwargs: Additional parameters
Returns: Issue
list(self, project_id: str, page: int | None = None, per_page: int | None = None, state: str | None = None, scope: str | None = None, order_by: str | None = None, sort: str | None = None, created_after: str | None = None, created_before: str | None = None, updated_after: str | None = None, updated_before: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Issue], IssuesListResultMeta]
: Get a list of a project's issues.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page state: Filter issues by state scope: Filter issues by scope order_by: Return issues ordered by field sort: Return issues sorted in asc or desc order created_after: Return issues created on or after the given time (ISO 8601 format) created_before: Return issues created on or before the given time (ISO 8601 format) updated_after: Return issues updated on or after the given time (ISO 8601 format) updated_before: Return issues updated on or before the given time (ISO 8601 format) **kwargs: Additional parameters
Returns: IssuesListResult
MergeRequestsQuery(connector: GitlabConnector)
: Query class for MergeRequests entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: MergeRequestsSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[MergeRequestsSearchData]
: Search merge_requests records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (MergeRequestsSearchFilter):
- id: ID of the merge request
- iid: Internal ID of the merge request within the project
- project_id: ID of the project
- title: Title of the merge request
- description: Description of the merge request
- state: State of the merge request
- created_at: Timestamp when the merge request was created
- updated_at: Timestamp when the merge request was last updated
- merged_at: Timestamp when the merge request was merged
- closed_at: Timestamp when the merge request was closed
- target_branch: Target branch for the merge request
- source_branch: Source branch for the merge request
- user_notes_count: Number of user notes
- upvotes: Number of upvotes
- downvotes: Number of downvotes
- assignees: Users assigned to the merge request
- reviewers: Users assigned as reviewers
- source_project_id: ID of the source project
- target_project_id: ID of the target project
- labels: Labels assigned to the merge request
- work_in_progress: Whether the merge request is a work in progress
- merge_when_pipeline_succeeds: Whether to merge when pipeline succeeds
- merge_status: Merge status of the merge request
- sha: SHA of the head commit
- merge_commit_sha: SHA of the merge commit
- squash_commit_sha: SHA of the squash commit
- discussion_locked: Whether discussion is locked
- should_remove_source_branch: Whether source branch should be removed
- force_remove_source_branch: Whether to force remove source branch
- reference: Short reference for the merge request
- references: Merge request references
- web_url: Web URL of the merge request
- time_stats: Time tracking statistics
- squash: Whether to squash commits on merge
- task_completion_status: Task completion status
- has_conflicts: Whether the merge request has conflicts
- blocking_discussions_resolved: Whether blocking discussions are resolved
- author: Author of the merge request
- author_id: ID of the author
- assignee: Primary assignee of the merge request
- assignee_id: ID of the primary assignee
- closed_by: User who closed the merge request
- closed_by_id: ID of the user who closed it
- milestone: Milestone the merge request belongs to
- milestone_id: ID of the milestone
- merged_by: User who merged the merge request
- merged_by_id: ID of the user who merged it
- draft: Whether the merge request is a draft
- detailed_merge_status: Detailed merge status
- merge_user: User who performed the merge
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: MergeRequestsSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, merge_request_iid: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.MergeRequest
: Get information about a single merge request.
Args: project_id: The ID or URL-encoded path of the project merge_request_iid: The internal ID of the merge request **kwargs: Additional parameters
Returns: MergeRequest
list(self, project_id: str, page: int | None = None, per_page: int | None = None, state: str | None = None, scope: str | None = None, order_by: str | None = None, sort: str | None = None, created_after: str | None = None, created_before: str | None = None, updated_after: str | None = None, updated_before: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[MergeRequest], MergeRequestsListResultMeta]
: Get all merge requests for a project.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page state: Filter merge requests by state scope: Filter merge requests by scope order_by: Return merge requests ordered by field sort: Return merge requests sorted in asc or desc order created_after: Return merge requests created on or after the given time (ISO 8601 format) created_before: Return merge requests created on or before the given time (ISO 8601 format) updated_after: Return merge requests updated on or after the given time (ISO 8601 format) updated_before: Return merge requests updated on or before the given time (ISO 8601 format) **kwargs: Additional parameters
Returns: MergeRequestsListResult
PipelinesQuery(connector: GitlabConnector)
: Query class for Pipelines entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: PipelinesSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[PipelinesSearchData]
: Search pipelines records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (PipelinesSearchFilter):
- id: ID of the pipeline
- iid: Internal ID of the pipeline within the project
- project_id: ID of the project
- sha: SHA of the commit that triggered the pipeline
- source: Source that triggered the pipeline
- ref: Branch or tag that triggered the pipeline
- status: Status of the pipeline
- created_at: Timestamp when the pipeline was created
- updated_at: Timestamp when the pipeline was last updated
- web_url: Web URL of the pipeline
- name: Name of the pipeline
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: PipelinesSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, pipeline_id: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Pipeline
: Get one pipeline of a project.
Args: project_id: The ID or URL-encoded path of the project pipeline_id: The ID of the pipeline **kwargs: Additional parameters
Returns: Pipeline
list(self, project_id: str, page: int | None = None, per_page: int | None = None, status: str | None = None, ref: str | None = None, order_by: str | None = None, sort: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Pipeline], PipelinesListResultMeta]
: List pipelines in a project.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page status: Filter pipelines by status ref: Filter pipelines by ref order_by: Order pipelines by field sort: Sort order **kwargs: Additional parameters
Returns: PipelinesListResult
ProjectMembersQuery(connector: GitlabConnector)
: Query class for ProjectMembers entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: ProjectMembersSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[ProjectMembersSearchData]
: Search project_members records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (ProjectMembersSearchFilter):
- project_id: ID of the project
- id: ID of the member
- name: Full name of the member
- username: Username of the member
- state: State of the member account
- membership_state: State of the membership
- avatar_url: URL of the member avatar
- web_url: Web URL of the member profile
- access_level: Access level of the member
- created_at: Timestamp when the member was added
- expires_at: Expiration date of the membership
- created_by: User who added the member
- locked: Whether the member account is locked
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: ProjectMembersSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, user_id: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Member
: Get a member of a project.
Args: project_id: The ID or URL-encoded path of the project user_id: The user ID of the member **kwargs: Additional parameters
Returns: Member
list(self, project_id: str, page: int | None = None, per_page: int | None = None, query: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Member], ProjectMembersListResultMeta]
: Gets a list of project members viewable by the authenticated user.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page query: Filter members by name or username **kwargs: Additional parameters
Returns: ProjectMembersListResult
ProjectMilestonesQuery(connector: GitlabConnector)
: Query class for ProjectMilestones entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: ProjectMilestonesSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[ProjectMilestonesSearchData]
: Search project_milestones records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (ProjectMilestonesSearchFilter):
- id: ID of the milestone
- iid: Internal ID of the milestone within the project
- project_id: ID of the project
- title: Title of the milestone
- description: Description of the milestone
- state: State of the milestone
- created_at: Timestamp when the milestone was created
- updated_at: Timestamp when the milestone was last updated
- due_date: Due date of the milestone
- start_date: Start date of the milestone
- expired: Whether the milestone is expired
- web_url: Web URL of the milestone
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: ProjectMilestonesSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, milestone_id: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Milestone
: Get a single project milestone.
Args: project_id: The ID or URL-encoded path of the project milestone_id: The ID of the milestone **kwargs: Additional parameters
Returns: Milestone
list(self, project_id: str, page: int | None = None, per_page: int | None = None, state: str | None = None, search: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Milestone], ProjectMilestonesListResultMeta]
: Returns a list of project milestones.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page state: Filter milestones by state search: Search for milestones by title or description **kwargs: Additional parameters
Returns: ProjectMilestonesListResult
ProjectsQuery(connector: GitlabConnector)
: Query class for Projects entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: ProjectsSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[ProjectsSearchData]
: Search projects records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (ProjectsSearchFilter):
- id: ID of the project
- description: Description of the project
- description_html: HTML-rendered description of the project
- name: Name of the project
- name_with_namespace: Full name including namespace
- path: URL path of the project
- path_with_namespace: Full path including namespace
- created_at: Timestamp when the project was created
- updated_at: Timestamp when the project was last updated
- default_branch: Default branch of the project
- tag_list: List of tags for the project
- topics: List of topics for the project
- ssh_url_to_repo: SSH URL to the repository
- http_url_to_repo: HTTP URL to the repository
- web_url: Web URL of the project
- readme_url: URL to the project README
- avatar_url: URL of the project avatar
- forks_count: Number of forks
- star_count: Number of stars
- last_activity_at: Timestamp of last activity
- namespace: Namespace the project belongs to
- container_registry_image_prefix: Prefix for container registry images
- links: Related resource links
- packages_enabled: Whether packages are enabled
- empty_repo: Whether the repository is empty
- archived: Whether the project is archived
- visibility: Visibility level of the project
- resolve_outdated_diff_discussions: Whether outdated diff discussions are auto-resolved
- container_registry_enabled: Whether container registry is enabled
- container_expiration_policy: Container expiration policy settings
- issues_enabled: Whether issues are enabled
- merge_requests_enabled: Whether merge requests are enabled
- wiki_enabled: Whether wiki is enabled
- jobs_enabled: Whether jobs are enabled
- snippets_enabled: Whether snippets are enabled
- service_desk_enabled: Whether service desk is enabled
- service_desk_address: Email address for the service desk
- can_create_merge_request_in: Whether user can create merge requests
- issues_access_level: Access level for issues
- repository_access_level: Access level for the repository
- merge_requests_access_level: Access level for merge requests
- forking_access_level: Access level for forking
- wiki_access_level: Access level for the wiki
- builds_access_level: Access level for builds
- snippets_access_level: Access level for snippets
- pages_access_level: Access level for pages
- operations_access_level: Access level for operations
- analytics_access_level: Access level for analytics
- emails_disabled: Whether emails are disabled
- shared_runners_enabled: Whether shared runners are enabled
- lfs_enabled: Whether Git LFS is enabled
- creator_id: ID of the project creator
- import_status: Import status of the project
- open_issues_count: Number of open issues
- ci_default_git_depth: Default git depth for CI pipelines
- ci_forward_deployment_enabled: Whether CI forward deployment is enabled
- public_jobs: Whether jobs are public
- build_timeout: Build timeout in seconds
- auto_cancel_pending_pipelines: Auto-cancel pending pipelines setting
- ci_config_path: Path to the CI configuration file
- shared_with_groups: Groups the project is shared with
- only_allow_merge_if_pipeline_succeeds: Whether merge requires pipeline success
- allow_merge_on_skipped_pipeline: Whether merge is allowed on skipped pipeline
- restrict_user_defined_variables: Whether user-defined variables are restricted
- request_access_enabled: Whether access requests are enabled
- only_allow_merge_if_all_discussions_are_resolved: Whether merge requires all discussions resolved
- remove_source_branch_after_merge: Whether source branch is removed after merge
- printing_merge_request_link_enabled: Whether MR link printing is enabled
- merge_method: Merge method used for the project
- statistics: Project statistics
- auto_devops_enabled: Whether Auto DevOps is enabled
- auto_devops_deploy_strategy: Auto DevOps deployment strategy
- autoclose_referenced_issues: Whether referenced issues are auto-closed
- external_authorization_classification_label: External authorization classification label
- requirements_enabled: Whether requirements are enabled
- security_and_compliance_enabled: Whether security and compliance is enabled
- compliance_frameworks: Compliance frameworks for the project
- permissions: User permissions for the project
- keep_latest_artifact: Whether the latest artifact is kept
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: ProjectsSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, id: str | None = None, statistics: bool | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Project
: Get a specific project by ID.
Args: id: The ID or URL-encoded path of the project statistics: Include project statistics **kwargs: Additional parameters
Returns: Project
list(self, page: int | None = None, per_page: int | None = None, membership: bool | None = None, owned: bool | None = None, search: str | None = None, order_by: str | None = None, sort: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Project], ProjectsListResultMeta]
: Get a list of all visible projects across GitLab for the authenticated user.
Args: page: Page number (1-indexed) per_page: Number of items per page (max 100) membership: Limit by projects that the current user is a member of owned: Limit by projects explicitly owned by the current user search: Return list of projects matching the search criteria order_by: Return projects ordered by field sort: Return projects sorted in asc or desc order **kwargs: Additional parameters
Returns: ProjectsListResult
ReleasesQuery(connector: GitlabConnector)
: Query class for Releases entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: ReleasesSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[ReleasesSearchData]
: Search releases records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (ReleasesSearchFilter):
- name: Name of the release
- tag_name: Tag name associated with the release
- description: Description of the release
- created_at: Timestamp when the release was created
- released_at: Timestamp when the release was published
- upcoming_release: Whether this is an upcoming release
- milestones: Milestones associated with the release
- commit_path: Path to the release commit
- tag_path: Path to the release tag
- assets: Assets attached to the release
- evidences: Evidences collected for the release
- links: Related resource links
- author: Author of the release
- author_id: ID of the author
- commit: Commit associated with the release
- commit_id: SHA of the associated commit
- project_id: ID of the project
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: ReleasesSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, tag_name: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Release
: Get a release for the given tag.
Args: project_id: The ID or URL-encoded path of the project tag_name: The Git tag the release is associated with **kwargs: Additional parameters
Returns: Release
list(self, project_id: str, page: int | None = None, per_page: int | None = None, order_by: str | None = None, sort: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Release], ReleasesListResultMeta]
: Paginated list of releases for a given project, sorted by released_at.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page order_by: Order by field sort: Sort order **kwargs: Additional parameters
Returns: ReleasesListResult
TagsQuery(connector: GitlabConnector)
: Query class for Tags entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: TagsSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[TagsSearchData]
: Search tags records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (TagsSearchFilter):
- name: Name of the tag
- message: Annotation message of the tag
- target: SHA the tag points to
- release: Release associated with the tag
- protected: Whether the tag is protected
- commit: Commit the tag points to
- commit_id: SHA of the tagged commit
- project_id: ID of the project
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: TagsSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, project_id: str, tag_name: str, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.Tag
: Get a specific repository tag determined by its name.
Args: project_id: The ID or URL-encoded path of the project tag_name: The name of the tag **kwargs: Additional parameters
Returns: Tag
list(self, project_id: str, page: int | None = None, per_page: int | None = None, search: str | None = None, order_by: str | None = None, sort: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[Tag], TagsListResultMeta]
: Get a list of repository tags from a project, sorted by update date and time in descending order.
Args: project_id: The ID or URL-encoded path of the project page: Page number per_page: Number of items per page search: Return list of tags matching the search criteria order_by: Return tags ordered by field sort: Sort order **kwargs: Additional parameters
Returns: TagsListResult
UsersQuery(connector: GitlabConnector)
: Query class for Users entity operations.
Initialize query with connector reference.
Methods
context_store_search(self, query: UsersSearchQuery, limit: int | None = None, cursor: str | None = None, fields: list[list[str]] | None = None) ‑> airbyte_agent_sdk.connectors.gitlab.models.AirbyteSearchResult[UsersSearchData]
: Search users records from Airbyte cache.
This operation searches cached data from Airbyte syncs. Only available in hosted execution mode.
Available filter fields (UsersSearchFilter):
- id: ID of the user
- name: Full name of the user
- username: Username of the user
- state: State of the user account
- avatar_url: URL of the user avatar
- web_url: Web URL of the user profile
- locked: Whether the user account is locked
Args: query: Filter and sort conditions. Supports operators like eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or. Example: {"filter": {"eq": {"status": "active"}}} limit: Maximum results to return (default 1000) cursor: Pagination cursor from previous response's meta.cursor fields: Field paths to include in results. Each path is a list of keys for nested access. Example: [["id"], ["user", "name"]] returns id and user.name fields.
Returns: UsersSearchResult with typed records, pagination metadata, and optional search metadata
Raises: NotImplementedError: If called in local execution mode
get(self, id: str | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.User
: Get a single user by ID.
Args: id: The ID of the user **kwargs: Additional parameters
Returns: User
list(self, page: int | None = None, per_page: int | None = None, search: str | None = None, active: bool | None = None, **kwargs) ‑> airbyte_agent_sdk.connectors.gitlab.models.GitlabExecuteResultWithMeta[list[User], UsersListResultMeta]
: Get a list of users.
Args: page: Page number per_page: Number of items per page search: Search for users by name, username, or email active: Filter users by active state **kwargs: Additional parameters
Returns: UsersListResult