5166 lines
138 KiB
YAML
5166 lines
138 KiB
YAML
version: 6.56.7
|
|
type: DeclarativeSource
|
|
|
|
|
|
spec:
|
|
type: Spec
|
|
documentation_url: https://docs.airbyte.com/integrations/sources/gitlab
|
|
connection_specification:
|
|
$schema: http://json-schema.org/draft-07/schema#
|
|
title: Source Gitlab Spec
|
|
type: object
|
|
required:
|
|
- credentials
|
|
additionalProperties: true
|
|
properties:
|
|
credentials:
|
|
title: Authorization Method
|
|
type: object
|
|
order: 0
|
|
oneOf:
|
|
- type: object
|
|
title: OAuth2.0
|
|
required:
|
|
- client_id
|
|
- client_secret
|
|
- refresh_token
|
|
- access_token
|
|
- token_expiry_date
|
|
properties:
|
|
auth_type:
|
|
type: string
|
|
const: oauth2.0
|
|
client_id:
|
|
type: string
|
|
description: The API ID of the Gitlab developer application.
|
|
airbyte_secret: true
|
|
client_secret:
|
|
type: string
|
|
description: The API Secret the Gitlab developer application.
|
|
airbyte_secret: true
|
|
access_token:
|
|
type: string
|
|
description: Access Token for making authenticated requests.
|
|
airbyte_secret: true
|
|
token_expiry_date:
|
|
type: string
|
|
description: The date-time when the access token should be refreshed.
|
|
format: date-time
|
|
refresh_token:
|
|
type: string
|
|
description: The key to refresh the expired access_token.
|
|
airbyte_secret: true
|
|
- title: Private Token
|
|
type: object
|
|
required:
|
|
- access_token
|
|
properties:
|
|
auth_type:
|
|
type: string
|
|
const: access_token
|
|
access_token:
|
|
type: string
|
|
title: Private Token
|
|
description: Log into your Gitlab account and then generate a personal
|
|
Access Token.
|
|
airbyte_secret: true
|
|
start_date:
|
|
type: string
|
|
title: Start Date
|
|
description: The date from which you'd like to replicate data for GitLab API,
|
|
in the format YYYY-MM-DDT00:00:00Z. Optional. If not set, all data will be
|
|
replicated. All data generated after this date will be replicated.
|
|
examples:
|
|
- '2021-03-01T00:00:00Z'
|
|
pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
|
|
order: 1
|
|
format: date-time
|
|
api_url:
|
|
type: string
|
|
examples:
|
|
- gitlab.com
|
|
- https://gitlab.com
|
|
- https://gitlab.company.org
|
|
title: API URL
|
|
default: gitlab.com
|
|
description: Please enter your basic URL from GitLab instance.
|
|
order: 2
|
|
groups:
|
|
type: string
|
|
examples:
|
|
- airbyte.io
|
|
title: Groups
|
|
description: '[DEPRECATED] Space-delimited list of groups. e.g. airbyte.io.'
|
|
airbyte_hidden: true
|
|
groups_list:
|
|
type: array
|
|
items:
|
|
type: string
|
|
examples:
|
|
- airbyte.io
|
|
title: Groups
|
|
description: List of groups. e.g. airbyte.io.
|
|
order: 3
|
|
projects:
|
|
type: string
|
|
title: Projects
|
|
examples:
|
|
- airbyte.io/documentation
|
|
description: '[DEPRECATED] Space-delimited list of projects. e.g. airbyte.io/documentation
|
|
meltano/tap-gitlab.'
|
|
airbyte_hidden: true
|
|
projects_list:
|
|
type: array
|
|
items:
|
|
type: string
|
|
title: Projects
|
|
examples:
|
|
- airbyte.io/documentation
|
|
description: Space-delimited list of projects. e.g. airbyte.io/documentation
|
|
meltano/tap-gitlab.
|
|
order: 4
|
|
advanced_auth:
|
|
auth_flow_type: oauth2.0
|
|
predicate_key:
|
|
- credentials
|
|
- auth_type
|
|
predicate_value: oauth2.0
|
|
oauth_config_specification:
|
|
oauth_user_input_from_connector_config_specification:
|
|
type: object
|
|
properties:
|
|
domain:
|
|
type: string
|
|
path_in_connector_config:
|
|
- api_url
|
|
complete_oauth_output_specification:
|
|
type: object
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
path_in_connector_config:
|
|
- credentials
|
|
- access_token
|
|
refresh_token:
|
|
type: string
|
|
path_in_connector_config:
|
|
- credentials
|
|
- refresh_token
|
|
token_expiry_date:
|
|
type: string
|
|
format: date-time
|
|
path_in_connector_config:
|
|
- credentials
|
|
- token_expiry_date
|
|
complete_oauth_server_input_specification:
|
|
type: object
|
|
properties:
|
|
client_id:
|
|
type: string
|
|
client_secret:
|
|
type: string
|
|
complete_oauth_server_output_specification:
|
|
type: object
|
|
properties:
|
|
client_id:
|
|
type: string
|
|
path_in_connector_config:
|
|
- credentials
|
|
- client_id
|
|
client_secret:
|
|
type: string
|
|
path_in_connector_config:
|
|
- credentials
|
|
- client_secret
|
|
config_normalization_rules:
|
|
type: ConfigNormalizationRules
|
|
config_migrations:
|
|
- type: ConfigMigration
|
|
descriptions: Migrates `groups` key to `groups_list` key.
|
|
transformations:
|
|
- type: ConfigAddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["groups_list"]
|
|
value: "{{ config.get('groups').split(' ') if config.get('groups') else [] }}"
|
|
condition: "{{ not config.get('groups_list', False) }}"
|
|
- type: ConfigMigration
|
|
descriptions: Migrates `projects` key to `projects_list` key.
|
|
transformations:
|
|
- type: ConfigAddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["projects_list"]
|
|
value: "{{ config.get('projects').split(' ') if config.get('projects') else [] }}"
|
|
condition: "{{ not config.get('projects_list', False) }}"
|
|
validations:
|
|
- type: DpathValidator
|
|
field_path: ["api_url"]
|
|
validation_strategy:
|
|
type: CustomValidationStrategy
|
|
class_name: source_declarative_manifest.components.ValidateApiUrl
|
|
|
|
definitions:
|
|
# Authenticators
|
|
bearer_authenticator:
|
|
type: BearerAuthenticator
|
|
api_token: "{{ config['credentials']['access_token'] }}"
|
|
oauth_authenticator:
|
|
type: OAuthAuthenticator
|
|
client_id: "{{ config['credentials']['client_id'] }}"
|
|
client_secret: "{{ config['credentials']['client_secret'] }}"
|
|
refresh_token: "{{ config['credentials']['refresh_token'] }}"
|
|
token_refresh_endpoint: "https://{{ config.get('api_url', 'gitlab.com') }}/oauth/token"
|
|
refresh_token_updater:
|
|
refresh_token_error_status_codes: [400, 401]
|
|
refresh_token_error_key: "error"
|
|
refresh_token_error_values: ["invalid_grant"]
|
|
authenticator:
|
|
type: SelectiveAuthenticator
|
|
authenticator_selection_path: ["credentials", "auth_type"]
|
|
authenticators:
|
|
oauth2.0: "#/definitions/oauth_authenticator"
|
|
access_token: "#/definitions/bearer_authenticator"
|
|
|
|
# Requester
|
|
requester:
|
|
type: HttpRequester
|
|
url_base: >-
|
|
{% set parts = config.get('api_url', 'gitlab.com').split('://') %}
|
|
{{ parts[0] if parts|length > 1 else 'https' }}://{{ parts[1] if parts[1] else parts[0] }}/api/v4/
|
|
http_method: GET
|
|
authenticator: "#/definitions/authenticator"
|
|
use_cache: true
|
|
error_handler:
|
|
type: DefaultErrorHandler
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: IGNORE
|
|
http_codes: [403]
|
|
- type: HttpResponseFilter
|
|
action: FAIL
|
|
http_codes: [401]
|
|
error_message: Unable to refresh the `access_token`, please re-authenticate in Sources > Settings.
|
|
- type: HttpResponseFilter
|
|
action: RETRY
|
|
http_codes: [500]
|
|
- type: HttpResponseFilter
|
|
action: FAIL
|
|
http_codes: [404]
|
|
error_message: Groups and/or projects that you provide are invalid or you don't have permission to view it.
|
|
request_parameters: "{{ parameters.get('request_parameters', {}) }}"
|
|
|
|
# Selector
|
|
selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path: []
|
|
|
|
# Paginator
|
|
paginator:
|
|
type: DefaultPaginator
|
|
pagination_strategy:
|
|
type: PageIncrement
|
|
page_size: 50
|
|
start_from_page: 1
|
|
inject_on_first_request: false
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: per_page
|
|
inject_into: request_parameter
|
|
page_token_option:
|
|
type: RequestOption
|
|
field_name: page
|
|
inject_into: request_parameter
|
|
|
|
# Retrievers
|
|
retriever:
|
|
type: SimpleRetriever
|
|
record_selector: "#/definitions/selector"
|
|
requester: "#/definitions/requester"
|
|
paginator: "#/definitions/paginator"
|
|
|
|
group_streams_retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: CustomPartitionRouter
|
|
class_name: source_declarative_manifest.components.GroupStreamsPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: "id"
|
|
stream: "#/definitions/groups_list_stream"
|
|
partition_field: "id"
|
|
- type: ParentStreamConfig
|
|
parent_key: "id"
|
|
stream: "#/definitions/include_descendant_groups_stream"
|
|
partition_field: "id"
|
|
|
|
group_child_streams_retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: "id"
|
|
stream: "#/definitions/groups_stream"
|
|
partition_field: "id"
|
|
|
|
projects_streams_retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: CustomPartitionRouter
|
|
class_name: source_declarative_manifest.components.ProjectStreamsPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: "id"
|
|
stream: "#/definitions/groups_stream"
|
|
partition_field: "id"
|
|
|
|
projects_child_streams_retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: "id"
|
|
stream: "#/definitions/projects_stream"
|
|
partition_field: "id"
|
|
|
|
pipelines_child_streams_retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: "id"
|
|
stream: "#/definitions/pipelines_stream"
|
|
partition_field: "id"
|
|
|
|
# Transformations
|
|
add_project_id_field:
|
|
type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["project_id"]
|
|
value: "{{ stream_slice.id }}"
|
|
|
|
add_group_id_field:
|
|
type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["group_id"]
|
|
value: "{{ stream_slice.id }}"
|
|
|
|
# Service streams
|
|
base_full_refresh_stream:
|
|
type: DeclarativeStream
|
|
primary_key: "id"
|
|
|
|
base_groups_child_stream:
|
|
$ref: "#/definitions/base_full_refresh_stream"
|
|
retriever: "#/definitions/group_child_streams_retriever"
|
|
|
|
base_projects_child_stream:
|
|
$ref: "#/definitions/base_full_refresh_stream"
|
|
retriever: "#/definitions/projects_child_streams_retriever"
|
|
|
|
base_projects_incremental_child_stream:
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
incremental_sync:
|
|
type: DatetimeBasedCursor
|
|
cursor_field: "{{ parameters.get('cursor_field', 'updated_at') }}"
|
|
start_datetime: "{{ config.get('start_date', '2014-01-01T00:00:00Z') }}"
|
|
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
|
|
cursor_datetime_formats:
|
|
- "%Y-%m-%dT%H:%M:%S.%f%z"
|
|
- "%Y-%m-%dT%H:%M:%S.%fZ"
|
|
- "%Y-%m-%dT%H:%M:%S%z"
|
|
- "%Y-%m-%dT%H:%M:%SZ"
|
|
cursor_granularity: "PT1S"
|
|
step: "P180DT1S"
|
|
start_time_option:
|
|
type: RequestOption
|
|
field_name: "{{ parameters.get('lower_bound_filter', 'updated_after') }}"
|
|
inject_into: request_parameter
|
|
end_time_option:
|
|
type: RequestOption
|
|
field_name: "{{ parameters.get('upper_bound_filter', 'updated_before') }}"
|
|
inject_into: request_parameter
|
|
|
|
groups_list_stream:
|
|
name: "groups_list"
|
|
$ref: "#/definitions/base_full_refresh_stream"
|
|
retriever: "#/definitions/retriever"
|
|
$parameters:
|
|
path: "groups"
|
|
request_parameters: {}
|
|
|
|
include_descendant_groups_stream:
|
|
name: "include_descendant_groups"
|
|
$ref: "#/definitions/base_full_refresh_stream"
|
|
retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: ListPartitionRouter
|
|
cursor_field: "slice"
|
|
values: |
|
|
{% set slices = [] %}
|
|
{% for group_id in config.get('groups_list', []) %}
|
|
{% set _ = slices.append({'path': 'groups/' + group_id}) %}
|
|
{% set _ = slices.append({'path': 'groups/' + group_id + '/descendant_groups'}) %}
|
|
{% endfor %}
|
|
{{ slices }}
|
|
$parameters:
|
|
path: "{{ stream_slice.slice.path }}"
|
|
request_parameters: {}
|
|
|
|
# Full refresh streams
|
|
## Groups-based streams
|
|
groups_stream:
|
|
name: "groups"
|
|
$ref: "#/definitions/base_full_refresh_stream"
|
|
retriever: "#/definitions/group_streams_retriever"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path:
|
|
- projects
|
|
value: |
|
|
{% set projects = [] %}
|
|
{% for project in (record.get('projects') or []): %}
|
|
{% set _ = projects.append({'id': project['id'], 'path_with_namespace': project['path_with_namespace']}) %}
|
|
{% endfor %}
|
|
{{ projects }}
|
|
$parameters:
|
|
path: "groups/{{ stream_slice.id }}"
|
|
request_parameters: {}
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/groups"
|
|
|
|
group_milestones_stream:
|
|
name: "group_milestones"
|
|
$ref: "#/definitions/base_groups_child_stream"
|
|
$parameters:
|
|
path: "groups/{{ stream_slice.id }}/milestones"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/group_milestones"
|
|
|
|
group_members_stream:
|
|
name: "group_members"
|
|
$ref: "#/definitions/base_groups_child_stream"
|
|
primary_key: ["group_id", "id"]
|
|
transformations:
|
|
- "#/definitions/add_group_id_field"
|
|
$parameters:
|
|
path: "groups/{{ stream_slice.id }}/members"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/group_members"
|
|
|
|
group_labels_stream:
|
|
name: "group_labels"
|
|
$ref: "#/definitions/base_groups_child_stream"
|
|
primary_key: ["group_id", "id"]
|
|
transformations:
|
|
- "#/definitions/add_group_id_field"
|
|
$parameters:
|
|
path: "groups/{{ stream_slice.id }}/labels"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/group_labels"
|
|
|
|
group_issue_boards_stream:
|
|
name: "group_issue_boards"
|
|
$ref: "#/definitions/base_groups_child_stream"
|
|
transformations:
|
|
- "#/definitions/add_group_id_field"
|
|
$parameters:
|
|
path: "groups/{{ stream_slice.id }}/boards"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/group_issue_boards"
|
|
|
|
epics_stream:
|
|
name: "epics"
|
|
$ref: "#/definitions/base_groups_child_stream"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["author_id"]
|
|
value: "{{ (record.get('author') or {}).get('id') }}"
|
|
primary_key: "iid"
|
|
$parameters:
|
|
path: "groups/{{ stream_slice.id }}/epics"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/epics"
|
|
|
|
epic_issues_stream:
|
|
name: "epic_issues"
|
|
$ref: "#/definitions/base_groups_child_stream"
|
|
primary_key: "iid"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["milestone_id"]
|
|
value: "{{ (record.get('milestone') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["assignee_id"]
|
|
value: "{{ (record.get('assignee') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["author_id"]
|
|
value: "{{ (record.get('author') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["assignees"]
|
|
value: |
|
|
{% set ids = [] %}
|
|
{% for data in (record.get('assignees') or []) %}
|
|
{% set _ = ids.append(data.get('id')) %}
|
|
{% endfor %}
|
|
{{ ids }}
|
|
retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: "iid"
|
|
stream: "#/definitions/epics_stream"
|
|
partition_field: "iid"
|
|
$parameters:
|
|
path: "groups/{{ stream_slice.parent_slice.id }}/epics/{{ stream_slice.iid }}/issues"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/epic_issues"
|
|
|
|
## Projects-based streams
|
|
projects_stream:
|
|
name: "projects"
|
|
$ref: "#/definitions/base_full_refresh_stream"
|
|
retriever: "#/definitions/projects_streams_retriever"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}"
|
|
request_parameters:
|
|
statistics: 1
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/projects"
|
|
|
|
project_milestones_stream:
|
|
name: "project_milestones"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/milestones"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/project_milestones"
|
|
|
|
project_members_stream:
|
|
name: "project_members"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
primary_key: ["project_id", "id"]
|
|
transformations:
|
|
- "#/definitions/add_project_id_field"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/members"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/project_members"
|
|
|
|
project_labels_stream:
|
|
name: "project_labels"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
primary_key: ["project_id", "id"]
|
|
transformations:
|
|
- "#/definitions/add_project_id_field"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/labels"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/project_labels"
|
|
|
|
branches_stream:
|
|
name: "branches"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
transformations:
|
|
- "#/definitions/add_project_id_field"
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["commit_id"]
|
|
value: "{{ (record.get('commit') or {}).get('id') }}"
|
|
primary_key: ["project_id", "name"]
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/repository/branches"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/branches"
|
|
|
|
releases_stream:
|
|
name: "releases"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
primary_key: "name"
|
|
transformations:
|
|
- "#/definitions/add_project_id_field"
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["author_id"]
|
|
value: "{{ (record.get('author') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["commit_id"]
|
|
value: "{{ (record.get('commit') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["milestones"]
|
|
value: |
|
|
{% set ids = [] %}
|
|
{% for data in record.get('milestones', []) %}
|
|
{% set _ = ids.append(data.get('id')) %}
|
|
{% endfor %}
|
|
{{ ids }}
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/releases"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/releases"
|
|
|
|
tags_stream:
|
|
name: "tags"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
primary_key: ["project_id", "name"]
|
|
transformations:
|
|
- "#/definitions/add_project_id_field"
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["commit_id"]
|
|
value: "{{ (record.get('commit') or {}).get('id') }}"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/repository/tags"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/tags"
|
|
|
|
users_stream:
|
|
name: "users"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
primary_key: "name"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/users"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/users"
|
|
|
|
deployments_stream:
|
|
name: "deployments"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
transformations:
|
|
- "#/definitions/add_project_id_field"
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["user_username"]
|
|
value: "{{ (record.get('user') or {}).get('username') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["user_full_name"]
|
|
value: "{{ (record.get('user') or {}).get('name') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["environment_name"]
|
|
value: "{{ (record.get('environment') or {}).get('name') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["user_id"]
|
|
value: "{{ (record.get('user') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["environment_id"]
|
|
value: "{{ (record.get('environment') or {}).get('id') }}"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/deployments"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/deployments"
|
|
|
|
merge_request_commits_stream:
|
|
name: "merge_request_commits"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
retriever:
|
|
$ref: "#/definitions/retriever"
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: "iid"
|
|
stream: "#/definitions/merge_requests_stream"
|
|
partition_field: "iid"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["project_id"]
|
|
value: "{{ stream_slice.parent_slice.id }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["merge_request_iid"]
|
|
value: "{{ stream_slice.iid }}"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.parent_slice.id }}/merge_requests/{{ stream_slice.iid }}/commits"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/merge_request_commits"
|
|
|
|
pipelines_extended_stream:
|
|
name: "pipelines_extended"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
retriever: "#/definitions/pipelines_child_streams_retriever"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.parent_slice.id }}/pipelines/{{ stream_slice.id }}"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/pipelines_extended"
|
|
|
|
jobs_stream:
|
|
name: "jobs"
|
|
$ref: "#/definitions/base_projects_child_stream"
|
|
retriever: "#/definitions/pipelines_child_streams_retriever"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["project_id"]
|
|
value: "{{ stream_slice.parent_slice.id }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["user_id"]
|
|
value: "{{ (record.get('user') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["pipeline_id"]
|
|
value: "{{ (record.get('pipeline') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["runner_id"]
|
|
value: "{{ (record.get('runner') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["commit_id"]
|
|
value: "{{ (record.get('commit') or {}).get('id') }}"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.parent_slice.id }}/pipelines/{{ stream_slice.id }}/jobs"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/jobs"
|
|
|
|
# Incremental streams
|
|
commits_stream:
|
|
name: "commits"
|
|
$ref: "#/definitions/base_projects_incremental_child_stream"
|
|
transformations:
|
|
- "#/definitions/add_project_id_field"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/repository/commits"
|
|
cursor_field: "created_at"
|
|
lower_bound_filter: "since"
|
|
upper_bound_filter: "until"
|
|
request_parameters:
|
|
with_stats: "true"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/commits"
|
|
|
|
issues_stream:
|
|
name: "issues"
|
|
$ref: "#/definitions/base_projects_incremental_child_stream"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["author_id"]
|
|
value: "{{ (record.get('author') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["assignee_id"]
|
|
value: "{{ (record.get('assignee') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["closed_by_id"]
|
|
value: "{{ (record.get('closed_by') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["milestone_id"]
|
|
value: "{{ (record.get('milestone') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["assignees"]
|
|
value: |
|
|
{% set ids = [] %}
|
|
{% for data in record.get('assignees', []) %}
|
|
{% set _ = ids.append(data.get('id')) %}
|
|
{% endfor %}
|
|
{{ ids }}
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/issues"
|
|
request_parameters:
|
|
scope: "all"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/issues"
|
|
|
|
merge_requests_stream:
|
|
name: "merge_requests"
|
|
$ref: "#/definitions/base_projects_incremental_child_stream"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- type: AddedFieldDefinition
|
|
path: ["author_id"]
|
|
value: "{{ (record.get('author') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["assignee_id"]
|
|
value: "{{ (record.get('assignee') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["closed_by_id"]
|
|
value: "{{ (record.get('closed_by') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["milestone_id"]
|
|
value: "{{ (record.get('milestone') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["merged_by_id"]
|
|
value: "{{ (record.get('merged_by') or {}).get('id') }}"
|
|
- type: AddedFieldDefinition
|
|
path: ["assignees"]
|
|
value: |
|
|
{% set ids = [] %}
|
|
{% for data in record.get('assignees', []) %}
|
|
{% set _ = ids.append(data.get('id')) %}
|
|
{% endfor %}
|
|
{{ ids }}
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/merge_requests"
|
|
request_parameters:
|
|
scope: "all"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/merge_requests"
|
|
|
|
pipelines_stream:
|
|
name: "pipelines"
|
|
$ref: "#/definitions/base_projects_incremental_child_stream"
|
|
$parameters:
|
|
path: "projects/{{ stream_slice.id }}/pipelines"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/pipelines"
|
|
|
|
|
|
|
|
streams:
|
|
# Groups-based streams
|
|
- "#/definitions/groups_stream"
|
|
- "#/definitions/group_milestones_stream"
|
|
- "#/definitions/group_members_stream"
|
|
- "#/definitions/group_labels_stream"
|
|
- "#/definitions/group_issue_boards_stream"
|
|
- "#/definitions/epics_stream"
|
|
- "#/definitions/epic_issues_stream"
|
|
|
|
# Projects-based streams
|
|
- "#/definitions/projects_stream"
|
|
- "#/definitions/project_milestones_stream"
|
|
- "#/definitions/project_members_stream"
|
|
- "#/definitions/project_labels_stream"
|
|
- "#/definitions/branches_stream"
|
|
- "#/definitions/releases_stream"
|
|
- "#/definitions/tags_stream"
|
|
- "#/definitions/users_stream"
|
|
- "#/definitions/deployments_stream"
|
|
- "#/definitions/commits_stream"
|
|
- "#/definitions/issues_stream"
|
|
- "#/definitions/merge_requests_stream"
|
|
- "#/definitions/merge_request_commits_stream"
|
|
- "#/definitions/pipelines_stream"
|
|
- "#/definitions/pipelines_extended_stream"
|
|
- "#/definitions/jobs_stream"
|
|
|
|
check:
|
|
type: CheckStream
|
|
stream_names:
|
|
- groups
|
|
|
|
schemas:
|
|
branches:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
project_id:
|
|
description: ID of the project to which this branch belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: Name of the branch.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
merged:
|
|
description: Indicates if the changes in this branch have been merged into another
|
|
branch.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
protected:
|
|
description: Indicates if the branch is protected to prevent direct pushes.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
developers_can_push:
|
|
description: Indicates if developers can push changes to this branch.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
developers_can_merge:
|
|
description: Indicates if developers can merge changes to this branch.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
can_push:
|
|
description: Indicates if the user has permission to push changes to this branch.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
default:
|
|
description: Indicates if this is the default branch of the project.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
web_url:
|
|
description: URL to view the branch in a web browser.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
commit_id:
|
|
description: ID of the commit associated with this branch.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
commit:
|
|
description: Details about the commit associated with this branch.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
commits:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
project_id:
|
|
description: ID of the project to which the commit belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
id:
|
|
description: Unique identifier of the commit.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
short_id:
|
|
description: Shortened version of the commit's unique identifier.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Date and time when the commit record was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
parent_ids:
|
|
description: Array of unique identifiers of parent commits if the commit has multiple
|
|
parents.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
title:
|
|
description: Title or summary of the commit message.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
message:
|
|
description: Description or text message associated with the commit.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
author_name:
|
|
description: Name of the author who created the commit.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
author_email:
|
|
description: Email of the author who created the commit.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
authored_date:
|
|
description: Date and time when the commit was authored.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
extended_trailers:
|
|
description: 'Additional information or metadata added to the commit. Eg: ''Cc''
|
|
field for carbon copy email addresses.'
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
Cc:
|
|
description: Carbon copy email addresses associated with the commit.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
committer_name:
|
|
description: Name of the committer who committed the changes.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
committer_email:
|
|
description: Email of the committer who committed the changes.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
committed_date:
|
|
description: Date and time when the commit was committed.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
trailers:
|
|
description: Metadata information provided below the commit message.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
web_url:
|
|
description: URL link to view the commit details in a web browser.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
stats:
|
|
description: Statistics related to the commit changes like additions, deletions,
|
|
and total changes.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
additions:
|
|
description: Number of lines added in the commit.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
deletions:
|
|
description: Number of lines deleted in the commit.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
total:
|
|
description: Total number of lines changed in the commit.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
deployments:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identifier of the deployment
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Identification number of the deployment
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
status:
|
|
description: Status of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ref:
|
|
description: Reference of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
sha:
|
|
description: SHA of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
environment_name:
|
|
description: Name of the environment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: The timestamp when the deployment was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Timestamp when the deployment was last updated
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
user:
|
|
description: User associated with the deployment
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
user_full_name:
|
|
description: Full name of the user associated with the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
user_username:
|
|
description: Username of the user associated with the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
user_id:
|
|
description: Unique identifier of the user associated with the deployment
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
environment:
|
|
description: Environment information of the deployment
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
environment_id:
|
|
description: Unique identifier of the environment
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_id:
|
|
description: Unique identifier of the project
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
deployable:
|
|
description: Details of the deployment job
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
commit:
|
|
description: Information about the commit associated with the deployment
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
author_email:
|
|
description: Email of the author of the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
author_name:
|
|
description: Name of the author of the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Timestamp when the commit was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
id:
|
|
description: Unique identifier of the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
message:
|
|
description: Message associated with the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
short_id:
|
|
description: Short identifier of the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
title:
|
|
description: Title of the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
coverage:
|
|
description: Coverage information of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Timestamp when the deployment was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
finished_at:
|
|
description: Timestamp when the deployment was finished
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
id:
|
|
description: Unique identifier of the deployment
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: Name of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ref:
|
|
description: Reference of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
runner:
|
|
description: Runner information for the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
stage:
|
|
description: Stage of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
started_at:
|
|
description: Timestamp when the deployment was started
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
status:
|
|
description: Status of the deployment
|
|
type:
|
|
- 'null'
|
|
- string
|
|
tag:
|
|
description: Tag information for the deployment
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
project:
|
|
description: Details of the project where the deployment occurred
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
ci_job_token_scope_enabled:
|
|
description: Flag indicating if the CI job token scope is enabled for
|
|
the project
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
user:
|
|
description: User associated with the deployment
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
description: Unique identifier of the user
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: Name of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
description: Username of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: State information of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL of the user's avatar
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL for accessing the user's information
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Timestamp when the user was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
bio:
|
|
description: Bio information of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
location:
|
|
description: Location information of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
public_email:
|
|
description: Public email of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
skype:
|
|
description: Skype ID of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
linkedin:
|
|
description: Linkedin profile of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
twitter:
|
|
description: Twitter handle of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
website_url:
|
|
description: URL for the user's website
|
|
type:
|
|
- 'null'
|
|
- string
|
|
organization:
|
|
description: Organization information of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
pipeline:
|
|
description: Details of the pipeline used for the deployment
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
created_at:
|
|
description: Timestamp when the pipeline associated with the deployment
|
|
was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
id:
|
|
description: Unique identifier of the pipeline
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
ref:
|
|
description: Reference of the pipeline
|
|
type:
|
|
- 'null'
|
|
- string
|
|
sha:
|
|
description: SHA of the pipeline
|
|
type:
|
|
- 'null'
|
|
- string
|
|
status:
|
|
description: Status of the pipeline
|
|
type:
|
|
- 'null'
|
|
- string
|
|
updated_at:
|
|
description: Timestamp when the pipeline associated with the deployment
|
|
was last updated
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
web_url:
|
|
description: URL for accessing the pipeline in a web browser
|
|
type:
|
|
- 'null'
|
|
- string
|
|
epic_issues:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: ID of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal ID of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_id:
|
|
description: ID of the project the epic issue belongs to.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: Title of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: State of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Timestamp when the epic issue was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Timestamp when the epic issue was last updated.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
closed_at:
|
|
description: Timestamp when the epic issue was closed.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
labels:
|
|
description: List of labels associated with the epic issue.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
milestone:
|
|
description: Information about the milestone associated with the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
milestone_id:
|
|
description: ID of the milestone associated with the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
assignees:
|
|
description: List of users assigned to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
description: Information about an assignee.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
assignee:
|
|
description: Information about the user assigned to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
assignee_id:
|
|
description: ID of the user assigned to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
author:
|
|
description: Information about the user who authored the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
author_id:
|
|
description: ID of the user who authored the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
user_notes_count:
|
|
description: Number of user notes added to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
upvotes:
|
|
description: Number of upvotes received for the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
downvotes:
|
|
description: Number of downvotes received for the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
due_date:
|
|
description: Due date set for the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
confidential:
|
|
description: Indicates if the epic issue is confidential.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
weight:
|
|
description: Weight assigned to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
discussion_locked:
|
|
description: Indicates if the discussion on the epic issue is locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
web_url:
|
|
description: URL link to access the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
time_stats:
|
|
description: Time-related statistics for the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
_links:
|
|
description: Links related to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
epic_issue_id:
|
|
description: ID of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
merge_requests_count:
|
|
description: Number of merge requests related to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
type:
|
|
description: Type of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
task_status:
|
|
description: Status of tasks associated with the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
moved_to_id:
|
|
description: ID of the epic issue it was moved to.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iteration:
|
|
description: Information about the iteration associated with the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
sequence:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group_id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
created_at:
|
|
description: Timestamp when the iteration was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Timestamp when the iteration was last updated.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
start_date:
|
|
description: Start date of the iteration.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
due_date:
|
|
description: Due date set for the iteration.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
web_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
has_tasks:
|
|
description: Indicates if the epic issue has associated tasks.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
blocking_issues_count:
|
|
description: Number of blocking issues related to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
closed_by:
|
|
description: Information about the user who closed the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
state:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
references:
|
|
description: References related to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
full:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
relative:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
short:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
epic:
|
|
description: Information about the epic that the issue belongs to.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
group_id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
human_readable_end_date:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
human_readable_timestamp:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
issue_type:
|
|
description: Type of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
severity:
|
|
description: Severity level of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
service_desk_reply_to:
|
|
description: ID of the service desk reply related to the epic issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
task_completion_status:
|
|
description: Status of task completion for the epic issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
count:
|
|
description: Total count of tasks.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
completed_count:
|
|
description: Number of completed tasks.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
relative_position:
|
|
description: Relative position of the epic issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
epic_iid:
|
|
description: Internal ID of the epic the issue belongs to.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
epics:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique ID of the epic
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal ID of the epic
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group_id:
|
|
description: ID of the group to which the epic belongs
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
parent_id:
|
|
description: ID of the parent epic, if any
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: Title of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: Current state of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
confidential:
|
|
description: Flag indicating if the epic is confidential
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
web_url:
|
|
description: URL for viewing the epic in a web browser
|
|
type:
|
|
- 'null'
|
|
- string
|
|
reference:
|
|
description: Reference for the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
references:
|
|
description: References associated with the epic
|
|
type:
|
|
- 'null'
|
|
- object
|
|
author:
|
|
description: Author of the epic
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
author_id:
|
|
description: ID of the author
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
start_date:
|
|
description: Start date of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
start_date_is_fixed:
|
|
description: Flag indicating if the start date is fixed
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
start_date_fixed:
|
|
description: Fixed start date of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
start_date_from_inherited_source:
|
|
description: Start date inherited from another source
|
|
type:
|
|
- 'null'
|
|
- string
|
|
- boolean
|
|
end_date:
|
|
description: End date of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
due_date:
|
|
description: Due date of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
due_date_is_fixed:
|
|
description: Flag indicating if the due date is fixed
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
due_date_fixed:
|
|
description: Fixed due date of the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
due_date_from_inherited_source:
|
|
description: Due date inherited from another source
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Date and time when the epic was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Date and time when the epic was last updated
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
closed_at:
|
|
description: Date and time when the epic was closed
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
labels:
|
|
description: Labels associated with the epic
|
|
type:
|
|
- 'null'
|
|
- array
|
|
upvotes:
|
|
description: Number of upvotes received by the epic
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
downvotes:
|
|
description: Number of downvotes received by the epic
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
parent_iid:
|
|
description: Internal ID of the parent epic
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
color:
|
|
description: Color associated with the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
text_color:
|
|
description: Text color associated with the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_edit_url:
|
|
description: URL for editing the epic in a web browser
|
|
type:
|
|
- 'null'
|
|
- string
|
|
due_date_from_milestones:
|
|
description: Due date linked to milestone
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
_links:
|
|
description: Contains links to related resources for the epic
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
self:
|
|
description: Link to the epic resource itself
|
|
type:
|
|
- 'null'
|
|
- string
|
|
epic_issues:
|
|
description: Link to the list of issues associated with the epic
|
|
type:
|
|
- 'null'
|
|
- string
|
|
group:
|
|
description: Link to the group to which the epic belongs
|
|
type:
|
|
- 'null'
|
|
- string
|
|
parent:
|
|
description: Link to the parent epic, if any
|
|
type:
|
|
- 'null'
|
|
- string
|
|
start_date_from_milestones:
|
|
description: Start date linked to milestone
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
group_issue_boards:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique identifier of the board.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: The name of the board.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
hide_backlog_list:
|
|
description: Flag indicating whether the backlog list is hidden.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
hide_closed_list:
|
|
description: Flag indicating whether the closed list is hidden.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
project:
|
|
description: Additional information or settings related to the project.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
lists:
|
|
description: A collection of lists on the issue board.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
description: Information about a specific list in the issue board.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
description: The ID of the list in the board.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
label:
|
|
description: The label or title of the list.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
description: The unique identifier of the list label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: The name of the list label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: The description of the list label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description_html:
|
|
description: The HTML formatted description of the list label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
text_color:
|
|
description: The text color of the list label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
color:
|
|
description: The color associated with the list label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
position:
|
|
description: The position of the list in the board.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group_id:
|
|
description: The ID of the group to which the board belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group:
|
|
description: Details of the group to which the issue board belongs.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
description: The ID of the group to which the board belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: The name of the group to which the board belongs.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: The URL of the group's web interface.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
group_labels:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
group_id:
|
|
description: The unique identifier of the group to which the label belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
id:
|
|
description: The unique identifier of the group label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: The name of the group label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
color:
|
|
description: The color associated with the group label for visual identification.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: The short description of the group label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description_html:
|
|
description: The HTML formatted description of the group label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
text_color:
|
|
description: The text color used for the group label.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
subscribed:
|
|
description: Indicates if the user is subscribed to notifications for this group
|
|
label.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
open_issues_count:
|
|
description: The total number of open issues in the group label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
closed_issues_count:
|
|
description: The total number of closed issues in the group label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
open_merge_requests_count:
|
|
description: The total number of open merge requests in the group label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group_members:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
group_id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
membership_state:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
access_level:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
created_at:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
expires_at:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
created_by:
|
|
avatar_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
locked:
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
group_milestones:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique identifier of the milestone
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: The internal identifier of the milestone
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group_id:
|
|
description: The unique identifier of the group to which the milestone belongs
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: The title or name of the milestone
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: The detailed description of the milestone
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: The current state of the milestone (e.g., open, closed)
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: The datetime when the milestone was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: The datetime when the milestone was last updated
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
due_date:
|
|
description: The date by which the milestone is expected to be completed
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
start_date:
|
|
description: The date when the milestone is scheduled to start
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
expired:
|
|
description: Indicates whether the milestone has expired
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
web_url:
|
|
description: The URL to access the milestone in the web interface
|
|
type:
|
|
- 'null'
|
|
- string
|
|
groups:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
projects:
|
|
description: List of projects within the group.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identifier of the project.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
path_with_namespace:
|
|
description: Path with namespace of the project.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
id:
|
|
description: Unique identifier for the group.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
organization_id:
|
|
description: Identifier of the organization to which the group belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
default_branch_protection_defaults:
|
|
description: Default branch protection settings for the group.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
allow_force_push:
|
|
description: Indicates if force push is allowed.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
allowed_to_merge:
|
|
description: List of users/groups allowed to merge code.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
access_level:
|
|
description: Access level for merging code.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
allowed_to_push:
|
|
description: List of users/groups allowed to push code.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
access_level:
|
|
description: Access level for pushing code.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
web_url:
|
|
description: URL for accessing the group via web.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name:
|
|
description: Name of the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
path:
|
|
description: Path of the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
visibility:
|
|
description: Visibility level of the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
- integer
|
|
- boolean
|
|
share_with_group_lock:
|
|
description: Indicates if sharing with group is locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
require_two_factor_authentication:
|
|
description: Indicates if two-factor authentication is required.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
two_factor_grace_period:
|
|
description: Grace period for two-factor authentication.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_creation_level:
|
|
description: Project creation level for the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
auto_devops_enabled:
|
|
description: Indicates if Auto DevOps is enabled for this group.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
subgroup_creation_level:
|
|
description: Subgroup creation level for the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
enabled_git_access_protocol:
|
|
description: Indicates the enabled Git access protocol for the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
emails_disabled:
|
|
description: Indicates if emails are disabled for the group.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
emails_enabled:
|
|
description: Indicates if emails are enabled for the group.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
mentions_disabled:
|
|
description: Indicates if mentions are disabled for the group.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
lfs_enabled:
|
|
description: Indicates if LFS is enabled for the group.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
default_branch_protection:
|
|
description: Indicates the default branch protection level for the group.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
avatar_url:
|
|
description: URL of the group's avatar.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
request_access_enabled:
|
|
description: Indicates if request access is enabled for the group.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
full_name:
|
|
description: Full name of the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
full_path:
|
|
description: Full path of the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Timestamp when the group was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
parent_id:
|
|
description: Identifier of the parent group.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
ldap_cn:
|
|
description: LDAP CN for the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ldap_access:
|
|
description: Indicates LDAP access for the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
- integer
|
|
- boolean
|
|
shared_with_groups:
|
|
description: List of groups with which the group is shared.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
runners_token:
|
|
description: Token used for shared runners.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
shared_projects:
|
|
description: List of shared projects.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
shared_runners_minutes_limit:
|
|
description: Shared runners minutes limit for the group.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
extra_shared_runners_minutes_limit:
|
|
description: Extra shared runners minutes limit for the group.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
prevent_forking_outside_group:
|
|
description: Indicates if forking outside the group is prevented.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
wiki_access_level:
|
|
description: Access level for wiki in the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
marked_for_deletion_on:
|
|
description: Date when the group was marked for deletion.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
prevent_sharing_groups_outside_hierarchy:
|
|
description: Indicates if sharing groups outside hierarchy is prevented.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
membership_lock:
|
|
description: Indicates if membership is locked for the group.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
ip_restriction_ranges:
|
|
description: IP restriction ranges for the group.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
shared_runners_setting:
|
|
description: Setting for shared runners.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
service_access_tokens_expiration_enforced:
|
|
description: Indicates if service access tokens expiration is enforced.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
lock_math_rendering_limits_enabled:
|
|
description: Indicates if math rendering limits are locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
math_rendering_limits_enabled:
|
|
description: Indicates if math rendering limits are enabled.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
issues:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: ID of the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal ID of the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_id:
|
|
description: ID of the project to which the issue belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: Title of the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: State of the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Date and time when the issue was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Date and time when the issue was last updated.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
closed_at:
|
|
description: Date and time when the issue was closed.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
labels:
|
|
description: Labels associated with the issue.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
assignees:
|
|
description: List of users assigned to the issue.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
type:
|
|
description: Type of the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
user_notes_count:
|
|
description: Number of user notes added to the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
merge_requests_count:
|
|
description: Number of merge requests associated with the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
upvotes:
|
|
description: Number of upvotes for the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
downvotes:
|
|
description: Number of downvotes for the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
due_date:
|
|
description: Due date set for the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
confidential:
|
|
description: Indicates if the issue is confidential.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
discussion_locked:
|
|
description: Indicates if discussion is locked for the issue.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
issue_type:
|
|
description: Type of issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL of the issue in GitLab.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
time_stats:
|
|
description: Time statistics related to the issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
task_completion_status:
|
|
description: Task completion status for the issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
blocking_issues_count:
|
|
description: Number of blocking issues for this issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
has_tasks:
|
|
description: Indicates if the issue has tasks.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
_links:
|
|
description: Links related to the GitLab issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
references:
|
|
description: References related to the issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
moved_to_id:
|
|
description: ID of the issue to which this issue has been moved.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
- string
|
|
service_desk_reply_to:
|
|
description: Service desk reply to information for the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
author:
|
|
description: Details of the author of the issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
state:
|
|
description: State of the author's account.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name:
|
|
description: Name of the author.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL of the author's GitLab profile.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL of the author's avatar image.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
description: Username of the author.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
id:
|
|
description: ID of the author.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
locked:
|
|
description: Indicates if the author's account is locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
author_id:
|
|
description: ID of the author of the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
assignee:
|
|
description: Details of the user assigned to the issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
state:
|
|
description: State of the assignee account.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name:
|
|
description: Name of the assignee.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL of the assignee's GitLab profile.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL of the assignee's avatar image.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
description: Username of the assignee.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
id:
|
|
description: ID of the assignee.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
locked:
|
|
description: Indicates if the assignee account is locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
assignee_id:
|
|
description: ID of the user assigned to the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
closed_by:
|
|
description: Details of the user who closed the issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
state:
|
|
description: State of the user's account who closed the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name:
|
|
description: Name of the user who closed the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL of the user's GitLab profile who closed the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL of the user's avatar image.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
description: Username of the user who closed the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
human_readable_end_date:
|
|
description: Human-readable end date of the user.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
human_readable_timestamp:
|
|
description: Human-readable timestamp of the user.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
id:
|
|
description: ID of the user who closed the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
locked:
|
|
description: Indicates if the user's account is locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
closed_by_id:
|
|
description: ID of the user who closed the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
milestone:
|
|
description: Milestone associated with the issue.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
milestone_id:
|
|
description: ID of the milestone associated with the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
subscribed:
|
|
description: Indicates if the user is subscribed to the issue.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
weight:
|
|
description: Weight assigned to the issue.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
task_status:
|
|
description: Status of tasks associated with the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
severity:
|
|
description: Severity level of the issue.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
iteration:
|
|
description: Details of the iteration to which the issue belongs.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
description: ID of the iteration.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal ID of the iteration.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
sequence:
|
|
description: Order sequence of the iteration.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group_id:
|
|
description: ID of the group to which the iteration belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: Title of the iteration.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the iteration.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: State of the iteration.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
created_at:
|
|
description: Date and time when the iteration was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Date and time when the iteration was last updated.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
start_date:
|
|
description: Start date of the iteration.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
due_date:
|
|
description: Due date set for the iteration.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
web_url:
|
|
description: URL of the iteration in GitLab.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
epic:
|
|
description: Details of the epic to which the issue belongs.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
description: ID of the epic.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal ID of the epic.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: Title of the epic.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
url:
|
|
description: URL of the epic in GitLab.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
group_id:
|
|
description: ID of the group to which the epic belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
locked:
|
|
description: Indicates if the epic is locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
human_readable_end_date:
|
|
description: Human-readable end date of the epic.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
human_readable_timestamp:
|
|
description: Human-readable timestamp of the epic.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
epic_iid:
|
|
description: Internal ID of the epic the issue belongs to.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
jobs:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identifier for the job.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
status:
|
|
description: Current status of the job.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
stage:
|
|
description: Stage to which the job belongs in the pipeline.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
archived:
|
|
description: Indicates if the job has been archived.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
name:
|
|
description: Name of the job.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ref:
|
|
description: Reference or branch for which the job was triggered.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
tag:
|
|
description: Indicates if the job is tagged.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
coverage:
|
|
description: Code coverage achieved by the job.
|
|
type:
|
|
- 'null'
|
|
- number
|
|
- string
|
|
allow_failure:
|
|
description: Specifies if the job is allowed to fail.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
created_at:
|
|
description: Date and time when the job was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
started_at:
|
|
description: Date and time when the job execution started.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
finished_at:
|
|
description: Date and time when the job finished execution.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
duration:
|
|
description: Duration of the job execution.
|
|
type:
|
|
- 'null'
|
|
- number
|
|
queued_duration:
|
|
description: Duration for which the job was in the queue.
|
|
type:
|
|
- 'null'
|
|
- number
|
|
web_url:
|
|
description: URL to access the job details on the web platform.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
artifacts:
|
|
description: List of artifacts generated by the job.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
artifacts_expire_at:
|
|
description: Date and time when artifacts will expire.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
tag_list:
|
|
description: List of tags associated with the job.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
user:
|
|
description: Details of the user who triggered the job.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
user_id:
|
|
description: ID of the user who triggered the job.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
pipeline:
|
|
description: Details of the pipeline to which the job belongs.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
pipeline_id:
|
|
description: ID of the pipeline to which the job belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
runner:
|
|
description: Details of the runner on which the job is executed.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
runner_id:
|
|
description: ID of the runner on which the job is executed.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
commit:
|
|
description: Details of the commit associated with the job.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
commit_id:
|
|
description: ID of the commit associated with the job.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
project_id:
|
|
description: ID of the project to which the job belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
erased_at:
|
|
description: Date and time when the job was erased.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
failure_reason:
|
|
description: Reason for job failure, if applicable.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
project:
|
|
description: Details of the project to which the job belongs.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
ci_job_token_scope_enabled:
|
|
description: Indicates if the CI job token scope is enabled for the project.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
merge_request_commits:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
project_id:
|
|
description: Identifier of the project where the commit was made
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
id:
|
|
description: Unique identifier for the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
short_id:
|
|
description: Shortened version of the commit ID
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Date and time when the commit was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
parent_ids:
|
|
description: Array of parent commit identifiers
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
title:
|
|
description: Title of the commit representing the changes made
|
|
type:
|
|
- 'null'
|
|
- string
|
|
message:
|
|
description: The commit message describing the changes made
|
|
type:
|
|
- 'null'
|
|
- string
|
|
author_name:
|
|
description: Name of the author who made the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
author_email:
|
|
description: Email of the author who made the commit
|
|
type:
|
|
- 'null'
|
|
- string
|
|
authored_date:
|
|
description: Date and time the commit was authored
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
extended_trailers:
|
|
description: Additional information regarding the commit trailers
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
Cc:
|
|
description: Carbon Copy recipients related to the commit
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
committer_name:
|
|
description: Name of the committer who committed the changes
|
|
type:
|
|
- 'null'
|
|
- string
|
|
committer_email:
|
|
description: Email of the committer who committed the changes
|
|
type:
|
|
- 'null'
|
|
- string
|
|
committed_date:
|
|
description: Date and time the commit was committed
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
trailers:
|
|
description: Additional information or metadata related to the commit
|
|
type:
|
|
- 'null'
|
|
- object
|
|
web_url:
|
|
description: URL to view the commit details in a web browser
|
|
type:
|
|
- 'null'
|
|
- string
|
|
stats:
|
|
description: Statistics related to the commit changes
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
additions:
|
|
description: Number of lines added in the commit
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
deletions:
|
|
description: Number of lines deleted in the commit
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
total:
|
|
description: Total number of lines changed in the commit
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
merge_request_iid:
|
|
description: Identifier of the merge request associated with the commit
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
merge_requests:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: ID of the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal ID of the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_id:
|
|
description: ID of the project to which the merge request belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: Title of the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: State of the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Timestamp when the merge request was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
prepared_at:
|
|
description: Timestamp when the merge request was prepared.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Timestamp when the merge request was last updated.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
merged_at:
|
|
description: Timestamp when the merge request was merged.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
closed_at:
|
|
description: Timestamp when the merge request was closed.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
target_branch:
|
|
description: Name of the target branch for the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
source_branch:
|
|
description: Name of the source branch for the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
user_notes_count:
|
|
description: Total count of user notes on the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
upvotes:
|
|
description: Number of upvotes for the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
downvotes:
|
|
description: Number of downvotes for the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
assignees:
|
|
description: List of users assigned to this merge request.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
reviewers:
|
|
description: List of reviewers assigned to the merge request.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
source_project_id:
|
|
description: ID of the source project for the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
target_project_id:
|
|
description: ID of the target project for the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
labels:
|
|
description: List of labels associated with the merge request.
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
work_in_progress:
|
|
description: Flag indicating if the merge request is a work in progress.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
merge_when_pipeline_succeeds:
|
|
description: Flag indicating if the merge should happen when the pipeline succeeds.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
merge_status:
|
|
description: Status of the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
sha:
|
|
description: SHA of the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
merge_commit_sha:
|
|
description: SHA of the merge commit.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
squash_commit_sha:
|
|
description: SHA of the squashed commit.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
discussion_locked:
|
|
description: Flag indicating if discussions are locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
should_remove_source_branch:
|
|
description: Flag indicating if the source branch should be removed after merging.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
force_remove_source_branch:
|
|
description: Flag indicating if the source branch should be removed after merging.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
reference:
|
|
description: Reference of the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
references:
|
|
description: List of references associated with the merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
web_url:
|
|
description: URL to view the merge request in the GitLab UI.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
time_stats:
|
|
description: Time statistics related to the merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
squash:
|
|
description: Flag indicating if squashing should be performed.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
task_completion_status:
|
|
description: Status of task completion for the merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
has_conflicts:
|
|
description: Flag indicating if the merge request has conflicts.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
blocking_discussions_resolved:
|
|
description: Flag indicating if all blocking discussions are resolved.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
approvals_before_merge:
|
|
description: Total number of approvals required before the merge request can be
|
|
merged.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
- string
|
|
- object
|
|
author:
|
|
description: Author of the merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
author_id:
|
|
description: ID of the author of the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
assignee:
|
|
description: User assigned to this merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
assignee_id:
|
|
description: ID of the user assigned to this merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
closed_by:
|
|
description: User who closed the merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
closed_by_id:
|
|
description: ID of the user who closed the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
milestone:
|
|
description: Milestone associated with the merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
milestone_id:
|
|
description: ID of the milestone associated with the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
merged_by:
|
|
description: User who merged the merge request.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
merged_by_id:
|
|
description: ID of the user who merged the merge request.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
draft:
|
|
description: Flag indicating if the merge request is a draft.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
detailed_merge_status:
|
|
description: Detailed status of the merge request.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
squash_on_merge:
|
|
description: Flag indicating if squashing should be done on merge.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
merge_user:
|
|
description: User who performed the merge.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
id:
|
|
description: ID of the user who performed the merge.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: Name of the user.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
description: Username of the user.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: State of the user account.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL of the user's avatar.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL to the user's profile.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
locked:
|
|
description: Flag indicating if the user account is locked.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
pipelines_extended:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identifier of the pipeline
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal ID of the pipeline
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_id:
|
|
description: ID of the project associated with the pipeline
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
sha:
|
|
description: The commit SHA of the current state triggering the pipeline
|
|
type:
|
|
- 'null'
|
|
- string
|
|
source:
|
|
description: Source that triggered the pipeline (e.g., push, webhook)
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ref:
|
|
description: Branch or tag name for which the pipeline was triggered
|
|
type:
|
|
- 'null'
|
|
- string
|
|
status:
|
|
description: Current status of the pipeline (e.g., running, success, failed)
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: The date and time when the pipeline was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: The date and time when pipeline information was last updated
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
web_url:
|
|
description: URL to view the pipeline details on the web interface
|
|
type:
|
|
- 'null'
|
|
- string
|
|
before_sha:
|
|
description: The commit SHA of the previous state before the pipeline was triggered
|
|
type:
|
|
- 'null'
|
|
- string
|
|
tag:
|
|
description: Boolean indicating if the pipeline was triggered by a tag
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
yaml_errors:
|
|
description: Any errors encountered in the pipeline configuration YAML
|
|
type:
|
|
- 'null'
|
|
- string
|
|
user:
|
|
description: Details of the user associated with the pipeline
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identifier of the user
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: Name of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
description: Username of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: State of the user account (e.g., active, blocked)
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL of the user's avatar
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL to the user's profile
|
|
type:
|
|
- 'null'
|
|
- string
|
|
locked:
|
|
description: Boolean indicating if the user account is locked
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
started_at:
|
|
description: The date and time when the pipeline execution started
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
finished_at:
|
|
description: The date and time when the pipeline execution was finished
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
committed_at:
|
|
description: The date and time when the commit was made
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
duration:
|
|
description: The total duration of the pipeline execution in seconds
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
queued_duration:
|
|
description: The duration the pipeline spent in the queue before execution
|
|
type:
|
|
- 'null'
|
|
- number
|
|
- string
|
|
coverage:
|
|
description: The code coverage percentage achieved in the pipeline
|
|
type:
|
|
- 'null'
|
|
- number
|
|
- string
|
|
detailed_status:
|
|
description: Detailed status of the pipeline execution
|
|
type:
|
|
- 'null'
|
|
- object
|
|
name:
|
|
description: Name of the pipeline
|
|
type:
|
|
- 'null'
|
|
- string
|
|
pipelines:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identifier for the pipeline
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal identifier for the pipeline within the project
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_id:
|
|
description: Unique identifier for the project where the pipeline belongs
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
sha:
|
|
description: Commit SHA associated with the pipeline
|
|
type:
|
|
- 'null'
|
|
- string
|
|
source:
|
|
description: Source that triggered the pipeline (e.g., web, push, schedule)
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ref:
|
|
description: Reference (branch or tag) for which the pipeline was triggered
|
|
type:
|
|
- 'null'
|
|
- string
|
|
status:
|
|
description: Current status of the pipeline (e.g., running, passed, failed)
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: The timestamp when the pipeline was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: The timestamp when the pipeline was last updated
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
web_url:
|
|
description: URL to view the pipeline details on the web interface
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name:
|
|
description: Name of the pipeline
|
|
type:
|
|
- 'null'
|
|
- string
|
|
project_labels:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
project_id:
|
|
description: The unique identifier of the project to which the label belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
id:
|
|
description: The unique identifier for the label within the project.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: The name or title of the label for easy identification.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
color:
|
|
description: The color code representation of the label for visual identification.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: The textual description of the label indicating its purpose or meaning.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description_html:
|
|
description: The HTML formatted description of the label for display purposes.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
text_color:
|
|
description: The color code representation for the text color of the label for
|
|
contrast.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
subscribed:
|
|
description: A flag indicating whether the user is subscribed to notifications
|
|
for this label.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
priority:
|
|
description: The priority level assigned to the label, if applicable.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
is_project_label:
|
|
description: A flag indicating whether the label is specifically created for the
|
|
project.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
open_issues_count:
|
|
description: The total count of open issues associated with this label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
closed_issues_count:
|
|
description: The total count of closed issues associated with this label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
open_merge_requests_count:
|
|
description: The total count of open merge requests associated with this label.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_members:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
project_id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
membership_state:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
access_level:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
created_at:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
expires_at:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
created_by:
|
|
avatar_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
id:
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
type:
|
|
- 'null'
|
|
- string
|
|
locked:
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
project_milestones:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identifier for the milestone.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
iid:
|
|
description: Internal identifier for the milestone.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
project_id:
|
|
description: Identifier of the project that the milestone belongs to.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
title:
|
|
description: The title or name of the milestone.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: A brief summary or goal of the milestone.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: Current state of the milestone (e.g., open, closed).
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: The date and time when the milestone was created.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: The date and time when the milestone was last updated.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
due_date:
|
|
description: The target date for completion of the milestone.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
start_date:
|
|
description: The date when work on the milestone is scheduled to start.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
expired:
|
|
description: Indicates if the milestone has expired or not.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
web_url:
|
|
description: URL to access the milestone on the web platform.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
projects:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: ID of the project
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
description:
|
|
description: Description of the project
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description_html:
|
|
description: HTML formatted project description
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name:
|
|
description: Name of the project
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name_with_namespace:
|
|
description: Name of the project with namespace
|
|
type:
|
|
- 'null'
|
|
- string
|
|
path:
|
|
description: Path of the project
|
|
type:
|
|
- 'null'
|
|
- string
|
|
path_with_namespace:
|
|
description: Path of the project with namespace
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Date and time of project creation
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
updated_at:
|
|
description: Date and time of last update
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
default_branch:
|
|
description: Default branch of the project
|
|
type:
|
|
- 'null'
|
|
- string
|
|
tag_list:
|
|
description: List of tags associated with the project
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
description: Tag item
|
|
type:
|
|
- 'null'
|
|
- string
|
|
topics:
|
|
description: Topics associated with the project
|
|
type:
|
|
- 'null'
|
|
- array
|
|
ssh_url_to_repo:
|
|
description: SSH URL to project repository
|
|
type:
|
|
- 'null'
|
|
- string
|
|
http_url_to_repo:
|
|
description: HTTP URL to project repository
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL of the project
|
|
type:
|
|
- 'null'
|
|
- string
|
|
readme_url:
|
|
description: URL for project readme
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL for project avatar
|
|
type:
|
|
- 'null'
|
|
- string
|
|
forks_count:
|
|
description: Number of forks for the project
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
star_count:
|
|
description: Number of stars for the project
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
last_activity_at:
|
|
description: Date and time of last activity
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
namespace:
|
|
description: Namespace details
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: ID of the namespace
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: Name of the namespace
|
|
type:
|
|
- 'null'
|
|
- string
|
|
path:
|
|
description: Path of the namespace
|
|
type:
|
|
- 'null'
|
|
- string
|
|
kind:
|
|
description: Kind of namespace
|
|
type:
|
|
- 'null'
|
|
- string
|
|
full_path:
|
|
description: Full path of the namespace
|
|
type:
|
|
- 'null'
|
|
- string
|
|
parent_id:
|
|
description: ID of the parent namespace
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
avatar_url:
|
|
description: URL for namespace avatar
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: Web URL of the namespace
|
|
type:
|
|
- 'null'
|
|
- string
|
|
container_registry_image_prefix:
|
|
description: Prefix for container registry images
|
|
type:
|
|
- 'null'
|
|
- string
|
|
_links:
|
|
description: Links related to the project
|
|
type: object
|
|
properties:
|
|
self:
|
|
description: URL for the project itself
|
|
type:
|
|
- 'null'
|
|
- string
|
|
issues:
|
|
description: URL for project issues
|
|
type:
|
|
- 'null'
|
|
- string
|
|
merge_requests:
|
|
description: URL for project merge requests
|
|
type:
|
|
- 'null'
|
|
- string
|
|
repo_branches:
|
|
description: URL for project repository branches
|
|
type:
|
|
- 'null'
|
|
- string
|
|
labels:
|
|
description: URL for project labels
|
|
type:
|
|
- 'null'
|
|
- string
|
|
events:
|
|
description: URL for events related to the project
|
|
type:
|
|
- 'null'
|
|
- string
|
|
members:
|
|
description: URL for project members
|
|
type:
|
|
- 'null'
|
|
- string
|
|
cluster_agents:
|
|
description: URL for cluster agents
|
|
type:
|
|
- 'null'
|
|
- string
|
|
packages_enabled:
|
|
description: Flag indicating if packages are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
empty_repo:
|
|
description: Flag indicating if repository is empty
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
archived:
|
|
description: Flag indicating if project is archived
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
visibility:
|
|
description: Visibility level of the project
|
|
type:
|
|
- 'null'
|
|
- string
|
|
resolve_outdated_diff_discussions:
|
|
description: Resolve outdated diff discussions
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
container_registry_enabled:
|
|
description: Flag indicating if container registry is enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
container_expiration_policy:
|
|
description: Container expiration policy details
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
cadence:
|
|
description: Expiration cadence
|
|
type:
|
|
- 'null'
|
|
- string
|
|
enabled:
|
|
description: Flag indicating if expiration policy is enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
keep_n:
|
|
description: Number of containers to keep
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
older_than:
|
|
description: Age threshold for expiration
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name_regex:
|
|
description: Regex for container name
|
|
type:
|
|
- 'null'
|
|
- string
|
|
name_regex_keep:
|
|
description: Regex for container name to keep
|
|
type:
|
|
- 'null'
|
|
- string
|
|
next_run_at:
|
|
description: Next scheduled run for expiration policy
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
issues_enabled:
|
|
description: Flag indicating if issues are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
merge_requests_enabled:
|
|
description: Flag indicating if merge requests are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
wiki_enabled:
|
|
description: Flag indicating if wiki is enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
jobs_enabled:
|
|
description: Flag indicating if jobs are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
snippets_enabled:
|
|
description: Flag indicating if snippets are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
service_desk_enabled:
|
|
description: Flag indicating if service desk is enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
service_desk_address:
|
|
description: Address for service desk
|
|
type:
|
|
- 'null'
|
|
- string
|
|
can_create_merge_request_in:
|
|
description: Locations where merge requests can be created
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
issues_access_level:
|
|
description: Access level for issues
|
|
type:
|
|
- 'null'
|
|
- string
|
|
repository_access_level:
|
|
description: Access level for repository
|
|
type:
|
|
- 'null'
|
|
- string
|
|
merge_requests_access_level:
|
|
description: Access level for merge requests
|
|
type:
|
|
- 'null'
|
|
- string
|
|
forking_access_level:
|
|
description: Access level for forking projects
|
|
type:
|
|
- 'null'
|
|
- string
|
|
wiki_access_level:
|
|
description: Access level for wiki
|
|
type:
|
|
- 'null'
|
|
- string
|
|
builds_access_level:
|
|
description: Access level for builds
|
|
type:
|
|
- 'null'
|
|
- string
|
|
snippets_access_level:
|
|
description: Access level for snippets
|
|
type:
|
|
- 'null'
|
|
- string
|
|
pages_access_level:
|
|
description: Access level for project pages
|
|
type:
|
|
- 'null'
|
|
- string
|
|
operations_access_level:
|
|
description: Access level for operations
|
|
type:
|
|
- 'null'
|
|
- string
|
|
analytics_access_level:
|
|
description: Access level for analytics
|
|
type:
|
|
- 'null'
|
|
- string
|
|
emails_disabled:
|
|
description: Flag indicating if emails are disabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
shared_runners_enabled:
|
|
description: Flag indicating if shared runners are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
lfs_enabled:
|
|
description: Flag indicating if Git LFS is enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
creator_id:
|
|
description: ID of the project creator
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
import_status:
|
|
description: Status of project import
|
|
type:
|
|
- 'null'
|
|
- string
|
|
import_error:
|
|
description: Error message if import failed
|
|
type:
|
|
- 'null'
|
|
- string
|
|
- boolean
|
|
open_issues_count:
|
|
description: Count of open issues
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
runners_token:
|
|
description: Token for runners
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ci_default_git_depth:
|
|
description: Default git depth for CI
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
ci_forward_deployment_enabled:
|
|
description: Flag for forward deployment enabled in CI
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
public_jobs:
|
|
description: Flag indicating if jobs are public
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
build_git_strategy:
|
|
description: Git strategy for build
|
|
type:
|
|
- 'null'
|
|
- string
|
|
build_timeout:
|
|
description: Timeout for build
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
auto_cancel_pending_pipelines:
|
|
description: Automatically cancel pending pipelines
|
|
type:
|
|
- 'null'
|
|
- string
|
|
build_coverage_regex:
|
|
description: Regex for build coverage
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ci_config_path:
|
|
description: Path for CI configuration
|
|
type:
|
|
- 'null'
|
|
- string
|
|
shared_with_groups:
|
|
description: List of groups with which project is shared
|
|
type:
|
|
- 'null'
|
|
- array
|
|
only_allow_merge_if_pipeline_succeeds:
|
|
description: Only allow merge if pipeline succeeds
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
allow_merge_on_skipped_pipeline:
|
|
description: Allow merge on skipped pipeline
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
restrict_user_defined_variables:
|
|
description: Restrict user-defined variables
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
request_access_enabled:
|
|
description: Flag indicating if request access is enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
only_allow_merge_if_all_discussions_are_resolved:
|
|
description: Only allow merge if all discussions are resolved
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
remove_source_branch_after_merge:
|
|
description: Remove source branch after merge
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
printing_merge_request_link_enabled:
|
|
description: Enable printing merge request link
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
merge_method:
|
|
description: Method used for merges
|
|
type:
|
|
- 'null'
|
|
- string
|
|
suggestion_commit_message:
|
|
description: Commit message suggestion
|
|
type:
|
|
- 'null'
|
|
- string
|
|
statistics:
|
|
description: Project statistics
|
|
type: object
|
|
properties:
|
|
commit_count:
|
|
description: Number of commits
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
storage_size:
|
|
description: Total storage size
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
repository_size:
|
|
description: Size of repository
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
wiki_size:
|
|
description: Size of wiki
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
lfs_objects_size:
|
|
description: Size of LFS objects
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
job_artifacts_size:
|
|
description: Size of job artifacts
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
snippets_size:
|
|
description: Size of snippets
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
packages_size:
|
|
description: Size of packages
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
container_registry_size:
|
|
description: Size of container registry
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
pipeline_artifacts_size:
|
|
description: Size of pipeline artifacts
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
uploads_size:
|
|
description: Size of uploads
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
auto_devops_enabled:
|
|
description: Flag indicating if Auto DevOps is enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
auto_devops_deploy_strategy:
|
|
description: Auto DevOps deployment strategy
|
|
type:
|
|
- 'null'
|
|
- string
|
|
autoclose_referenced_issues:
|
|
description: Automatically close referenced issues
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
external_authorization_classification_label:
|
|
description: Label for external authorization classification
|
|
type:
|
|
- 'null'
|
|
- string
|
|
requirements_enabled:
|
|
description: Flag indicating if requirements are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
security_and_compliance_enabled:
|
|
description: Flag indicating if security and compliance are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
compliance_frameworks:
|
|
description: Compliance frameworks associated with the project
|
|
type:
|
|
- 'null'
|
|
- array
|
|
permissions:
|
|
description: Permissions for project access
|
|
type: object
|
|
properties:
|
|
project_access:
|
|
description: Project access level
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
access_level:
|
|
description: Access level for project
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
notification_level:
|
|
description: Notification level for project
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
group_access:
|
|
description: Group access level
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
access_level:
|
|
description: Access level for groups
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
notification_level:
|
|
description: Notification level for groups
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
feature_flags_access_level:
|
|
description: Access level for feature flags
|
|
type:
|
|
- 'null'
|
|
- string
|
|
group_runners_enabled:
|
|
description: Flag indicating if group runners are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
enforce_auth_checks_on_uploads:
|
|
description: Enforce authentication checks on uploads
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
monitor_access_level:
|
|
description: Access level for monitoring tools
|
|
type:
|
|
- 'null'
|
|
- string
|
|
container_registry_access_level:
|
|
description: Access level for container registry
|
|
type:
|
|
- 'null'
|
|
- string
|
|
import_type:
|
|
description: Type of project import
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ci_job_token_scope_enabled:
|
|
description: Enable job token scope in CI
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
requirements_access_level:
|
|
description: Access level for requirements
|
|
type:
|
|
- 'null'
|
|
- string
|
|
releases_access_level:
|
|
description: Access level for project releases
|
|
type:
|
|
- 'null'
|
|
- string
|
|
runner_token_expiration_interval:
|
|
description: Token expiration interval for runners
|
|
type:
|
|
- 'null'
|
|
- string
|
|
squash_option:
|
|
description: Squash option for merges
|
|
type:
|
|
- 'null'
|
|
- string
|
|
squash_commit_template:
|
|
description: Template for squash commits
|
|
type:
|
|
- 'null'
|
|
- string
|
|
issue_branch_template:
|
|
description: Template for issue branches
|
|
type:
|
|
- 'null'
|
|
- string
|
|
keep_latest_artifact:
|
|
description: Keep latest artifact
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
import_url:
|
|
description: URL for project import
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ci_separated_caches:
|
|
description: Use separated caches in CI
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
security_and_compliance_access_level:
|
|
description: Access level for security and compliance
|
|
type:
|
|
- 'null'
|
|
- string
|
|
infrastructure_access_level:
|
|
description: Access level for infrastructure settings
|
|
type:
|
|
- 'null'
|
|
- string
|
|
merge_commit_template:
|
|
description: Template for merge commits
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ci_allow_fork_pipelines_to_run_in_parent_project:
|
|
description: Allow fork pipelines to run in parent project
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
environments_access_level:
|
|
description: Access level for environments
|
|
type:
|
|
- 'null'
|
|
- string
|
|
approvals_before_merge:
|
|
description: Number of approvals required before merge
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
marked_for_deletion_at:
|
|
description: Date marked for deletion
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
merge_trains_enabled:
|
|
description: Flag indicating if merge trains are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
mirror:
|
|
description: Flag indicating if project is mirrored
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
issues_template:
|
|
description: Template for issues
|
|
type:
|
|
- 'null'
|
|
- string
|
|
merge_pipelines_enabled:
|
|
description: Flag indicating if merge pipelines are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
merge_requests_template:
|
|
description: Template for merge requests
|
|
type:
|
|
- 'null'
|
|
- string
|
|
allow_pipeline_trigger_approve_deployment:
|
|
description: Allow pipeline trigger to approve deployment
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
marked_for_deletion_on:
|
|
description: Date marked for deletion
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date
|
|
ci_forward_deployment_rollback_allowed:
|
|
description: Allow rollback in forward deployment CI
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
emails_enabled:
|
|
description: Flag indicating if emails are enabled
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
model_experiments_access_level:
|
|
description: Access level for model experiments
|
|
type:
|
|
- 'null'
|
|
- string
|
|
merge_trains_skip_train_allowed:
|
|
description: Allow skipping merge trains
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
code_suggestions:
|
|
description: Enable code suggestions
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
model_registry_access_level:
|
|
description: Access level for model registry
|
|
type:
|
|
- 'null'
|
|
- string
|
|
ci_restrict_pipeline_cancellation_role:
|
|
description: Role allowed to restrict pipeline cancellation in CI
|
|
type:
|
|
- 'null'
|
|
- string
|
|
repository_object_format:
|
|
description: Format of repository object
|
|
type:
|
|
- 'null'
|
|
- string
|
|
warn_about_potentially_unwanted_characters:
|
|
description: Warn about potentially unwanted characters
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
releases:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Name of the release
|
|
type:
|
|
- 'null'
|
|
- string
|
|
tag_name:
|
|
description: Name of the tag associated with the release
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the release
|
|
type:
|
|
- 'null'
|
|
- string
|
|
created_at:
|
|
description: Date and time when the release was created
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
released_at:
|
|
description: Date and time when the release was published
|
|
type:
|
|
- 'null'
|
|
- string
|
|
format: date-time
|
|
upcoming_release:
|
|
description: Indicator if the release is an upcoming release
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
milestones:
|
|
description: List of milestones related to the release
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type: integer
|
|
commit_path:
|
|
description: Path to the commit related to the release
|
|
type:
|
|
- 'null'
|
|
- string
|
|
tag_path:
|
|
description: Path to the tag associated with the release
|
|
type:
|
|
- 'null'
|
|
- string
|
|
assets:
|
|
description: Information about assets related to the release
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
count:
|
|
description: Number of assets in the release
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
sources:
|
|
description: List of sources for the assets
|
|
type:
|
|
- 'null'
|
|
- array
|
|
items:
|
|
type: object
|
|
properties:
|
|
format:
|
|
description: Format of the asset
|
|
type:
|
|
- 'null'
|
|
- string
|
|
url:
|
|
description: URL of the asset file
|
|
type:
|
|
- 'null'
|
|
- string
|
|
links:
|
|
description: Links related to the assets
|
|
type: array
|
|
evidences:
|
|
description: Any evidences associated with the release
|
|
type:
|
|
- 'null'
|
|
- array
|
|
_links:
|
|
description: Links related to the releases data
|
|
type:
|
|
- 'null'
|
|
- object
|
|
author:
|
|
description: Name of the author of the release
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
author_id:
|
|
description: ID of the author of the release
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
commit:
|
|
description: Commit details related to the release
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
commit_id:
|
|
description: ID of the commit related to the release
|
|
type:
|
|
- 'null'
|
|
- string
|
|
project_id:
|
|
description: ID of the project associated with the release
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
tags:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: The name of the tag.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
message:
|
|
description: The message or description of the tag.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
target:
|
|
description: The target or object that the tag points to.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
release:
|
|
description: Details about the release associated with the tag.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
properties:
|
|
tag_name:
|
|
description: The name of the release tag.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
description:
|
|
description: Description of the release.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
protected:
|
|
description: Indicates whether the tag is protected.
|
|
type:
|
|
- 'null'
|
|
- boolean
|
|
commit:
|
|
description: Details about the commit associated with the tag.
|
|
type:
|
|
- 'null'
|
|
- object
|
|
additionalProperties: true
|
|
commit_id:
|
|
description: Unique identifier for the commit associated with the tag.
|
|
type:
|
|
- 'null'
|
|
- string
|
|
project_id:
|
|
description: Unique identifier of the project to which the tag belongs.
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
users:
|
|
$schema: https://json-schema.org/draft-07/schema#
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Unique identification number for the user
|
|
type:
|
|
- 'null'
|
|
- integer
|
|
name:
|
|
description: Full name of the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
username:
|
|
description: Unique username chosen by the user
|
|
type:
|
|
- 'null'
|
|
- string
|
|
state:
|
|
description: Current state of the user's account (e.g., active, blocked)
|
|
type:
|
|
- 'null'
|
|
- string
|
|
avatar_url:
|
|
description: URL of the user's avatar image
|
|
type:
|
|
- 'null'
|
|
- string
|
|
web_url:
|
|
description: URL of the user's profile page on the Gitlab platform
|
|
type:
|
|
- 'null'
|
|
- string
|
|
locked:
|
|
description: Boolean flag indicating if the user's account is locked
|
|
type:
|
|
- 'null'
|
|
- boolean
|