diff options
Diffstat (limited to 'doc/api')
54 files changed, 7553 insertions, 523 deletions
diff --git a/doc/api/README.md b/doc/api/README.md index 6cbb99a76cb..b07f14b5a7a 100644 --- a/doc/api/README.md +++ b/doc/api/README.md @@ -423,7 +423,7 @@ Status: 200 OK ``` CAUTION: **Deprecation:** -The `Links` Header will be removed in GitLab 14.0 to be aligned with the [W3C specification](https://www.w3.org/wiki/LinkHeader) +The `Links` Header will be removed in GitLab 14.0 to be aligned with the [W3C `Link` specification](https://www.w3.org/wiki/LinkHeader) The link to the next page contains an additional filter `id_after=42` which excludes records we have retrieved already. Note the type of filter depends on the `order_by` option used and we may have more than one additional filter. @@ -491,6 +491,28 @@ GET /api/v4/projects/1/branches/my%2Fbranch/commits GET /api/v4/projects/1/repository/tags/my%2Ftag ``` +## Request Payload + +API Requests can use parameters sent as [query strings](https://en.wikipedia.org/wiki/Query_string) +or as a [payload body](https://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-14#section-3.2). +GET requests usually send a query string, while PUT/POST requests usually send the payload body: + +- Query string: + + ```shell + curl --request POST "https://gitlab/api/v4/projects?name=<example-name>&description=<example-description>" + ``` + +- Request payload (JSON): + + ```shell + curl --request POST --header "Content-Type: application/json" --data '{"name":"<example-name>", "description":"<example-description"}' "https://gitlab/api/v4/projects" + ``` + +URL encoded query strings have a length limitation. Requests that are too large will +result in a `414 Request-URI Too Large` error message. This can be resolved by using +a payload body instead. + ## Encoding API parameters of `array` and `hash` types We can call the API with `array` and `hash` types parameters as shown below: diff --git a/doc/api/api_resources.md b/doc/api/api_resources.md index 2adf06a8e95..e93dfed3b1f 100644 --- a/doc/api/api_resources.md +++ b/doc/api/api_resources.md @@ -129,6 +129,7 @@ The following API resources are available outside of project and group contexts | [Geo Nodes](geo_nodes.md) **(PREMIUM ONLY)** | `/geo_nodes` | | [Group Activity Analytics](group_activity_analytics.md) **(STARTER)** | `/analytics/group_activity/{issues_count | merge_requests_count | new_members_count }` | | [Import repository from GitHub](import.md) | `/import/github` | +| [Instance clusters](instance_clusters.md) | `/admin/clusters` | | [Issues](issues.md) | `/issues` (also available for groups and projects) | | [Issues Statistics](issues_statistics.md) | `/issues_statistics` (also available for groups and projects) | | [Keys](keys.md) | `/keys` | @@ -140,7 +141,7 @@ The following API resources are available outside of project and group contexts | [Notification settings](notification_settings.md) | `/notification_settings` (also available for groups and projects) | | [Pages domains](pages_domains.md) | `/pages/domains` (also available for projects) | | [Projects](projects.md) | `/users/:id/projects` (also available for projects) | -| [Project Repository Storage Moves](project_repository_storage_moves.md) | `/project_repository_storage_moves` | +| [Project repository storage moves](project_repository_storage_moves.md) **(CORE ONLY)** | `/project_repository_storage_moves` | | [Runners](runners.md) | `/runners` (also available for projects) | | [Search](search.md) | `/search` (also available for groups and projects) | | [Settings](settings.md) **(CORE ONLY)** | `/application/settings` | diff --git a/doc/api/boards.md b/doc/api/boards.md index 155a876e76a..a370205aa01 100644 --- a/doc/api/boards.md +++ b/doc/api/boards.md @@ -452,7 +452,7 @@ POST /projects/:id/boards/:board_id/lists | `assignee_id` **(PREMIUM)** | integer | no | The ID of a user | | `milestone_id` **(PREMIUM)** | integer | no | The ID of a milestone | -NOTE: **Note**: +NOTE: **Note:** Label, assignee and milestone arguments are mutually exclusive, that is, only one of them are accepted in a request. Check the [Issue Board docs](../user/project/issue_board.md#summary-of-features-per-tier) diff --git a/doc/api/container_registry.md b/doc/api/container_registry.md index d4a4fc1a733..e4687994017 100644 --- a/doc/api/container_registry.md +++ b/doc/api/container_registry.md @@ -1,3 +1,9 @@ +--- +stage: Package +group: Package +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + # Container Registry API > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/55978) in GitLab 11.8. diff --git a/doc/api/deploy_keys.md b/doc/api/deploy_keys.md index 1634d07768a..97b7614f932 100644 --- a/doc/api/deploy_keys.md +++ b/doc/api/deploy_keys.md @@ -1,3 +1,9 @@ +--- +stage: Release +group: Progressive Delivery +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + # Deploy Keys API ## List all deploy keys diff --git a/doc/api/deploy_tokens.md b/doc/api/deploy_tokens.md index 16fc57eaa58..f11f88ab5c9 100644 --- a/doc/api/deploy_tokens.md +++ b/doc/api/deploy_tokens.md @@ -1,3 +1,9 @@ +--- +stage: Release +group: Progressive Delivery +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + # Deploy Tokens API ## List all deploy tokens diff --git a/doc/api/deployments.md b/doc/api/deployments.md index 8c952ba07b1..426b3e10ecf 100644 --- a/doc/api/deployments.md +++ b/doc/api/deployments.md @@ -1,3 +1,10 @@ +--- +stage: Release +group: Release Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +type: concepts, howto +--- + # Deployments API ## List project deployments diff --git a/doc/api/discussions.md b/doc/api/discussions.md index 1f509a7aadc..aa1a691a8f8 100644 --- a/doc/api/discussions.md +++ b/doc/api/discussions.md @@ -782,10 +782,14 @@ Diff comments also contain position: "old_line": 27, "new_line": 27, "line_range": { - "start_line_code": "588440f66559714280628a4f9799f0c4eb880a4a_10_10", - "start_line_type": "new", - "end_line_code": "588440f66559714280628a4f9799f0c4eb880a4a_11_11", - "end_line_type": "old" + "start": { + "line_code": "588440f66559714280628a4f9799f0c4eb880a4a_10_10", + "type": "new", + }, + "end": { + "line_code": "588440f66559714280628a4f9799f0c4eb880a4a_11_11", + "type": "old" + }, } }, "resolved": false, @@ -832,30 +836,32 @@ POST /projects/:id/merge_requests/:merge_request_iid/discussions Parameters: -| Attribute | Type | Required | Description | -| --------------------------------------- | -------------- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | -| `merge_request_iid` | integer | yes | The IID of a merge request | -| `body` | string | yes | The content of the thread | -| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | -| `position` | hash | no | Position when creating a diff note | -| `position[base_sha]` | string | yes | Base commit SHA in the source branch | -| `position[start_sha]` | string | yes | SHA referencing commit in target branch | -| `position[head_sha]` | string | yes | SHA referencing HEAD of this merge request | -| `position[position_type]` | string | yes | Type of the position reference', allowed values: 'text' or 'image' | -| `position[new_path]` | string | no | File path after change | -| `position[new_line]` | integer | no | Line number after change (for 'text' diff notes) | -| `position[old_path]` | string | no | File path before change | -| `position[old_line]` | integer | no | Line number before change (for 'text' diff notes) | -| `position[line_range]` | hash | no | Line range for a multi-line diff note | -| `position[line_range][start_line_code]` | string | yes | Line code for the start line | -| `position[line_range][end_line_code]` | string | yes | Line code for the end line | -| `position[line_range][start_line_type]` | string | yes | Line type for the start line | -| `position[line_range][end_line_type]` | string | yes | Line type for the end line | -| `position[width]` | integer | no | Width of the image (for 'image' diff notes) | -| `position[height]` | integer | no | Height of the image (for 'image' diff notes) | -| `position[x]` | integer | no | X coordinate (for 'image' diff notes) | -| `position[y]` | integer | no | Y coordinate (for 'image' diff notes) | +| Attribute | Type | Required | Description | +| ---------------------------------------- | -------------- | -------- | ----------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | +| `merge_request_iid` | integer | yes | The IID of a merge request | +| `body` | string | yes | The content of the thread | +| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | +| `position` | hash | no | Position when creating a diff note | +| `position[base_sha]` | string | yes | Base commit SHA in the source branch | +| `position[start_sha]` | string | yes | SHA referencing commit in target branch | +| `position[head_sha]` | string | yes | SHA referencing HEAD of this merge request | +| `position[position_type]` | string | yes | Type of the position reference', allowed values: 'text' or 'image' | +| `position[new_path]` | string | no | File path after change | +| `position[new_line]` | integer | no | Line number after change (for 'text' diff notes) | +| `position[old_path]` | string | no | File path before change | +| `position[old_line]` | integer | no | Line number before change (for 'text' diff notes) | +| `position[line_range]` | hash | no | Line range for a multi-line diff note | +| `position[line_range][start]` | hash | no | Multiline note starting line | +| `position[line_range][start][line_code]` | string | yes | Line code for the start line | +| `position[line_range][start][type]` | string | yes | Line type for the start line | +| `position[line_range][end]` | hash | no | Multiline note ending line | +| `position[line_range][end][line_code]` | string | yes | Line code for the end line | +| `position[line_range][end][type]` | string | yes | Line type for the end line | +| `position[width]` | integer | no | Width of the image (for 'image' diff notes) | +| `position[height]` | integer | no | Height of the image (for 'image' diff notes) | +| `position[x]` | integer | no | X coordinate (for 'image' diff notes) | +| `position[y]` | integer | no | Y coordinate (for 'image' diff notes) | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions?body=comment" diff --git a/doc/api/environments.md b/doc/api/environments.md index 5f6bdc251ba..2287ec9aad2 100644 --- a/doc/api/environments.md +++ b/doc/api/environments.md @@ -1,3 +1,10 @@ +--- +stage: Release +group: Release Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +type: concepts, howto +--- + # Environments API ## List environments @@ -13,6 +20,7 @@ GET /projects/:id/environments | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user | | `name` | string | no | Return the environment with this name. Mutually exclusive with `search` | | `search` | string | no | Return list of environments matching the search criteria. Mutually exclusive with `name` | +| `states` | string | no | List all environments that match a specific state. Accepted values: `available` or `stopped`. If no state value given, returns all environments. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/environments?name=review%2Ffix-foo" diff --git a/doc/api/epic_issues.md b/doc/api/epic_issues.md index 86f88b0322f..4ab505f3627 100644 --- a/doc/api/epic_issues.md +++ b/doc/api/epic_issues.md @@ -4,13 +4,15 @@ group: Portfolio Management info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers --- -# Epic Issues API **(ULTIMATE)** +# Epic Issues API **(PREMIUM)** Every API call to epic_issues must be authenticated. -If a user is not a member of a group and the group is private, a `GET` request on that group will result to a `404` status code. +If a user is not a member of a group and the group is private, a `GET` request on that group will +result in a `404` status code. -Epics are available only in Ultimate. If epics feature is not available a `403` status code will be returned. +Epics are available only in GitLab [Premium and higher](https://about.gitlab.com/pricing/). +If the Epics feature is not available, a `403` status code will be returned. ## List issues for an epic diff --git a/doc/api/epic_links.md b/doc/api/epic_links.md index 756a41a0680..1d54bfe01e3 100644 --- a/doc/api/epic_links.md +++ b/doc/api/epic_links.md @@ -9,7 +9,8 @@ Every API call to `epic_links` must be authenticated. If a user is not a member of a group and the group is private, a `GET` request on that group will result to a `404` status code. -Epics are available only in the [Ultimate/Gold tier](https://about.gitlab.com/pricing/). If the epics feature is not available, a `403` status code will be returned. +Multi-level Epics are available only in GitLab [Ultimate/Gold](https://about.gitlab.com/pricing/). +If the Multi-level Epics feature is not available, a `403` status code will be returned. ## List epics related to a given epic diff --git a/doc/api/epics.md b/doc/api/epics.md index a420ef4cd15..fcdbb8cea71 100644 --- a/doc/api/epics.md +++ b/doc/api/epics.md @@ -38,11 +38,11 @@ are paginated. Read more on [pagination](README.md#pagination). -CAUTION: **Deprecation** +CAUTION: **Deprecation:** > `reference` attribute in response is deprecated in favour of `references`. > Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) -NOTE: **Note** +NOTE: **Note:** > `references.relative` is relative to the group that the epic is being requested. When epic is fetched from its origin group > `relative` format would be the same as `short` format and when requested cross groups it is expected to be the same as `full` format. diff --git a/doc/api/error_tracking.md b/doc/api/error_tracking.md index e18fbaf25c3..658480ce6fa 100644 --- a/doc/api/error_tracking.md +++ b/doc/api/error_tracking.md @@ -1,3 +1,9 @@ +--- +stage: Monitor +group: Health +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + # Error Tracking settings API > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/34940) in GitLab 12.7. diff --git a/doc/api/feature_flag_specs.md b/doc/api/feature_flag_specs.md index 52a4864fdc5..eaa6ea36c23 100644 --- a/doc/api/feature_flag_specs.md +++ b/doc/api/feature_flag_specs.md @@ -8,12 +8,12 @@ info: To determine the technical writer assigned to the Stage/Group associated w > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5. -CAUTION: **Deprecation** +CAUTION: **Deprecation:** This API is deprecated and [scheduled for removal in GitLab 14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213369). The API for creating, updating, reading and deleting Feature Flag Specs. Automation engineers benefit from this API by being able to modify Feature Flag Specs without accessing user interface. -To manage the [Feature Flag](../user/project/operations/feature_flags.md) resources via public API, please refer to the [Feature Flags API](feature_flags.md) document. +To manage the [Feature Flag](../operations/feature_flags.md) resources via public API, please refer to the [Feature Flags API](feature_flags.md) document. Users with Developer or higher [permissions](../user/permissions.md) can access Feature Flag Specs API. @@ -166,7 +166,7 @@ POST /projects/:id/feature_flags/:name/scopes | `name` | string | yes | The name of the feature flag. | | `environment_scope` | string | yes | The [environment spec](../ci/environments/index.md#scoping-environments-with-specs) of the feature flag. | | `active` | boolean | yes | Whether the spec is active. | -| `strategies` | json | yes | The [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. | +| `strategies` | JSON | yes | The [strategies](../operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. | ```shell curl "https://gitlab.example.com/api/v4/projects/1/feature_flags/new_live_trace/scopes" \ @@ -249,7 +249,7 @@ PUT /projects/:id/feature_flags/:name/scopes/:environment_scope | `name` | string | yes | The name of the feature flag. | | `environment_scope` | string | yes | The URL-encoded [environment spec](../ci/environments/index.md#scoping-environments-with-specs) of the feature flag. | | `active` | boolean | yes | Whether the spec is active. | -| `strategies` | json | yes | The [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. | +| `strategies` | JSON | yes | The [strategies](../operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. | ```shell curl "https://gitlab.example.com/api/v4/projects/1/feature_flags/new_live_trace/scopes/production" \ diff --git a/doc/api/feature_flags.md b/doc/api/feature_flags.md index f3af662c972..99303e23c37 100644 --- a/doc/api/feature_flags.md +++ b/doc/api/feature_flags.md @@ -8,10 +8,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5. -NOTE: **Note** -This API is behind a [feature flag](../user/project/operations/feature_flags.md#feature-flag-behavior-change-in-130). If this flag is not enabled in your environment, you can use the [legacy feature flags API](feature_flags_legacy.md). +NOTE: **Note:** +This API is behind a [feature flag](../operations/feature_flags.md#enable-or-disable-feature-flag-strategies). +If this flag is not enabled in your environment, you can use the [legacy feature flags API](feature_flags_legacy.md). -API for accessing resources of [GitLab Feature Flags](../user/project/operations/feature_flags.md). +API for accessing resources of [GitLab Feature Flags](../operations/feature_flags.md). Users with Developer or higher [permissions](../user/permissions.md) can access Feature Flag API. @@ -145,7 +146,7 @@ POST /projects/:id/feature_flags | `name` | string | yes | The name of the feature flag. | | `version` | string | yes | The version of the feature flag. Must be `new_version_flag`. Omit or set to `legacy_flag` to create a [Legacy Feature Flag](feature_flags_legacy.md). | | `description` | string | no | The description of the feature flag. | -| `strategies` | JSON | no | The feature flag [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies). | +| `strategies` | JSON | no | The feature flag [strategies](../operations/feature_flags.md#feature-flag-strategies). | | `strategies:name` | JSON | no | The strategy name. | | `strategies:parameters` | JSON | no | The strategy parameters. | | `strategies:scopes` | JSON | no | The scopes for the strategy. | @@ -203,7 +204,7 @@ PUT /projects/:id/feature_flags/:name | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). | | `name` | string | yes | The name of the feature flag. | | `description` | string | no | The description of the feature flag. | -| `strategies` | JSON | no | The feature flag [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies). | +| `strategies` | JSON | no | The feature flag [strategies](../operations/feature_flags.md#feature-flag-strategies). | | `strategies:id` | JSON | no | The feature flag strategy id. | | `strategies:name` | JSON | no | The strategy name. | | `strategies:parameters` | JSON | no | The strategy parameters. | diff --git a/doc/api/feature_flags_legacy.md b/doc/api/feature_flags_legacy.md index 30bae9c5eeb..7e4fc47a1de 100644 --- a/doc/api/feature_flags_legacy.md +++ b/doc/api/feature_flags_legacy.md @@ -8,10 +8,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5. -CAUTION: **Deprecation** +CAUTION: **Deprecation:** This API is deprecated and [scheduled for removal in GitLab 14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213369). Use [this API](feature_flags.md) instead. -API for accessing resources of [GitLab Feature Flags](../user/project/operations/feature_flags.md). +API for accessing resources of [GitLab Feature Flags](../operations/feature_flags.md). Users with Developer or higher [permissions](../user/permissions.md) can access Feature Flag API. @@ -166,7 +166,7 @@ POST /projects/:id/feature_flags | `scopes` | JSON | no | The feature flag specs of the feature flag. | | `scopes:environment_scope` | string | no | The environment spec. | | `scopes:active` | boolean | no | Whether the spec is active. | -| `scopes:strategies` | JSON | no | The [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. | +| `scopes:strategies` | JSON | no | The [strategies](../operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. | ```shell curl https://gitlab.example.com/api/v4/projects/1/feature_flags \ diff --git a/doc/api/freeze_periods.md b/doc/api/freeze_periods.md index ee5e657c945..e6a5e69497f 100644 --- a/doc/api/freeze_periods.md +++ b/doc/api/freeze_periods.md @@ -1,8 +1,15 @@ +--- +stage: Release +group: Release Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +type: concepts, howto +--- + # Freeze Periods API > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29382) in GitLab 13.0. -You can use the Freeze Periods API to manipulate GitLab's [Freeze Period](../user/project/releases/index.md#set-a-deploy-freeze) entries. +You can use the Freeze Periods API to manipulate GitLab's [Freeze Period](../user/project/releases/index.md#prevent-unintentional-releases-by-setting-a-deploy-freeze) entries. ## Permissions and security diff --git a/doc/api/geo_nodes.md b/doc/api/geo_nodes.md index 12f785a3e3d..402170fba37 100644 --- a/doc/api/geo_nodes.md +++ b/doc/api/geo_nodes.md @@ -367,8 +367,9 @@ Example response: "package_files_count": 10, "package_files_checksummed_count": 10, "package_files_checksum_failed_count": 0, - "package_files_synced_count": 10, - "package_files_failed_count": 5 + "package_files_registry_count": 10, + "package_files_synced_count": 6, + "package_files_failed_count": 3 }, { "geo_node_id": 2, @@ -440,8 +441,9 @@ Example response: "package_files_count": 10, "package_files_checksummed_count": 10, "package_files_checksum_failed_count": 0, - "package_files_synced_count": 10, - "package_files_failed_count": 5 + "package_files_registry_count": 10, + "package_files_synced_count": 6, + "package_files_failed_count": 3 } ] ``` diff --git a/doc/api/graphql/getting_started.md b/doc/api/graphql/getting_started.md index 901bf85ff40..bf8a2120734 100644 --- a/doc/api/graphql/getting_started.md +++ b/doc/api/graphql/getting_started.md @@ -147,7 +147,7 @@ Example: Let's have some tea - add a `:tea:` reaction emoji to an issue. ```graphql mutation { - addAwardEmoji(input: { awardableId: "gid://gitlab/Issue/27039960", + awardEmojiAdd(input: { awardableId: "gid://gitlab/Issue/27039960", name: "tea" }) { awardEmoji { diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql index c4bbe7d969d..2ed6bec104d 100644 --- a/doc/api/graphql/reference/gitlab_schema.graphql +++ b/doc/api/graphql/reference/gitlab_schema.graphql @@ -260,6 +260,11 @@ type AlertManagementAlert implements Noteable { issueIid: ID """ + URL for metrics embed for the alert + """ + metricsDashboardUrl: String + + """ Monitoring tool the alert came from """ monitoringTool: String @@ -390,12 +395,12 @@ enum AlertManagementAlertSort { EVENT_COUNT_DESC """ - Severity by ascending order + Severity from less critical to more critical """ SEVERITY_ASC """ - Severity by descending order + Severity from more critical to less critical """ SEVERITY_DESC @@ -410,12 +415,12 @@ enum AlertManagementAlertSort { STARTED_AT_DESC """ - Status by ascending order + Status by order: Ignored > Resolved > Acknowledged > Triggered """ STATUS_ASC """ - Status by descending order + Status by order: Triggered > Acknowledged > Resolved > Ignored """ STATUS_DESC @@ -598,6 +603,61 @@ type AlertSetAssigneesPayload { The issue created after mutation """ issue: Issue + + """ + The todo after mutation + """ + todo: Todo +} + +""" +Autogenerated input type of AlertTodoCreate +""" +input AlertTodoCreateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The iid of the alert to mutate + """ + iid: String! + + """ + The project the alert to mutate is in + """ + projectPath: ID! +} + +""" +Autogenerated return type of AlertTodoCreate +""" +type AlertTodoCreatePayload { + """ + The alert after mutation + """ + alert: AlertManagementAlert + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The issue created after mutation + """ + issue: Issue + + """ + The todo after mutation + """ + todo: Todo } """ @@ -635,6 +695,131 @@ type AwardEmoji { user: User! } +""" +Autogenerated input type of AwardEmojiAdd +""" +input AwardEmojiAddInput { + """ + The global id of the awardable resource + """ + awardableId: ID! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The emoji name + """ + name: String! +} + +""" +Autogenerated return type of AwardEmojiAdd +""" +type AwardEmojiAddPayload { + """ + The award emoji after mutation + """ + awardEmoji: AwardEmoji + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" +Autogenerated input type of AwardEmojiRemove +""" +input AwardEmojiRemoveInput { + """ + The global id of the awardable resource + """ + awardableId: ID! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The emoji name + """ + name: String! +} + +""" +Autogenerated return type of AwardEmojiRemove +""" +type AwardEmojiRemovePayload { + """ + The award emoji after mutation + """ + awardEmoji: AwardEmoji + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" +Autogenerated input type of AwardEmojiToggle +""" +input AwardEmojiToggleInput { + """ + The global id of the awardable resource + """ + awardableId: ID! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The emoji name + """ + name: String! +} + +""" +Autogenerated return type of AwardEmojiToggle +""" +type AwardEmojiTogglePayload { + """ + The award emoji after mutation + """ + awardEmoji: AwardEmoji + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. + """ + toggledOn: Boolean! +} + type BaseService implements Service { """ Indicates if the service is active @@ -664,6 +849,11 @@ type Blob implements Entry { lfsOid: String """ + Blob mode in numeric format + """ + mode: String + + """ Name of the entry """ name: String! @@ -1222,6 +1412,51 @@ enum CommitEncoding { } """ +Represents a ComplianceFramework associated with a Project +""" +type ComplianceFramework { + """ + Name of the compliance framework + """ + name: ProjectSettingEnum! +} + +""" +The connection type for ComplianceFramework. +""" +type ComplianceFrameworkConnection { + """ + A list of edges. + """ + edges: [ComplianceFrameworkEdge] + + """ + A list of nodes. + """ + nodes: [ComplianceFramework] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type ComplianceFrameworkEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ComplianceFramework +} + +""" A tag expiration policy designed to keep only the images that matter most """ type ContainerExpirationPolicy { @@ -1248,12 +1483,12 @@ type ContainerExpirationPolicy { """ Tags with names matching this regex pattern will expire """ - nameRegex: String + nameRegex: UntrustedRegexp """ Tags with names matching this regex pattern will be preserved """ - nameRegexKeep: String + nameRegexKeep: UntrustedRegexp """ Next time that this container expiration policy will get executed @@ -1395,6 +1630,11 @@ type CreateAlertIssuePayload { The issue created after mutation """ issue: Issue + + """ + The todo after mutation + """ + todo: Todo } """ @@ -1517,6 +1757,11 @@ input CreateDiffNoteInput { clientMutationId: String """ + The confidentiality flag of a note. Default is false. + """ + confidential: Boolean + + """ The global id of the resource to add a note to """ noteableId: ID! @@ -1642,6 +1887,11 @@ input CreateImageDiffNoteInput { clientMutationId: String """ + The confidentiality flag of a note. Default is false. + """ + confidential: Boolean + + """ The global id of the resource to add a note to """ noteableId: ID! @@ -1742,6 +1992,11 @@ input CreateNoteInput { clientMutationId: String """ + The confidentiality flag of a note. Default is false. + """ + confidential: Boolean + + """ The global id of the discussion this note is in reply to """ discussionId: ID @@ -1824,7 +2079,7 @@ input CreateSnippetInput { """ Content of the snippet """ - content: String! + content: String """ Description of the snippet @@ -1837,6 +2092,11 @@ input CreateSnippetInput { fileName: String """ + The snippet files to create + """ + files: [SnippetFileInputType!] + + """ The project full path the snippet is associated with """ projectPath: ID @@ -1885,6 +2145,51 @@ enum DastScanTypeEnum { } """ +Autogenerated input type of DastSiteProfileCreate +""" +input DastSiteProfileCreateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project the site profile belongs to. + """ + fullPath: ID! + + """ + The name of the site profile. + """ + profileName: String! + + """ + The URL of the target to be scanned. + """ + targetUrl: String +} + +""" +Autogenerated return type of DastSiteProfileCreate +""" +type DastSiteProfileCreatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + ID of the site profile. + """ + id: ID +} + +""" Autogenerated input type of DeleteAnnotation """ input DeleteAnnotationInput { @@ -2946,6 +3251,51 @@ type DiffRefs { startSha: String! } +""" +Changes to a single file +""" +type DiffStats { + """ + Number of lines added to this file + """ + additions: Int! + + """ + Number of lines deleted from this file + """ + deletions: Int! + + """ + File path, relative to repository root + """ + path: String! +} + +""" +Aggregated summary of changes +""" +type DiffStatsSummary { + """ + Number of lines added + """ + additions: Int! + + """ + Number of lines changed + """ + changes: Int! + + """ + Number of lines deleted + """ + deletions: Int! + + """ + Number of files changed + """ + fileCount: Int! +} + type Discussion implements ResolvableInterface { """ Timestamp of the discussion's creation @@ -3294,7 +3644,7 @@ type Epic implements Noteable { last: Int """ - Filter epics by title and description + Search query for epic title or description """ search: String @@ -4081,6 +4431,11 @@ The connection type for EpicIssue. """ type EpicIssueConnection { """ + Total count of collection + """ + count: Int! + + """ A list of edges. """ edges: [EpicIssueEdge] @@ -4571,7 +4926,7 @@ type Group { labelName: [String!] """ - Filter epics by title and description + Search query for epic title or description """ search: String @@ -4648,7 +5003,7 @@ type Group { last: Int """ - Filter epics by title and description + Search query for epic title or description """ search: String @@ -4754,6 +5109,11 @@ type Group { iids: [String!] """ + Iterations applied to the issue + """ + iterationId: [ID] + + """ Labels applied to this issue """ labelName: [String] @@ -4769,7 +5129,7 @@ type Group { milestoneTitle: [String] """ - Search query for finding issues by title or description + Search query for issue title or description """ search: String @@ -4820,6 +5180,21 @@ type Group { first: Int """ + The ID of the Iteration to look up + """ + id: ID + + """ + The internal ID of the Iteration to look up + """ + iid: ID + + """ + Whether to include ancestor iterations. Defaults to true + """ + includeAncestors: Boolean + + """ Returns the last _n_ elements from the list. """ last: Int @@ -5014,11 +5389,21 @@ type Group { shareWithGroupLock: Boolean """ + Total storage limit of the root namespace in bytes + """ + storageSizeLimit: Float + + """ The permission level required to create subgroups within the group """ subgroupCreationLevel: String """ + Date until the temporary storage increase is active + """ + temporaryStorageIncreaseEndsOn: Time + + """ Time logged in issues by group members """ timelogs( @@ -5113,6 +5498,11 @@ type Group { reportType: [VulnerabilityReportType!] """ + Filter vulnerabilities by scanner + """ + scanner: [String!] + + """ Filter vulnerabilities by severity """ severity: [VulnerabilitySeverity!] @@ -5159,6 +5549,31 @@ type Group { ): VulnerabilitiesCountByDayAndSeverityConnection """ + Vulnerability scanners reported on the project vulnerabilties of the group and its subgroups + """ + vulnerabilityScanners( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): VulnerabilityScannerConnection + + """ Web URL of the group """ webUrl: String! @@ -5285,6 +5700,31 @@ type InstanceSecurityDashboard { """ last: Int ): ProjectConnection! + + """ + Vulnerability scanners reported on the vulnerabilties from projects selected in Instance Security Dashboard + """ + vulnerabilityScanners( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): VulnerabilityScannerConnection } """ @@ -5413,6 +5853,11 @@ type Issue implements Noteable { healthStatus: HealthStatus """ + ID of the issue + """ + id: ID! + + """ Internal ID of the issue """ iid: ID! @@ -5593,6 +6038,11 @@ The connection type for Issue. """ type IssueConnection { """ + Total count of collection + """ + count: Int! + + """ A list of edges. """ edges: [IssueEdge] @@ -5804,6 +6254,51 @@ type IssueSetIterationPayload { } """ +Autogenerated input type of IssueSetLocked +""" +input IssueSetLockedInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The iid of the issue to mutate + """ + iid: String! + + """ + Whether or not to lock discussion on the issue + """ + locked: Boolean! + + """ + The project the issue to mutate is in + """ + projectPath: ID! +} + +""" +Autogenerated return type of IssueSetLocked +""" +type IssueSetLockedPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The issue after mutation + """ + issue: Issue +} + +""" Autogenerated input type of IssueSetWeight """ input IssueSetWeightInput { @@ -5962,6 +6457,11 @@ type Iteration { id: ID! """ + Internal ID of the iteration + """ + iid: ID! + + """ Timestamp of the iteration start date """ startDate: Time @@ -6138,6 +6638,11 @@ input JiraImportStartInput { The project to import the Jira project into """ projectPath: ID! + + """ + The mapping of Jira to GitLab users + """ + usersMapping: [JiraUsersMappingInputType!] } """ @@ -6259,7 +6764,7 @@ type JiraService implements Service { active: Boolean """ - List of Jira projects fetched through Jira REST API + List of all Jira projects fetched through Jira REST API """ projects( """ @@ -6296,11 +6801,21 @@ type JiraService implements Service { type JiraUser { """ - Id of the matched GitLab user + ID of the matched GitLab user """ gitlabId: Int """ + Name of the matched GitLab user + """ + gitlabName: String + + """ + Username of the matched GitLab user + """ + gitlabUsername: String + + """ Account id of the Jira user """ jiraAccountId: String! @@ -6316,6 +6831,18 @@ type JiraUser { jiraEmail: String } +input JiraUsersMappingInputType { + """ + Id of the GitLab user + """ + gitlabId: Int + + """ + Jira account id of the user + """ + jiraAccountId: String! +} + type Label { """ Background color of the label @@ -6521,6 +7048,21 @@ type MergeRequest implements Noteable { diffRefs: DiffRefs """ + Details about which files were changed in this merge request + """ + diffStats( + """ + A specific file-path + """ + path: String + ): [DiffStats!] + + """ + Summary of which files were changed in this merge request + """ + diffStatsSummary: DiffStatsSummary + + """ Indicates if comments on the merge request are locked to members only """ discussionLocked: Boolean! @@ -7311,6 +7853,61 @@ enum MergeRequestState { opened } +""" +Autogenerated input type of MergeRequestUpdate +""" +input MergeRequestUpdateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Description of the merge request (Markdown rendered as HTML for caching) + """ + description: String + + """ + The iid of the merge request to mutate + """ + iid: String! + + """ + The project the merge request to mutate is in + """ + projectPath: ID! + + """ + Target branch of the merge request + """ + targetBranch: String + + """ + Title of the merge request + """ + title: String +} + +""" +Autogenerated return type of MergeRequestUpdate +""" +type MergeRequestUpdatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The merge request after mutation + """ + mergeRequest: MergeRequest +} + type Metadata { """ Revision @@ -7477,6 +8074,11 @@ type Milestone { state: MilestoneStateEnum! """ + Milestone statistics + """ + stats: MilestoneStats + + """ Indicates if milestone is at subgroup level """ subgroupMilestone: Boolean! @@ -7538,6 +8140,21 @@ enum MilestoneStateEnum { } """ +Contains statistics about a milestone +""" +type MilestoneStats { + """ + Number of closed issues associated with the milestone + """ + closedIssuesCount: Int + + """ + Total number of issues associated with the milestone + """ + totalIssuesCount: Int +} + +""" The position to which the adjacent object should be moved """ enum MoveType { @@ -7553,10 +8170,14 @@ enum MoveType { } type Mutation { - addAwardEmoji(input: AddAwardEmojiInput!): AddAwardEmojiPayload + addAwardEmoji(input: AddAwardEmojiInput!): AddAwardEmojiPayload @deprecated(reason: "Use awardEmojiAdd. Deprecated in 13.2") addProjectToSecurityDashboard(input: AddProjectToSecurityDashboardInput!): AddProjectToSecurityDashboardPayload adminSidekiqQueuesDeleteJobs(input: AdminSidekiqQueuesDeleteJobsInput!): AdminSidekiqQueuesDeleteJobsPayload alertSetAssignees(input: AlertSetAssigneesInput!): AlertSetAssigneesPayload + alertTodoCreate(input: AlertTodoCreateInput!): AlertTodoCreatePayload + awardEmojiAdd(input: AwardEmojiAddInput!): AwardEmojiAddPayload + awardEmojiRemove(input: AwardEmojiRemoveInput!): AwardEmojiRemovePayload + awardEmojiToggle(input: AwardEmojiToggleInput!): AwardEmojiTogglePayload boardListUpdateLimitMetrics(input: BoardListUpdateLimitMetricsInput!): BoardListUpdateLimitMetricsPayload commitCreate(input: CommitCreateInput!): CommitCreatePayload createAlertIssue(input: CreateAlertIssueInput!): CreateAlertIssuePayload @@ -7569,6 +8190,7 @@ type Mutation { createNote(input: CreateNoteInput!): CreateNotePayload createRequirement(input: CreateRequirementInput!): CreateRequirementPayload createSnippet(input: CreateSnippetInput!): CreateSnippetPayload + dastSiteProfileCreate(input: DastSiteProfileCreateInput!): DastSiteProfileCreatePayload deleteAnnotation(input: DeleteAnnotationInput!): DeleteAnnotationPayload designManagementDelete(input: DesignManagementDeleteInput!): DesignManagementDeletePayload designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload @@ -7586,6 +8208,7 @@ type Mutation { issueSetConfidential(input: IssueSetConfidentialInput!): IssueSetConfidentialPayload issueSetDueDate(input: IssueSetDueDateInput!): IssueSetDueDatePayload issueSetIteration(input: IssueSetIterationInput!): IssueSetIterationPayload + issueSetLocked(input: IssueSetLockedInput!): IssueSetLockedPayload issueSetWeight(input: IssueSetWeightInput!): IssueSetWeightPayload jiraImportStart(input: JiraImportStartInput!): JiraImportStartPayload jiraImportUsers(input: JiraImportUsersInput!): JiraImportUsersPayload @@ -7597,14 +8220,19 @@ type Mutation { mergeRequestSetMilestone(input: MergeRequestSetMilestoneInput!): MergeRequestSetMilestonePayload mergeRequestSetSubscription(input: MergeRequestSetSubscriptionInput!): MergeRequestSetSubscriptionPayload mergeRequestSetWip(input: MergeRequestSetWipInput!): MergeRequestSetWipPayload - removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload + + """ + Update attributes of a merge request + """ + mergeRequestUpdate(input: MergeRequestUpdateInput!): MergeRequestUpdatePayload + removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload @deprecated(reason: "Use awardEmojiRemove. Deprecated in 13.2") removeProjectFromSecurityDashboard(input: RemoveProjectFromSecurityDashboardInput!): RemoveProjectFromSecurityDashboardPayload runDastScan(input: RunDASTScanInput!): RunDASTScanPayload todoMarkDone(input: TodoMarkDoneInput!): TodoMarkDonePayload todoRestore(input: TodoRestoreInput!): TodoRestorePayload todoRestoreMany(input: TodoRestoreManyInput!): TodoRestoreManyPayload todosMarkAllDone(input: TodosMarkAllDoneInput!): TodosMarkAllDonePayload - toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload + toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload @deprecated(reason: "Use awardEmojiToggle. Deprecated in 13.2") updateAlertStatus(input: UpdateAlertStatusInput!): UpdateAlertStatusPayload updateContainerExpirationPolicy(input: UpdateContainerExpirationPolicyInput!): UpdateContainerExpirationPolicyPayload updateEpic(input: UpdateEpicInput!): UpdateEpicPayload @@ -7616,6 +8244,7 @@ type Mutation { """ updateImageDiffNote(input: UpdateImageDiffNoteInput!): UpdateImageDiffNotePayload updateIssue(input: UpdateIssueInput!): UpdateIssuePayload + updateIteration(input: UpdateIterationInput!): UpdateIterationPayload """ Updates a Note. If the body of the Note contains only quick actions, the Note @@ -7733,6 +8362,16 @@ type Namespace { rootStorageStatistics: RootStorageStatistics """ + Total storage limit of the root namespace in bytes + """ + storageSizeLimit: Float + + """ + Date until the temporary storage increase is active + """ + temporaryStorageIncreaseEndsOn: Time + + """ Visibility of the namespace """ visibility: String @@ -7845,6 +8484,11 @@ type Note implements ResolvableInterface { system: Boolean! """ + Name of the icon corresponding to a system note + """ + systemNoteIconName: String + + """ Timestamp of the note's last activity """ updatedAt: Time! @@ -8463,6 +9107,31 @@ type Project { ): BoardConnection """ + Compliance frameworks associated with the project + """ + complianceFrameworks( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ComplianceFrameworkConnection + + """ The container expiration policy of the project """ containerExpirationPolicy: ContainerExpirationPolicy @@ -8517,7 +9186,7 @@ type Project { name: String """ - Search query + Search query for environment name """ search: String @@ -8607,6 +9276,11 @@ type Project { iids: [String!] """ + Iterations applied to the issue + """ + iterationId: [ID] + + """ Labels applied to this issue """ labelName: [String] @@ -8617,7 +9291,7 @@ type Project { milestoneTitle: [String] """ - Search query for finding issues by title or description + Search query for issue title or description """ search: String @@ -8702,6 +9376,11 @@ type Project { iids: [String!] """ + Iterations applied to the issue + """ + iterationId: [ID] + + """ Labels applied to this issue """ labelName: [String] @@ -8717,7 +9396,7 @@ type Project { milestoneTitle: [String] """ - Search query for finding issues by title or description + Search query for issue title or description """ search: String @@ -9056,7 +9735,7 @@ type Project { publicJobs: Boolean """ - A single release of the project. Available only when feature flag `graphql_release_data` is enabled + A single release of the project """ release( """ @@ -9066,7 +9745,7 @@ type Project { ): Release """ - Releases of the project. Available only when feature flag `graphql_release_data` is enabled + Releases of the project """ releases( """ @@ -9125,7 +9804,7 @@ type Project { iids: [ID!] """ - Filter requirements by title search + Search query for requirement title """ search: String @@ -9185,7 +9864,7 @@ type Project { last: Int """ - Filter requirements by title search + Search query for requirement title """ search: String @@ -9201,6 +9880,16 @@ type Project { ): RequirementConnection """ + SAST CI configuration for the project + """ + sastCiConfiguration: SastCiConfiguration + + """ + Information about security analyzers used in the project + """ + securityScanners: SecurityScanners + + """ Detailed version of a Sentry error on the project """ sentryDetailedError( @@ -9375,6 +10064,11 @@ type Project { reportType: [VulnerabilityReportType!] """ + Filter vulnerabilities by scanner + """ + scanner: [String!] + + """ Filter vulnerabilities by severity """ severity: [VulnerabilitySeverity!] @@ -9386,6 +10080,31 @@ type Project { ): VulnerabilityConnection """ + Vulnerability scanners reported on the project vulnerabilties + """ + vulnerabilityScanners( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): VulnerabilityScannerConnection + + """ Counts for each severity of vulnerability of the project """ vulnerabilitySeveritiesCount: VulnerabilitySeveritiesCount @@ -9733,6 +10452,17 @@ type ProjectPermissions { uploadFile: Boolean! } +""" +Names of compliance frameworks that can be assigned to a Project +""" +enum ProjectSettingEnum { + gdpr + hipaa + pci_dss + soc_2 + sox +} + type ProjectStatistics { """ Build artifacts size of the project @@ -9760,6 +10490,11 @@ type ProjectStatistics { repositorySize: Float! """ + Snippets size of the project + """ + snippetsSize: Float + + """ Storage size of the project """ storageSize: Float! @@ -9871,7 +10606,7 @@ type Query { membership: Boolean """ - Search criteria + Search query for project name, path, or description """ search: String ): ProjectConnection @@ -9932,7 +10667,7 @@ type Query { ): SnippetConnection """ - Find a user on this instance + Find a user """ user( """ @@ -10021,6 +10756,11 @@ type Query { reportType: [VulnerabilityReportType!] """ + Filter vulnerabilities by scanner + """ + scanner: [String!] + + """ Filter vulnerabilities by severity """ severity: [VulnerabilitySeverity!] @@ -10092,6 +10832,9 @@ enum RegistryState { SYNCED } +""" +Represents a release +""" type Release { """ Assets of the release @@ -10149,6 +10892,11 @@ type Release { ): ReleaseEvidenceConnection """ + Links of the release + """ + links: ReleaseLinks + + """ Milestones associated to the release """ milestones( @@ -10186,7 +10934,7 @@ type Release { """ Name of the tag associated with the release """ - tagName: String! + tagName: String """ Relative web path to the tag associated with the release @@ -10194,11 +10942,104 @@ type Release { tagPath: String } +""" +Represents an asset link associated with a release +""" +type ReleaseAssetLink { + """ + Indicates the link points to an external resource + """ + external: Boolean + + """ + ID of the link + """ + id: ID! + + """ + Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` + """ + linkType: ReleaseAssetLinkType + + """ + Name of the link + """ + name: String + + """ + URL of the link + """ + url: String +} + +""" +The connection type for ReleaseAssetLink. +""" +type ReleaseAssetLinkConnection { + """ + A list of edges. + """ + edges: [ReleaseAssetLinkEdge] + + """ + A list of nodes. + """ + nodes: [ReleaseAssetLink] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type ReleaseAssetLinkEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ReleaseAssetLink +} + +""" +Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` +""" +enum ReleaseAssetLinkType { + """ + Image link type + """ + IMAGE + + """ + Other link type + """ + OTHER + + """ + Package link type + """ + PACKAGE + + """ + Runbook link type + """ + RUNBOOK +} + +""" +A container for all assets associated with a release +""" type ReleaseAssets { """ Number of assets of the release """ - assetsCount: Int + count: Int """ Asset links of the release @@ -10223,7 +11064,7 @@ type ReleaseAssets { Returns the last _n_ elements from the list. """ last: Int - ): ReleaseLinkConnection + ): ReleaseAssetLinkConnection """ Sources of the release @@ -10346,93 +11187,31 @@ type ReleaseEvidenceEdge { node: ReleaseEvidence } -type ReleaseLink { +type ReleaseLinks { """ - Indicates the link points to an external resource + HTTP URL of the release's edit page """ - external: Boolean + editUrl: String """ - ID of the link + HTTP URL of the issues page filtered by this release """ - id: ID! + issuesUrl: String """ - Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` + HTTP URL of the merge request page filtered by this release """ - linkType: ReleaseLinkType + mergeRequestsUrl: String """ - Name of the link + HTTP URL of the release """ - name: String - - """ - URL of the link - """ - url: String + selfUrl: String } """ -The connection type for ReleaseLink. -""" -type ReleaseLinkConnection { - """ - A list of edges. - """ - edges: [ReleaseLinkEdge] - - """ - A list of nodes. - """ - nodes: [ReleaseLink] - - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! -} - -""" -An edge in a connection. +Represents the source code attached to a release in a particular format """ -type ReleaseLinkEdge { - """ - A cursor for use in pagination. - """ - cursor: String! - - """ - The item at the end of the edge. - """ - node: ReleaseLink -} - -""" -Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` -""" -enum ReleaseLinkType { - """ - Image link type - """ - IMAGE - - """ - Other link type - """ - OTHER - - """ - Package link type - """ - PACKAGE - - """ - Runbook link type - """ - RUNBOOK -} - type ReleaseSource { """ Format of the source @@ -10799,6 +11578,11 @@ type RootStorageStatistics { repositorySize: Float! """ + The snippets size in bytes + """ + snippetsSize: Float! + + """ The total storage in bytes """ storageSize: Float! @@ -10860,6 +11644,341 @@ type RunDASTScanPayload { } """ +Represents a CI configuration of SAST +""" +type SastCiConfiguration { + """ + List of analyzers entities attached to SAST configuration. + """ + analyzers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SastCiConfigurationAnalyzersEntityConnection + + """ + List of global entities related to SAST configuration. + """ + global( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SastCiConfigurationEntityConnection + + """ + List of pipeline entities related to SAST configuration. + """ + pipeline( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SastCiConfigurationEntityConnection +} + +""" +Represents an analyzer entity in SAST CI configuration +""" +type SastCiConfigurationAnalyzersEntity { + """ + Analyzer description that is displayed on the form. + """ + description: String + + """ + Indicates whether an analyzer is enabled. + """ + enabled: Boolean + + """ + Analyzer label used in the config UI. + """ + label: String + + """ + Name of the analyzer. + """ + name: String +} + +""" +The connection type for SastCiConfigurationAnalyzersEntity. +""" +type SastCiConfigurationAnalyzersEntityConnection { + """ + A list of edges. + """ + edges: [SastCiConfigurationAnalyzersEntityEdge] + + """ + A list of nodes. + """ + nodes: [SastCiConfigurationAnalyzersEntity] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type SastCiConfigurationAnalyzersEntityEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SastCiConfigurationAnalyzersEntity +} + +""" +Represents an entity in SAST CI configuration +""" +type SastCiConfigurationEntity { + """ + Default value that is used if value is empty. + """ + defaultValue: String + + """ + Entity description that is displayed on the form. + """ + description: String + + """ + CI keyword of entity. + """ + field: String + + """ + Label for entity used in the form. + """ + label: String + + """ + Different possible values of the field. + """ + options( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SastCiConfigurationOptionsEntityConnection + + """ + Type of the field value. + """ + type: String + + """ + Current value of the entity. + """ + value: String +} + +""" +The connection type for SastCiConfigurationEntity. +""" +type SastCiConfigurationEntityConnection { + """ + A list of edges. + """ + edges: [SastCiConfigurationEntityEdge] + + """ + A list of nodes. + """ + nodes: [SastCiConfigurationEntity] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type SastCiConfigurationEntityEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SastCiConfigurationEntity +} + +""" +Represents an entity for options in SAST CI configuration +""" +type SastCiConfigurationOptionsEntity { + """ + Label of option entity. + """ + label: String + + """ + Value of option entity. + """ + value: String +} + +""" +The connection type for SastCiConfigurationOptionsEntity. +""" +type SastCiConfigurationOptionsEntityConnection { + """ + A list of edges. + """ + edges: [SastCiConfigurationOptionsEntityEdge] + + """ + A list of nodes. + """ + nodes: [SastCiConfigurationOptionsEntity] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type SastCiConfigurationOptionsEntityEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SastCiConfigurationOptionsEntity +} + +""" +Represents a resource scanned by a security scan +""" +type ScannedResource { + """ + The HTTP request method used to access the URL + """ + requestMethod: String + + """ + The URL scanned by the scanner + """ + url: String +} + +""" +The connection type for ScannedResource. +""" +type ScannedResourceConnection { + """ + A list of edges. + """ + edges: [ScannedResourceEdge] + + """ + A list of nodes. + """ + nodes: [ScannedResource] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type ScannedResourceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ScannedResource +} + +""" Represents summary of a security report """ type SecurityReportSummary { @@ -10869,6 +11988,11 @@ type SecurityReportSummary { containerScanning: SecurityReportSummarySection """ + Aggregated counts for the coverage_fuzzing scan + """ + coverageFuzzing: SecurityReportSummarySection + + """ Aggregated counts for the dast scan """ dast: SecurityReportSummarySection @@ -10894,17 +12018,78 @@ Represents a section of a summary of a security report """ type SecurityReportSummarySection { """ + A list of the first 20 scanned resources + """ + scannedResources( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ScannedResourceConnection + + """ Total number of scanned resources """ scannedResourcesCount: Int """ + Path to download all the scanned resources in CSV format + """ + scannedResourcesCsvPath: String + + """ Total number of vulnerabilities """ vulnerabilitiesCount: Int } """ +The type of the security scanner. +""" +enum SecurityScannerType { + CONTAINER_SCANNING + DAST + DEPENDENCY_SCANNING + SAST + SECRET_DETECTION +} + +""" +Represents a list of security scanners +""" +type SecurityScanners { + """ + List of analyzers which are available for the project. + """ + available: [SecurityScannerType!] + + """ + List of analyzers which are enabled for the project. + """ + enabled: [SecurityScannerType!] + + """ + List of analyzers which ran successfully in the latest pipeline. + """ + pipelineRun: [SecurityScannerType!] +} + +""" A Sentry error. """ type SentryDetailedError { @@ -10934,11 +12119,16 @@ type SentryDetailedError { firstReleaseLastCommit: String """ - Release version the error was first seen + Release short version the error was first seen """ firstReleaseShortVersion: String """ + Release version the error was first seen + """ + firstReleaseVersion: String + + """ Timestamp when the error was first seen """ firstSeen: Time! @@ -10974,11 +12164,16 @@ type SentryDetailedError { lastReleaseLastCommit: String """ - Release version the error was last seen + Release short version the error was last seen """ lastReleaseShortVersion: String """ + Release version the error was last seen + """ + lastReleaseVersion: String + + """ Timestamp when the error was last seen """ lastSeen: Time! @@ -11178,7 +12373,7 @@ type SentryErrorCollection { last: Int """ - Search term for the Sentry error. + Search query for the Sentry error details """ searchTerm: String @@ -11401,6 +12596,7 @@ enum ServiceType { BUGZILLA_SERVICE BUILDKITE_SERVICE CAMPFIRE_SERVICE + CONFLUENCE_SERVICE CUSTOM_ISSUE_TRACKER_SERVICE DISCORD_SERVICE DRONE_CI_SERVICE @@ -11710,6 +12906,41 @@ type SnippetEdge { node: Snippet } +""" +Type of a snippet file input action +""" +enum SnippetFileInputActionEnum { + create + delete + move + update +} + +""" +Represents an action to perform over a snippet file +""" +input SnippetFileInputType { + """ + Type of input action + """ + action: SnippetFileInputActionEnum! + + """ + Snippet file content + """ + content: String + + """ + Path of the snippet file + """ + filePath: String! + + """ + Previous path of the snippet file + """ + previousPath: String +} + type SnippetPermissions { """ Indicates the user can perform `admin_snippet` on this resource @@ -11923,6 +13154,7 @@ type TestReportEdge { State of a test report """ enum TestReportState { + FAILED PASSED } @@ -12168,9 +13400,14 @@ type TodoRestoreManyPayload { errors: [String!]! """ - The ids of the updated todo items + Updated todos + """ + todos: [Todo!]! + + """ + The ids of the updated todo items. Deprecated in 13.2: Use todos """ - updatedIds: [ID!]! + updatedIds: [ID!]! @deprecated(reason: "Use todos. Deprecated in 13.2") } """ @@ -12200,6 +13437,11 @@ enum TodoStateEnum { enum TodoTargetEnum { """ + An Alert + """ + ALERT + + """ A Commit """ COMMIT @@ -12250,9 +13492,14 @@ type TodosMarkAllDonePayload { errors: [String!]! """ - Ids of the updated todos + Updated todos + """ + todos: [Todo!]! + + """ + Ids of the updated todos. Deprecated in 13.2: Use todos """ - updatedIds: [ID!]! + updatedIds: [ID!]! @deprecated(reason: "Use todos. Deprecated in 13.2") } """ @@ -12463,6 +13710,11 @@ enum TypeEnum { } """ +A regexp containing patterns sourced from user input +""" +scalar UntrustedRegexp + +""" Autogenerated input type of UpdateAlertStatus """ input UpdateAlertStatusInput { @@ -12510,6 +13762,11 @@ type UpdateAlertStatusPayload { The issue created after mutation """ issue: Issue + + """ + The todo after mutation + """ + todo: Todo } """ @@ -12537,6 +13794,16 @@ input UpdateContainerExpirationPolicyInput { keepN: ContainerExpirationPolicyKeepEnum """ + Tags with names matching this regex pattern will expire + """ + nameRegex: UntrustedRegexp + + """ + Tags with names matching this regex pattern will be preserved + """ + nameRegexKeep: UntrustedRegexp + + """ Tags older that this will expire """ olderThan: ContainerExpirationPolicyOlderThanEnum @@ -12790,6 +14057,66 @@ type UpdateIssuePayload { } """ +Autogenerated input type of UpdateIteration +""" +input UpdateIterationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The description of the iteration + """ + description: String + + """ + The end date of the iteration + """ + dueDate: String + + """ + The group of the iteration + """ + groupPath: ID! + + """ + The id of the iteration + """ + id: ID! + + """ + The start date of the iteration + """ + startDate: String + + """ + The title of the iteration + """ + title: String +} + +""" +Autogenerated return type of UpdateIteration +""" +type UpdateIterationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The updated iteration + """ + iteration: Iteration +} + +""" Autogenerated input type of UpdateNote """ input UpdateNoteInput { @@ -12904,6 +14231,11 @@ input UpdateSnippetInput { fileName: String """ + The snippet files to update + """ + files: [SnippetFileInputType!] + + """ The global id of the snippet to update """ id: ID! @@ -13387,6 +14719,11 @@ type Vulnerability { id: ID! """ + Identifiers of the vulnerability. + """ + identifiers: [VulnerabilityIdentifier!]! + + """ List of issue links related to the vulnerability """ issueLinks( @@ -13422,17 +14759,28 @@ type Vulnerability { location: VulnerabilityLocation """ + Primary identifier of the vulnerability. + """ + primaryIdentifier: VulnerabilityIdentifier + + """ The project on which the vulnerability was found """ project: Project """ Type of the security report that found the vulnerability (SAST, - DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION) + DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION, + COVERAGE_FUZZING) """ reportType: VulnerabilityReportType """ + Scanner metadata for the vulnerability. + """ + scanner: VulnerabilityScanner + + """ Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL) """ severity: VulnerabilitySeverity @@ -13499,6 +14847,31 @@ type VulnerabilityEdge { } """ +Represents a vulnerability identifier. +""" +type VulnerabilityIdentifier { + """ + External ID of the vulnerability identifier + """ + externalId: String + + """ + External type of the vulnerability identifier + """ + externalType: String + + """ + Name of the vulnerability identifier + """ + name: String + + """ + URL of the vulnerability identifier + """ + url: String +} + +""" Represents an issue link of a vulnerability. """ type VulnerabilityIssueLink { @@ -13736,6 +15109,7 @@ The type of the security scan that found the vulnerability. """ enum VulnerabilityReportType { CONTAINER_SCANNING + COVERAGE_FUZZING DAST DEPENDENCY_SCANNING SAST @@ -13743,6 +15117,66 @@ enum VulnerabilityReportType { } """ +Represents a vulnerability scanner. +""" +type VulnerabilityScanner { + """ + External ID of the vulnerability scanner + """ + externalId: String + + """ + Name of the vulnerability scanner + """ + name: String + + """ + Type of the vulnerability report + """ + reportType: VulnerabilityReportType + + """ + Vendor of the vulnerability scanner + """ + vendor: String +} + +""" +The connection type for VulnerabilityScanner. +""" +type VulnerabilityScannerConnection { + """ + A list of edges. + """ + edges: [VulnerabilityScannerEdge] + + """ + A list of nodes. + """ + nodes: [VulnerabilityScanner] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type VulnerabilityScannerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: VulnerabilityScanner +} + +""" Represents vulnerability counts by severity """ type VulnerabilitySeveritiesCount { diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json index d2bc599ff9d..80aaa4aa949 100644 --- a/doc/api/graphql/reference/gitlab_schema.json +++ b/doc/api/graphql/reference/gitlab_schema.json @@ -717,6 +717,20 @@ "deprecationReason": null }, { + "name": "metricsDashboardUrl", + "description": "URL for metrics embed for the alert", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "monitoringTool", "description": "Monitoring tool the alert came from", "args": [ @@ -1089,25 +1103,25 @@ }, { "name": "SEVERITY_ASC", - "description": "Severity by ascending order", + "description": "Severity from less critical to more critical", "isDeprecated": false, "deprecationReason": null }, { "name": "SEVERITY_DESC", - "description": "Severity by descending order", + "description": "Severity from more critical to less critical", "isDeprecated": false, "deprecationReason": null }, { "name": "STATUS_ASC", - "description": "Status by ascending order", + "description": "Status by order: Ignored > Resolved > Acknowledged > Triggered", "isDeprecated": false, "deprecationReason": null }, { "name": "STATUS_DESC", - "description": "Status by descending order", + "description": "Status by order: Triggered > Acknowledged > Resolved > Ignored", "isDeprecated": false, "deprecationReason": null } @@ -1446,6 +1460,164 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "todo", + "description": "The todo after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Todo", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AlertTodoCreateInput", + "description": "Autogenerated input type of AlertTodoCreate", + "fields": null, + "inputFields": [ + { + "name": "projectPath", + "description": "The project the alert to mutate is in", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "iid", + "description": "The iid of the alert to mutate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AlertTodoCreatePayload", + "description": "Autogenerated return type of AlertTodoCreate", + "fields": [ + { + "name": "alert", + "description": "The alert after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "AlertManagementAlert", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issue", + "description": "The issue created after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Issue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "todo", + "description": "The todo after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Todo", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -1577,6 +1749,372 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "AwardEmojiAddInput", + "description": "Autogenerated input type of AwardEmojiAdd", + "fields": null, + "inputFields": [ + { + "name": "awardableId", + "description": "The global id of the awardable resource", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "name", + "description": "The emoji name", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AwardEmojiAddPayload", + "description": "Autogenerated return type of AwardEmojiAdd", + "fields": [ + { + "name": "awardEmoji", + "description": "The award emoji after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "AwardEmoji", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AwardEmojiRemoveInput", + "description": "Autogenerated input type of AwardEmojiRemove", + "fields": null, + "inputFields": [ + { + "name": "awardableId", + "description": "The global id of the awardable resource", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "name", + "description": "The emoji name", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AwardEmojiRemovePayload", + "description": "Autogenerated return type of AwardEmojiRemove", + "fields": [ + { + "name": "awardEmoji", + "description": "The award emoji after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "AwardEmoji", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AwardEmojiToggleInput", + "description": "Autogenerated input type of AwardEmojiToggle", + "fields": null, + "inputFields": [ + { + "name": "awardableId", + "description": "The global id of the awardable resource", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "name", + "description": "The emoji name", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AwardEmojiTogglePayload", + "description": "Autogenerated return type of AwardEmojiToggle", + "fields": [ + { + "name": "awardEmoji", + "description": "The award emoji after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "AwardEmoji", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "toggledOn", + "description": "Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "BaseService", "description": null, @@ -1677,6 +2215,20 @@ "deprecationReason": null }, { + "name": "mode", + "description": "Blob mode in numeric format", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "name", "description": "Name of the entry", "args": [ @@ -3243,6 +3795,149 @@ }, { "kind": "OBJECT", + "name": "ComplianceFramework", + "description": "Represents a ComplianceFramework associated with a Project", + "fields": [ + { + "name": "name", + "description": "Name of the compliance framework", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ProjectSettingEnum", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ComplianceFrameworkConnection", + "description": "The connection type for ComplianceFramework.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ComplianceFrameworkEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ComplianceFramework", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ComplianceFrameworkEdge", + "description": "An edge in a connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The item at the end of the edge.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "ComplianceFramework", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "ContainerExpirationPolicy", "description": "A tag expiration policy designed to keep only the images that matter most", "fields": [ @@ -3322,7 +4017,7 @@ ], "type": { "kind": "SCALAR", - "name": "String", + "name": "UntrustedRegexp", "ofType": null }, "isDeprecated": false, @@ -3336,7 +4031,7 @@ ], "type": { "kind": "SCALAR", - "name": "String", + "name": "UntrustedRegexp", "ofType": null }, "isDeprecated": false, @@ -3640,6 +4335,20 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "todo", + "description": "The todo after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Todo", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -3974,6 +4683,16 @@ "defaultValue": null }, { + "name": "confidential", + "description": "The confidentiality flag of a note. Default is false.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { "name": "position", "description": "The position of this note on a diff", "type": { @@ -4312,6 +5031,16 @@ "defaultValue": null }, { + "name": "confidential", + "description": "The confidentiality flag of a note. Default is false.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { "name": "position", "description": "The position of this note on a diff", "type": { @@ -4584,6 +5313,16 @@ "defaultValue": null }, { + "name": "confidential", + "description": "The confidentiality flag of a note. Default is false.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { "name": "discussionId", "description": "The global id of the discussion this note is in reply to", "type": { @@ -4825,13 +5564,9 @@ "name": "content", "description": "Content of the snippet", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, "defaultValue": null }, @@ -4888,6 +5623,24 @@ "defaultValue": null }, { + "name": "files", + "description": "The snippet files to create", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SnippetFileInputType", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -4988,6 +5741,132 @@ }, { "kind": "INPUT_OBJECT", + "name": "DastSiteProfileCreateInput", + "description": "Autogenerated input type of DastSiteProfileCreate", + "fields": null, + "inputFields": [ + { + "name": "fullPath", + "description": "The project the site profile belongs to.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "profileName", + "description": "The name of the site profile.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "targetUrl", + "description": "The URL of the target to be scanned.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DastSiteProfileCreatePayload", + "description": "Autogenerated return type of DastSiteProfileCreate", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "ID of the site profile.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", "name": "DeleteAnnotationInput", "description": "Autogenerated input type of DeleteAnnotation", "fields": null, @@ -8130,6 +9009,158 @@ }, { "kind": "OBJECT", + "name": "DiffStats", + "description": "Changes to a single file", + "fields": [ + { + "name": "additions", + "description": "Number of lines added to this file", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deletions", + "description": "Number of lines deleted from this file", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": "File path, relative to repository root", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DiffStatsSummary", + "description": "Aggregated summary of changes", + "fields": [ + { + "name": "additions", + "description": "Number of lines added", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "changes", + "description": "Number of lines changed", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deletions", + "description": "Number of lines deleted", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fileCount", + "description": "Number of files changed", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "Discussion", "description": null, "fields": [ @@ -9117,7 +10148,7 @@ }, { "name": "search", - "description": "Filter epics by title and description", + "description": "Search query for epic title or description", "type": { "kind": "SCALAR", "name": "String", @@ -11358,6 +12389,24 @@ "description": "The connection type for EpicIssue.", "fields": [ { + "name": "count", + "description": "Total count of collection", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "edges", "description": "A list of edges.", "args": [ @@ -12696,7 +13745,7 @@ }, { "name": "search", - "description": "Filter epics by title and description", + "description": "Search query for epic title or description", "type": { "kind": "SCALAR", "name": "String", @@ -12825,7 +13874,7 @@ }, { "name": "search", - "description": "Filter epics by title and description", + "description": "Search query for epic title or description", "type": { "kind": "SCALAR", "name": "String", @@ -13164,7 +14213,7 @@ }, { "name": "search", - "description": "Search query for finding issues by title or description", + "description": "Search query for issue title or description", "type": { "kind": "SCALAR", "name": "String", @@ -13183,6 +14232,20 @@ "defaultValue": "created_desc" }, { + "name": "iterationId", + "description": "Iterations applied to the issue", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -13276,6 +14339,36 @@ "defaultValue": null }, { + "name": "id", + "description": "The ID of the Iteration to look up", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "iid", + "description": "The internal ID of the Iteration to look up", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "includeAncestors", + "description": "Whether to include ancestor iterations. Defaults to true", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -13733,6 +14826,20 @@ "deprecationReason": null }, { + "name": "storageSizeLimit", + "description": "Total storage limit of the root namespace in bytes", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "subgroupCreationLevel", "description": "The permission level required to create subgroups within the group", "args": [ @@ -13747,6 +14854,20 @@ "deprecationReason": null }, { + "name": "temporaryStorageIncreaseEndsOn", + "description": "Date until the temporary storage increase is active", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "timelogs", "description": "Time logged in issues by group members", "args": [ @@ -13966,6 +15087,24 @@ "defaultValue": null }, { + "name": "scanner", + "description": "Filter vulnerabilities by scanner", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -14096,6 +15235,59 @@ "deprecationReason": null }, { + "name": "vulnerabilityScanners", + "description": "Vulnerability scanners reported on the project vulnerabilties of the group and its subgroups", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilityScannerConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "webUrl", "description": "Web URL of the group", "args": [ @@ -14493,6 +15685,59 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "vulnerabilityScanners", + "description": "Vulnerability scanners reported on the vulnerabilties from projects selected in Instance Security Dashboard", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilityScannerConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -14859,6 +16104,24 @@ "deprecationReason": null }, { + "name": "id", + "description": "ID of the issue", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "iid", "description": "Internal ID of the issue", "args": [ @@ -15370,6 +16633,24 @@ "description": "The connection type for Issue.", "fields": [ { + "name": "count", + "description": "Total count of collection", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "edges", "description": "A list of edges.", "args": [ @@ -16021,6 +17302,136 @@ }, { "kind": "INPUT_OBJECT", + "name": "IssueSetLockedInput", + "description": "Autogenerated input type of IssueSetLocked", + "fields": null, + "inputFields": [ + { + "name": "projectPath", + "description": "The project the issue to mutate is in", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "iid", + "description": "The iid of the issue to mutate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "locked", + "description": "Whether or not to lock discussion on the issue", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IssueSetLockedPayload", + "description": "Autogenerated return type of IssueSetLocked", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issue", + "description": "The issue after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Issue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", "name": "IssueSetWeightInput", "description": "Autogenerated input type of IssueSetWeight", "fields": null, @@ -16349,6 +17760,24 @@ "deprecationReason": null }, { + "name": "iid", + "description": "Internal ID of the iteration", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "startDate", "description": "Timestamp of the iteration start date", "args": [ @@ -16907,6 +18336,24 @@ "defaultValue": null }, { + "name": "usersMapping", + "description": "The mapping of Jira to GitLab users", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "JiraUsersMappingInputType", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -17304,7 +18751,7 @@ }, { "name": "projects", - "description": "List of Jira projects fetched through Jira REST API", + "description": "List of all Jira projects fetched through Jira REST API", "args": [ { "name": "name", @@ -17398,7 +18845,7 @@ "fields": [ { "name": "gitlabId", - "description": "Id of the matched GitLab user", + "description": "ID of the matched GitLab user", "args": [ ], @@ -17411,6 +18858,34 @@ "deprecationReason": null }, { + "name": "gitlabName", + "description": "Name of the matched GitLab user", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gitlabUsername", + "description": "Username of the matched GitLab user", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "jiraAccountId", "description": "Account id of the Jira user", "args": [ @@ -17469,6 +18944,41 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "JiraUsersMappingInputType", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "jiraAccountId", + "description": "Jira account id of the user", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "gitlabId", + "description": "Id of the GitLab user", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "Label", "description": null, @@ -18091,6 +19601,51 @@ "deprecationReason": null }, { + "name": "diffStats", + "description": "Details about which files were changed in this merge request", + "args": [ + { + "name": "path", + "description": "A specific file-path", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DiffStats", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "diffStatsSummary", + "description": "Summary of which files were changed in this merge request", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "DiffStatsSummary", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "discussionLocked", "description": "Indicates if comments on the merge request are locked to members only", "args": [ @@ -20409,6 +21964,152 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "MergeRequestUpdateInput", + "description": "Autogenerated input type of MergeRequestUpdate", + "fields": null, + "inputFields": [ + { + "name": "projectPath", + "description": "The project the merge request to mutate is in", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "iid", + "description": "The iid of the merge request to mutate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "title", + "description": "Title of the merge request", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "targetBranch", + "description": "Target branch of the merge request", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "Description of the merge request (Markdown rendered as HTML for caching)", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MergeRequestUpdatePayload", + "description": "Autogenerated return type of MergeRequestUpdate", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mergeRequest", + "description": "The merge request after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "MergeRequest", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "Metadata", "description": null, @@ -20920,6 +22621,20 @@ "deprecationReason": null }, { + "name": "stats", + "description": "Milestone statistics", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "MilestoneStats", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "subgroupMilestone", "description": "Indicates if milestone is at subgroup level", "args": [ @@ -21135,6 +22850,47 @@ "possibleTypes": null }, { + "kind": "OBJECT", + "name": "MilestoneStats", + "description": "Contains statistics about a milestone", + "fields": [ + { + "name": "closedIssuesCount", + "description": "Number of closed issues associated with the milestone", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalIssuesCount", + "description": "Total number of issues associated with the milestone", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "ENUM", "name": "MoveType", "description": "The position to which the adjacent object should be moved", @@ -21186,8 +22942,8 @@ "name": "AddAwardEmojiPayload", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use awardEmojiAdd. Deprecated in 13.2" }, { "name": "addProjectToSecurityDashboard", @@ -21271,6 +23027,114 @@ "deprecationReason": null }, { + "name": "alertTodoCreate", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AlertTodoCreateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "AlertTodoCreatePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awardEmojiAdd", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AwardEmojiAddInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "AwardEmojiAddPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awardEmojiRemove", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AwardEmojiRemoveInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "AwardEmojiRemovePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awardEmojiToggle", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AwardEmojiToggleInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "AwardEmojiTogglePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "boardListUpdateLimitMetrics", "description": null, "args": [ @@ -21595,6 +23459,33 @@ "deprecationReason": null }, { + "name": "dastSiteProfileCreate", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DastSiteProfileCreateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DastSiteProfileCreatePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "deleteAnnotation", "description": null, "args": [ @@ -21946,6 +23837,33 @@ "deprecationReason": null }, { + "name": "issueSetLocked", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "IssueSetLockedInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "IssueSetLockedPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "issueSetWeight", "description": null, "args": [ @@ -22243,6 +24161,33 @@ "deprecationReason": null }, { + "name": "mergeRequestUpdate", + "description": "Update attributes of a merge request", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MergeRequestUpdateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "MergeRequestUpdatePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "removeAwardEmoji", "description": null, "args": [ @@ -22266,8 +24211,8 @@ "name": "RemoveAwardEmojiPayload", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use awardEmojiRemove. Deprecated in 13.2" }, { "name": "removeProjectFromSecurityDashboard", @@ -22455,8 +24400,8 @@ "name": "ToggleAwardEmojiPayload", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use awardEmojiToggle. Deprecated in 13.2" }, { "name": "updateAlertStatus", @@ -22594,6 +24539,33 @@ "deprecationReason": null }, { + "name": "updateIteration", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateIterationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "UpdateIterationPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updateNote", "description": "Updates a Note. If the body of the Note contains only quick actions, the Note will be destroyed during the update, and no Note will be returned", "args": [ @@ -22954,6 +24926,34 @@ "deprecationReason": null }, { + "name": "storageSizeLimit", + "description": "Total storage limit of the root namespace in bytes", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "temporaryStorageIncreaseEndsOn", + "description": "Date until the temporary storage increase is active", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "visibility", "description": "Visibility of the namespace", "args": [ @@ -23317,6 +25317,20 @@ "deprecationReason": null }, { + "name": "systemNoteIconName", + "description": "Name of the icon corresponding to a system note", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updatedAt", "description": "Timestamp of the note's last activity", "args": [ @@ -25182,6 +27196,59 @@ "deprecationReason": null }, { + "name": "complianceFrameworks", + "description": "Compliance frameworks associated with the project", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ComplianceFrameworkConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "containerExpirationPolicy", "description": "The container expiration policy of the project", "args": [ @@ -25267,7 +27334,7 @@ }, { "name": "search", - "description": "Search query", + "description": "Search query for environment name", "type": { "kind": "SCALAR", "name": "String", @@ -25604,7 +27671,7 @@ }, { "name": "search", - "description": "Search query for finding issues by title or description", + "description": "Search query for issue title or description", "type": { "kind": "SCALAR", "name": "String", @@ -25621,6 +27688,20 @@ "ofType": null }, "defaultValue": "created_desc" + }, + { + "name": "iterationId", + "description": "Iterations applied to the issue", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null } ], "type": { @@ -25783,7 +27864,7 @@ }, { "name": "search", - "description": "Search query for finding issues by title or description", + "description": "Search query for issue title or description", "type": { "kind": "SCALAR", "name": "String", @@ -25802,6 +27883,20 @@ "defaultValue": "created_desc" }, { + "name": "iterationId", + "description": "Iterations applied to the issue", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -26619,7 +28714,7 @@ }, { "name": "release", - "description": "A single release of the project. Available only when feature flag `graphql_release_data` is enabled", + "description": "A single release of the project", "args": [ { "name": "tagName", @@ -26646,7 +28741,7 @@ }, { "name": "releases", - "description": "Releases of the project. Available only when feature flag `graphql_release_data` is enabled", + "description": "Releases of the project", "args": [ { "name": "after", @@ -26793,7 +28888,7 @@ }, { "name": "search", - "description": "Filter requirements by title search", + "description": "Search query for requirement title", "type": { "kind": "SCALAR", "name": "String", @@ -26896,7 +28991,7 @@ }, { "name": "search", - "description": "Filter requirements by title search", + "description": "Search query for requirement title", "type": { "kind": "SCALAR", "name": "String", @@ -26972,6 +29067,34 @@ "deprecationReason": null }, { + "name": "sastCiConfiguration", + "description": "SAST CI configuration for the project", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfiguration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "securityScanners", + "description": "Information about security analyzers used in the project", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "SecurityScanners", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "sentryDetailedError", "description": "Detailed version of a Sentry error on the project", "args": [ @@ -27405,6 +29528,24 @@ "defaultValue": null }, { + "name": "scanner", + "description": "Filter vulnerabilities by scanner", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -27454,6 +29595,59 @@ "deprecationReason": null }, { + "name": "vulnerabilityScanners", + "description": "Vulnerability scanners reported on the project vulnerabilties", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilityScannerConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "vulnerabilitySeveritiesCount", "description": "Counts for each severity of vulnerability of the project", "args": [ @@ -28652,6 +30846,47 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "ProjectSettingEnum", + "description": "Names of compliance frameworks that can be assigned to a Project", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "gdpr", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hipaa", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pci_dss", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "soc_2", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sox", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "ProjectStatistics", "description": null, @@ -28747,6 +30982,20 @@ "deprecationReason": null }, { + "name": "snippetsSize", + "description": "Snippets size of the project", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "storageSize", "description": "Storage size of the project", "args": [ @@ -29002,7 +31251,7 @@ }, { "name": "search", - "description": "Search criteria", + "description": "Search query for project name, path, or description", "type": { "kind": "SCALAR", "name": "String", @@ -29182,7 +31431,7 @@ }, { "name": "user", - "description": "Find a user on this instance", + "description": "Find a user", "args": [ { "name": "id", @@ -29389,6 +31638,24 @@ "defaultValue": null }, { + "name": "scanner", + "description": "Filter vulnerabilities by scanner", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -29564,7 +31831,7 @@ { "kind": "OBJECT", "name": "Release", - "description": null, + "description": "Represents a release", "fields": [ { "name": "assets", @@ -29704,6 +31971,20 @@ "deprecationReason": null }, { + "name": "links", + "description": "Links of the release", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "ReleaseLinks", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "milestones", "description": "Milestones associated to the release", "args": [ @@ -29791,11 +32072,66 @@ ], "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tagPath", + "description": "Relative web path to the tag associated with the release", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ReleaseAssetLink", + "description": "Represents an asset link associated with a release", + "fields": [ + { + "name": "external", + "description": "Indicates the link points to an external resource", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "ID of the link", + "args": [ + + ], + "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "ID", "ofType": null } }, @@ -29803,8 +32139,36 @@ "deprecationReason": null }, { - "name": "tagPath", - "description": "Relative web path to the tag associated with the release", + "name": "linkType", + "description": "Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`", + "args": [ + + ], + "type": { + "kind": "ENUM", + "name": "ReleaseAssetLinkType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Name of the link", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": "URL of the link", "args": [ ], @@ -29826,11 +32190,158 @@ }, { "kind": "OBJECT", + "name": "ReleaseAssetLinkConnection", + "description": "The connection type for ReleaseAssetLink.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ReleaseAssetLinkEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ReleaseAssetLink", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ReleaseAssetLinkEdge", + "description": "An edge in a connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The item at the end of the edge.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "ReleaseAssetLink", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "ReleaseAssetLinkType", + "description": "Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "OTHER", + "description": "Other link type", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "RUNBOOK", + "description": "Runbook link type", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PACKAGE", + "description": "Package link type", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "IMAGE", + "description": "Image link type", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "ReleaseAssets", - "description": null, + "description": "A container for all assets associated with a release", "fields": [ { - "name": "assetsCount", + "name": "count", "description": "Number of assets of the release", "args": [ @@ -29890,7 +32401,7 @@ ], "type": { "kind": "OBJECT", - "name": "ReleaseLinkConnection", + "name": "ReleaseAssetLinkConnection", "ofType": null }, "isDeprecated": false, @@ -30256,58 +32767,26 @@ }, { "kind": "OBJECT", - "name": "ReleaseLink", + "name": "ReleaseLinks", "description": null, "fields": [ { - "name": "external", - "description": "Indicates the link points to an external resource", + "name": "editUrl", + "description": "HTTP URL of the release's edit page", "args": [ ], "type": { "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "ID of the link", - "args": [ - - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "linkType", - "description": "Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`", - "args": [ - - ], - "type": { - "kind": "ENUM", - "name": "ReleaseLinkType", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "name", - "description": "Name of the link", + "name": "issuesUrl", + "description": "HTTP URL of the issues page filtered by this release", "args": [ ], @@ -30320,8 +32799,8 @@ "deprecationReason": null }, { - "name": "url", - "description": "URL of the link", + "name": "mergeRequestsUrl", + "description": "HTTP URL of the merge request page filtered by this release", "args": [ ], @@ -30332,114 +32811,16 @@ }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReleaseLinkConnection", - "description": "The connection type for ReleaseLink.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [ - - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReleaseLinkEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null }, { - "name": "nodes", - "description": "A list of nodes.", + "name": "selfUrl", + "description": "HTTP URL of the release", "args": [ ], "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReleaseLink", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [ - - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReleaseLinkEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [ - - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [ - - ], - "type": { - "kind": "OBJECT", - "name": "ReleaseLink", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, @@ -30454,44 +32835,9 @@ "possibleTypes": null }, { - "kind": "ENUM", - "name": "ReleaseLinkType", - "description": "Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OTHER", - "description": "Other link type", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RUNBOOK", - "description": "Runbook link type", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PACKAGE", - "description": "Package link type", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IMAGE", - "description": "Image link type", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { "kind": "OBJECT", "name": "ReleaseSource", - "description": null, + "description": "Represents the source code attached to a release in a particular format", "fields": [ { "name": "format", @@ -31628,6 +33974,24 @@ "deprecationReason": null }, { + "name": "snippetsSize", + "description": "The snippets size in bytes", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "storageSize", "description": "The total storage in bytes", "args": [ @@ -31817,6 +34181,927 @@ }, { "kind": "OBJECT", + "name": "SastCiConfiguration", + "description": "Represents a CI configuration of SAST", + "fields": [ + { + "name": "analyzers", + "description": "List of analyzers entities attached to SAST configuration.", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationAnalyzersEntityConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "global", + "description": "List of global entities related to SAST configuration.", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationEntityConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipeline", + "description": "List of pipeline entities related to SAST configuration.", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationEntityConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationAnalyzersEntity", + "description": "Represents an analyzer entity in SAST CI configuration", + "fields": [ + { + "name": "description", + "description": "Analyzer description that is displayed on the form.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enabled", + "description": "Indicates whether an analyzer is enabled.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "label", + "description": "Analyzer label used in the config UI.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Name of the analyzer.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationAnalyzersEntityConnection", + "description": "The connection type for SastCiConfigurationAnalyzersEntity.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SastCiConfigurationAnalyzersEntityEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SastCiConfigurationAnalyzersEntity", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationAnalyzersEntityEdge", + "description": "An edge in a connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The item at the end of the edge.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationAnalyzersEntity", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationEntity", + "description": "Represents an entity in SAST CI configuration", + "fields": [ + { + "name": "defaultValue", + "description": "Default value that is used if value is empty.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": "Entity description that is displayed on the form.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "field", + "description": "CI keyword of entity.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "label", + "description": "Label for entity used in the form.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "options", + "description": "Different possible values of the field.", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationOptionsEntityConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": "Type of the field value.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": "Current value of the entity.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationEntityConnection", + "description": "The connection type for SastCiConfigurationEntity.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SastCiConfigurationEntityEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SastCiConfigurationEntity", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationEntityEdge", + "description": "An edge in a connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The item at the end of the edge.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationEntity", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationOptionsEntity", + "description": "Represents an entity for options in SAST CI configuration", + "fields": [ + { + "name": "label", + "description": "Label of option entity.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": "Value of option entity.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationOptionsEntityConnection", + "description": "The connection type for SastCiConfigurationOptionsEntity.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SastCiConfigurationOptionsEntityEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SastCiConfigurationOptionsEntity", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SastCiConfigurationOptionsEntityEdge", + "description": "An edge in a connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The item at the end of the edge.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationOptionsEntity", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ScannedResource", + "description": "Represents a resource scanned by a security scan", + "fields": [ + { + "name": "requestMethod", + "description": "The HTTP request method used to access the URL", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": "The URL scanned by the scanner", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ScannedResourceConnection", + "description": "The connection type for ScannedResource.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ScannedResourceEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ScannedResource", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ScannedResourceEdge", + "description": "An edge in a connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The item at the end of the edge.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "ScannedResource", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "SecurityReportSummary", "description": "Represents summary of a security report", "fields": [ @@ -31835,6 +35120,20 @@ "deprecationReason": null }, { + "name": "coverageFuzzing", + "description": "Aggregated counts for the coverage_fuzzing scan", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "SecurityReportSummarySection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "dast", "description": "Aggregated counts for the dast scan", "args": [ @@ -31904,6 +35203,59 @@ "description": "Represents a section of a summary of a security report", "fields": [ { + "name": "scannedResources", + "description": "A list of the first 20 scanned resources", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ScannedResourceConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "scannedResourcesCount", "description": "Total number of scanned resources", "args": [ @@ -31918,6 +35270,20 @@ "deprecationReason": null }, { + "name": "scannedResourcesCsvPath", + "description": "Path to download all the scanned resources in CSV format", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "vulnerabilitiesCount", "description": "Total number of vulnerabilities", "args": [ @@ -31940,6 +35306,126 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "SecurityScannerType", + "description": "The type of the security scanner.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "SAST", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DAST", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DEPENDENCY_SCANNING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CONTAINER_SCANNING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SECRET_DETECTION", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SecurityScanners", + "description": "Represents a list of security scanners", + "fields": [ + { + "name": "available", + "description": "List of analyzers which are available for the project.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SecurityScannerType", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enabled", + "description": "List of analyzers which are enabled for the project.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SecurityScannerType", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelineRun", + "description": "List of analyzers which ran successfully in the latest pipeline.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SecurityScannerType", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "SentryDetailedError", "description": "A Sentry error.", @@ -32032,6 +35518,20 @@ }, { "name": "firstReleaseShortVersion", + "description": "Release short version the error was first seen", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "firstReleaseVersion", "description": "Release version the error was first seen", "args": [ @@ -32164,6 +35664,20 @@ }, { "name": "lastReleaseShortVersion", + "description": "Release short version the error was last seen", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastReleaseVersion", "description": "Release version the error was last seen", "args": [ @@ -32824,7 +36338,7 @@ }, { "name": "searchTerm", - "description": "Search term for the Sentry error.", + "description": "Search query for the Sentry error details", "type": { "kind": "SCALAR", "name": "String", @@ -33538,6 +37052,12 @@ "deprecationReason": null }, { + "name": "CONFLUENCE_SERVICE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "CUSTOM_ISSUE_TRACKER_SERVICE", "description": null, "isDeprecated": false, @@ -34568,6 +38088,100 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "SnippetFileInputActionEnum", + "description": "Type of a snippet file input action", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "create", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "update", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "move", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SnippetFileInputType", + "description": "Represents an action to perform over a snippet file", + "fields": null, + "inputFields": [ + { + "name": "action", + "description": "Type of input action", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SnippetFileInputActionEnum", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "previousPath", + "description": "Previous path of the snippet file", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "filePath", + "description": "Path of the snippet file", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "content", + "description": "Snippet file content", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "SnippetPermissions", "description": null, @@ -35253,6 +38867,12 @@ "description": null, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "FAILED", + "description": null, + "isDeprecated": false, + "deprecationReason": null } ], "possibleTypes": null @@ -36036,8 +39656,34 @@ "deprecationReason": null }, { + "name": "todos", + "description": "Updated todos", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Todo", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updatedIds", - "description": "The ids of the updated todo items", + "description": "The ids of the updated todo items. Deprecated in 13.2: Use todos", "args": [ ], @@ -36058,8 +39704,8 @@ } } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use todos. Deprecated in 13.2" } ], "inputFields": null, @@ -36196,6 +39842,12 @@ "deprecationReason": null }, { + "name": "ALERT", + "description": "An Alert", + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "EPIC", "description": "An Epic", "isDeprecated": false, @@ -36271,8 +39923,34 @@ "deprecationReason": null }, { + "name": "todos", + "description": "Updated todos", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Todo", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updatedIds", - "description": "Ids of the updated todos", + "description": "Ids of the updated todos. Deprecated in 13.2: Use todos", "args": [ ], @@ -36293,8 +39971,8 @@ } } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use todos. Deprecated in 13.2" } ], "inputFields": null, @@ -36911,6 +40589,16 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "UntrustedRegexp", + "description": "A regexp containing patterns sourced from user input", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "INPUT_OBJECT", "name": "UpdateAlertStatusInput", "description": "Autogenerated input type of UpdateAlertStatus", @@ -37045,6 +40733,20 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "todo", + "description": "The todo after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Todo", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -37115,6 +40817,26 @@ "defaultValue": null }, { + "name": "nameRegex", + "description": "Tags with names matching this regex pattern will expire", + "type": { + "kind": "SCALAR", + "name": "UntrustedRegexp", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "nameRegexKeep", + "description": "Tags with names matching this regex pattern will be preserved", + "type": { + "kind": "SCALAR", + "name": "UntrustedRegexp", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -37769,6 +41491,162 @@ }, { "kind": "INPUT_OBJECT", + "name": "UpdateIterationInput", + "description": "Autogenerated input type of UpdateIteration", + "fields": null, + "inputFields": [ + { + "name": "groupPath", + "description": "The group of the iteration", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "id", + "description": "The id of the iteration", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "title", + "description": "The title of the iteration", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "The description of the iteration", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "startDate", + "description": "The start date of the iteration", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "dueDate", + "description": "The end date of the iteration", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UpdateIterationPayload", + "description": "Autogenerated return type of UpdateIteration", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "iteration", + "description": "The updated iteration", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Iteration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", "name": "UpdateNoteInput", "description": "Autogenerated input type of UpdateNote", "fields": null, @@ -38090,6 +41968,24 @@ "defaultValue": null }, { + "name": "files", + "description": "The snippet files to update", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SnippetFileInputType", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -39423,6 +43319,32 @@ "deprecationReason": null }, { + "name": "identifiers", + "description": "Identifiers of the vulnerability.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VulnerabilityIdentifier", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "issueLinks", "description": "List of issue links related to the vulnerability", "args": [ @@ -39504,6 +43426,20 @@ "deprecationReason": null }, { + "name": "primaryIdentifier", + "description": "Primary identifier of the vulnerability.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilityIdentifier", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "project", "description": "The project on which the vulnerability was found", "args": [ @@ -39519,7 +43455,7 @@ }, { "name": "reportType", - "description": "Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION)", + "description": "Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION, COVERAGE_FUZZING)", "args": [ ], @@ -39532,6 +43468,20 @@ "deprecationReason": null }, { + "name": "scanner", + "description": "Scanner metadata for the vulnerability.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilityScanner", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "severity", "description": "Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL)", "args": [ @@ -39745,6 +43695,75 @@ }, { "kind": "OBJECT", + "name": "VulnerabilityIdentifier", + "description": "Represents a vulnerability identifier.", + "fields": [ + { + "name": "externalId", + "description": "External ID of the vulnerability identifier", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalType", + "description": "External type of the vulnerability identifier", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Name of the vulnerability identifier", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": "URL of the vulnerability identifier", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "VulnerabilityIssueLink", "description": "Represents an issue link of a vulnerability.", "fields": [ @@ -40506,8 +44525,195 @@ "description": null, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "COVERAGE_FUZZING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VulnerabilityScanner", + "description": "Represents a vulnerability scanner.", + "fields": [ + { + "name": "externalId", + "description": "External ID of the vulnerability scanner", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Name of the vulnerability scanner", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reportType", + "description": "Type of the vulnerability report", + "args": [ + + ], + "type": { + "kind": "ENUM", + "name": "VulnerabilityReportType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vendor", + "description": "Vendor of the vulnerability scanner", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VulnerabilityScannerConnection", + "description": "The connection type for VulnerabilityScanner.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VulnerabilityScannerEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VulnerabilityScanner", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VulnerabilityScannerEdge", + "description": "An edge in a connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "node", + "description": "The item at the end of the edge.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilityScanner", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, "possibleTypes": null }, { diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index befb57c1cba..6df6632f3bd 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -69,6 +69,7 @@ Describes an alert from the project's Alert Management | `hosts` | String! => Array | List of hosts the alert came from | | `iid` | ID! | Internal ID of the alert | | `issueIid` | ID | Internal ID of the GitLab issue attached to the alert | +| `metricsDashboardUrl` | String | URL for metrics embed for the alert | | `monitoringTool` | String | Monitoring tool the alert came from | | `service` | String | Service the alert came from | | `severity` | AlertManagementSeverity | Severity of the alert | @@ -100,6 +101,19 @@ Autogenerated return type of AlertSetAssignees | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue created after mutation | +| `todo` | Todo | The todo after mutation | + +## AlertTodoCreatePayload + +Autogenerated return type of AlertTodoCreate + +| Name | Type | Description | +| --- | ---- | ---------- | +| `alert` | AlertManagementAlert | The alert after mutation | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `issue` | Issue | The issue created after mutation | +| `todo` | Todo | The todo after mutation | ## AwardEmoji @@ -114,6 +128,37 @@ An emoji awarded by a user. | `unicodeVersion` | String! | The unicode version for this emoji | | `user` | User! | The user who awarded the emoji | +## AwardEmojiAddPayload + +Autogenerated return type of AwardEmojiAdd + +| Name | Type | Description | +| --- | ---- | ---------- | +| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + +## AwardEmojiRemovePayload + +Autogenerated return type of AwardEmojiRemove + +| Name | Type | Description | +| --- | ---- | ---------- | +| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + +## AwardEmojiTogglePayload + +Autogenerated return type of AwardEmojiToggle + +| Name | Type | Description | +| --- | ---- | ---------- | +| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `toggledOn` | Boolean! | Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. | + ## BaseService | Name | Type | Description | @@ -128,6 +173,7 @@ An emoji awarded by a user. | `flatPath` | String! | Flat path of the entry | | `id` | ID! | ID of the entry | | `lfsOid` | String | LFS ID of the blob | +| `mode` | String | Blob mode in numeric format | | `name` | String! | Name of the entry | | `path` | String! | Path of the entry | | `sha` | String! | Last commit sha for the entry | @@ -207,6 +253,14 @@ Autogenerated return type of CommitCreate | `commit` | Commit | The commit after mutation | | `errors` | String! => Array | Errors encountered during execution of the mutation. | +## ComplianceFramework + +Represents a ComplianceFramework associated with a Project + +| Name | Type | Description | +| --- | ---- | ---------- | +| `name` | ProjectSettingEnum! | Name of the compliance framework | + ## ContainerExpirationPolicy A tag expiration policy designed to keep only the images that matter most @@ -217,8 +271,8 @@ A tag expiration policy designed to keep only the images that matter most | `createdAt` | Time! | Timestamp of when the container expiration policy was created | | `enabled` | Boolean! | Indicates whether this container expiration policy is enabled | | `keepN` | ContainerExpirationPolicyKeepEnum | Number of tags to retain | -| `nameRegex` | String | Tags with names matching this regex pattern will expire | -| `nameRegexKeep` | String | Tags with names matching this regex pattern will be preserved | +| `nameRegex` | UntrustedRegexp | Tags with names matching this regex pattern will expire | +| `nameRegexKeep` | UntrustedRegexp | Tags with names matching this regex pattern will be preserved | | `nextRunAt` | Time | Next time that this container expiration policy will get executed | | `olderThan` | ContainerExpirationPolicyOlderThanEnum | Tags older that this will expire | | `updatedAt` | Time! | Timestamp of when the container expiration policy was updated | @@ -233,6 +287,7 @@ Autogenerated return type of CreateAlertIssue | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue created after mutation | +| `todo` | Todo | The todo after mutation | ## CreateAnnotationPayload @@ -324,6 +379,16 @@ Autogenerated return type of CreateSnippet | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `snippet` | Snippet | The snippet after mutation | +## DastSiteProfileCreatePayload + +Autogenerated return type of DastSiteProfileCreate + +| Name | Type | Description | +| --- | ---- | ---------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `id` | ID | ID of the site profile. | + ## DeleteAnnotationPayload Autogenerated return type of DeleteAnnotation @@ -486,6 +551,27 @@ Autogenerated return type of DestroySnippet | `headSha` | String! | SHA of the HEAD at the time the comment was made | | `startSha` | String! | SHA of the branch being compared against | +## DiffStats + +Changes to a single file + +| Name | Type | Description | +| --- | ---- | ---------- | +| `additions` | Int! | Number of lines added to this file | +| `deletions` | Int! | Number of lines deleted from this file | +| `path` | String! | File path, relative to repository root | + +## DiffStatsSummary + +Aggregated summary of changes + +| Name | Type | Description | +| --- | ---- | ---------- | +| `additions` | Int! | Number of lines added | +| `changes` | Int! | Number of lines changed | +| `deletions` | Int! | Number of lines deleted | +| `fileCount` | Int! | Number of files changed | + ## Discussion | Name | Type | Description | @@ -745,7 +831,9 @@ Autogenerated return type of EpicTreeReorder | `requireTwoFactorAuthentication` | Boolean | Indicates if all users in this group are required to set up two-factor authentication | | `rootStorageStatistics` | RootStorageStatistics | Aggregated storage statistics of the namespace. Only available for root namespaces | | `shareWithGroupLock` | Boolean | Indicates if sharing a project with another group within this group is prevented | +| `storageSizeLimit` | Float | Total storage limit of the root namespace in bytes | | `subgroupCreationLevel` | String | The permission level required to create subgroups within the group | +| `temporaryStorageIncreaseEndsOn` | Time | Date until the temporary storage increase is active | | `twoFactorGracePeriod` | Int | Time before two-factor authentication is enforced | | `userPermissions` | GroupPermissions! | Permissions for the current user on the resource | | `visibility` | String | Visibility of the namespace | @@ -788,6 +876,7 @@ Represents a Group Member | `dueDate` | Time | Due date of the issue | | `epic` | Epic | Epic to which this issue belongs | | `healthStatus` | HealthStatus | Current health status. Returns null if `save_issuable_health_status` feature flag is disabled. | +| `id` | ID! | ID of the issue | | `iid` | ID! | Internal ID of the issue | | `iteration` | Iteration | Iteration of the issue | | `milestone` | Milestone | Milestone of the issue | @@ -853,6 +942,16 @@ Autogenerated return type of IssueSetIteration | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | +## IssueSetLockedPayload + +Autogenerated return type of IssueSetLocked + +| Name | Type | Description | +| --- | ---- | ---------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `issue` | Issue | The issue after mutation | + ## IssueSetWeightPayload Autogenerated return type of IssueSetWeight @@ -873,6 +972,7 @@ Represents an iteration object. | `description` | String | Description of the iteration | | `dueDate` | Time | Timestamp of the iteration due date | | `id` | ID! | ID of the iteration | +| `iid` | ID! | Internal ID of the iteration | | `startDate` | Time | Timestamp of the iteration start date | | `state` | IterationState! | State of the iteration | | `title` | String! | Title of the iteration | @@ -925,14 +1025,16 @@ Autogenerated return type of JiraImportUsers | Name | Type | Description | | --- | ---- | ---------- | | `active` | Boolean | Indicates if the service is active | -| `projects` | JiraProjectConnection | List of Jira projects fetched through Jira REST API | +| `projects` | JiraProjectConnection | List of all Jira projects fetched through Jira REST API | | `type` | String | Class name of the service | ## JiraUser | Name | Type | Description | | --- | ---- | ---------- | -| `gitlabId` | Int | Id of the matched GitLab user | +| `gitlabId` | Int | ID of the matched GitLab user | +| `gitlabName` | String | Name of the matched GitLab user | +| `gitlabUsername` | String | Username of the matched GitLab user | | `jiraAccountId` | String! | Account id of the Jira user | | `jiraDisplayName` | String! | Display name of the Jira user | | `jiraEmail` | String | Email of the Jira user, returned only for users with public emails | @@ -970,6 +1072,8 @@ Autogenerated return type of MarkAsSpamSnippet | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | | `diffHeadSha` | String | Diff head SHA of the merge request | | `diffRefs` | DiffRefs | References of the base SHA, the head SHA, and the start SHA for this merge request | +| `diffStats` | DiffStats! => Array | Details about which files were changed in this merge request | +| `diffStatsSummary` | DiffStatsSummary | Summary of which files were changed in this merge request | | `discussionLocked` | Boolean! | Indicates if comments on the merge request are locked to members only | | `downvotes` | Int! | Number of downvotes for the merge request | | `forceRemoveSourceBranch` | Boolean | Indicates if the project settings will lead to source branch deletion after merge | @@ -1100,6 +1204,16 @@ Autogenerated return type of MergeRequestSetWip | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | +## MergeRequestUpdatePayload + +Autogenerated return type of MergeRequestUpdate + +| Name | Type | Description | +| --- | ---- | ---------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `mergeRequest` | MergeRequest | The merge request after mutation | + ## Metadata | Name | Type | Description | @@ -1138,11 +1252,21 @@ Represents a milestone. | `projectMilestone` | Boolean! | Indicates if milestone is at project level | | `startDate` | Time | Timestamp of the milestone start date | | `state` | MilestoneStateEnum! | State of the milestone | +| `stats` | MilestoneStats | Milestone statistics | | `subgroupMilestone` | Boolean! | Indicates if milestone is at subgroup level | | `title` | String! | Title of the milestone | | `updatedAt` | Time! | Timestamp of last milestone update | | `webPath` | String! | Web path of the milestone | +## MilestoneStats + +Contains statistics about a milestone + +| Name | Type | Description | +| --- | ---- | ---------- | +| `closedIssuesCount` | Int | Number of closed issues associated with the milestone | +| `totalIssuesCount` | Int | Total number of issues associated with the milestone | + ## Namespace | Name | Type | Description | @@ -1157,6 +1281,8 @@ Represents a milestone. | `path` | String! | Path of the namespace | | `requestAccessEnabled` | Boolean | Indicates if users can request access to namespace | | `rootStorageStatistics` | RootStorageStatistics | Aggregated storage statistics of the namespace. Only available for root namespaces | +| `storageSizeLimit` | Float | Total storage limit of the root namespace in bytes | +| `temporaryStorageIncreaseEndsOn` | Time | Date until the temporary storage increase is active | | `visibility` | String | Visibility of the namespace | ## Note @@ -1177,6 +1303,7 @@ Represents a milestone. | `resolvedAt` | Time | Timestamp of when the object was resolved | | `resolvedBy` | User | User who resolved the object | | `system` | Boolean! | Indicates whether this note was created by the system or by a user | +| `systemNoteIconName` | String | Name of the icon corresponding to a system note | | `updatedAt` | Time! | Timestamp of the note's last activity | | `userPermissions` | NotePermissions! | Permissions for the current user on the resource | @@ -1300,12 +1427,14 @@ Information about pagination in a connection. | `pipeline` | Pipeline | Build pipeline of the project | | `printingMergeRequestLinkEnabled` | Boolean | Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line | | `publicJobs` | Boolean | Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts | -| `release` | Release | A single release of the project. Available only when feature flag `graphql_release_data` is enabled | +| `release` | Release | A single release of the project | | `removeSourceBranchAfterMerge` | Boolean | Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project | | `repository` | Repository | Git repository of the project | | `requestAccessEnabled` | Boolean | Indicates if users can request member access to the project | | `requirement` | Requirement | Find a single requirement. Available only when feature flag `requirements_management` is enabled. | | `requirementStatesCount` | RequirementStatesCount | Number of requirements for the project by their state | +| `sastCiConfiguration` | SastCiConfiguration | SAST CI configuration for the project | +| `securityScanners` | SecurityScanners | Information about security analyzers used in the project | | `sentryDetailedError` | SentryDetailedError | Detailed version of a Sentry error on the project | | `sentryErrors` | SentryErrorCollection | Paginated collection of Sentry errors on the project | | `serviceDeskAddress` | String | E-mail address of the service desk. | @@ -1395,11 +1524,14 @@ Represents a Project Member | `lfsObjectsSize` | Float! | Large File Storage (LFS) object size of the project | | `packagesSize` | Float! | Packages size of the project | | `repositorySize` | Float! | Repository size of the project | +| `snippetsSize` | Float | Snippets size of the project | | `storageSize` | Float! | Storage size of the project | | `wikiSize` | Float | Wiki size of the project | ## Release +Represents a release + | Name | Type | Description | | --- | ---- | ---------- | | `assets` | ReleaseAssets | Assets of the release | @@ -1408,16 +1540,31 @@ Represents a Project Member | `createdAt` | Time | Timestamp of when the release was created | | `description` | String | Description (also known as "release notes") of the release | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | +| `links` | ReleaseLinks | Links of the release | | `name` | String | Name of the release | | `releasedAt` | Time | Timestamp of when the release was released | -| `tagName` | String! | Name of the tag associated with the release | +| `tagName` | String | Name of the tag associated with the release | | `tagPath` | String | Relative web path to the tag associated with the release | +## ReleaseAssetLink + +Represents an asset link associated with a release + +| Name | Type | Description | +| --- | ---- | ---------- | +| `external` | Boolean | Indicates the link points to an external resource | +| `id` | ID! | ID of the link | +| `linkType` | ReleaseAssetLinkType | Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` | +| `name` | String | Name of the link | +| `url` | String | URL of the link | + ## ReleaseAssets +A container for all assets associated with a release + | Name | Type | Description | | --- | ---- | ---------- | -| `assetsCount` | Int | Number of assets of the release | +| `count` | Int | Number of assets of the release | ## ReleaseEvidence @@ -1430,18 +1577,19 @@ Evidence for a release | `id` | ID! | ID of the evidence | | `sha` | String | SHA1 ID of the evidence hash | -## ReleaseLink +## ReleaseLinks | Name | Type | Description | | --- | ---- | ---------- | -| `external` | Boolean | Indicates the link points to an external resource | -| `id` | ID! | ID of the link | -| `linkType` | ReleaseLinkType | Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` | -| `name` | String | Name of the link | -| `url` | String | URL of the link | +| `editUrl` | String | HTTP URL of the release's edit page | +| `issuesUrl` | String | HTTP URL of the issues page filtered by this release | +| `mergeRequestsUrl` | String | HTTP URL of the merge request page filtered by this release | +| `selfUrl` | String | HTTP URL of the release | ## ReleaseSource +Represents the source code attached to a release in a particular format + | Name | Type | Description | | --- | ---- | ---------- | | `format` | String | Format of the source | @@ -1520,6 +1668,7 @@ Counts of requirements by their state. | `lfsObjectsSize` | Float! | The LFS objects size in bytes | | `packagesSize` | Float! | The packages size in bytes | | `repositorySize` | Float! | The Git repository size in bytes | +| `snippetsSize` | Float! | The snippets size in bytes | | `storageSize` | Float! | The total storage in bytes | | `wikiSize` | Float! | The wiki size in bytes | @@ -1533,6 +1682,48 @@ Autogenerated return type of RunDASTScan | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `pipelineUrl` | String | URL of the pipeline that was created. | +## SastCiConfigurationAnalyzersEntity + +Represents an analyzer entity in SAST CI configuration + +| Name | Type | Description | +| --- | ---- | ---------- | +| `description` | String | Analyzer description that is displayed on the form. | +| `enabled` | Boolean | Indicates whether an analyzer is enabled. | +| `label` | String | Analyzer label used in the config UI. | +| `name` | String | Name of the analyzer. | + +## SastCiConfigurationEntity + +Represents an entity in SAST CI configuration + +| Name | Type | Description | +| --- | ---- | ---------- | +| `defaultValue` | String | Default value that is used if value is empty. | +| `description` | String | Entity description that is displayed on the form. | +| `field` | String | CI keyword of entity. | +| `label` | String | Label for entity used in the form. | +| `type` | String | Type of the field value. | +| `value` | String | Current value of the entity. | + +## SastCiConfigurationOptionsEntity + +Represents an entity for options in SAST CI configuration + +| Name | Type | Description | +| --- | ---- | ---------- | +| `label` | String | Label of option entity. | +| `value` | String | Value of option entity. | + +## ScannedResource + +Represents a resource scanned by a security scan + +| Name | Type | Description | +| --- | ---- | ---------- | +| `requestMethod` | String | The HTTP request method used to access the URL | +| `url` | String | The URL scanned by the scanner | + ## SecurityReportSummary Represents summary of a security report @@ -1540,6 +1731,7 @@ Represents summary of a security report | Name | Type | Description | | --- | ---- | ---------- | | `containerScanning` | SecurityReportSummarySection | Aggregated counts for the container_scanning scan | +| `coverageFuzzing` | SecurityReportSummarySection | Aggregated counts for the coverage_fuzzing scan | | `dast` | SecurityReportSummarySection | Aggregated counts for the dast scan | | `dependencyScanning` | SecurityReportSummarySection | Aggregated counts for the dependency_scanning scan | | `sast` | SecurityReportSummarySection | Aggregated counts for the sast scan | @@ -1552,8 +1744,19 @@ Represents a section of a summary of a security report | Name | Type | Description | | --- | ---- | ---------- | | `scannedResourcesCount` | Int | Total number of scanned resources | +| `scannedResourcesCsvPath` | String | Path to download all the scanned resources in CSV format | | `vulnerabilitiesCount` | Int | Total number of vulnerabilities | +## SecurityScanners + +Represents a list of security scanners + +| Name | Type | Description | +| --- | ---- | ---------- | +| `available` | SecurityScannerType! => Array | List of analyzers which are available for the project. | +| `enabled` | SecurityScannerType! => Array | List of analyzers which are enabled for the project. | +| `pipelineRun` | SecurityScannerType! => Array | List of analyzers which ran successfully in the latest pipeline. | + ## SentryDetailedError A Sentry error. @@ -1565,7 +1768,8 @@ A Sentry error. | `externalBaseUrl` | String! | External Base URL of the Sentry Instance | | `externalUrl` | String! | External URL of the error | | `firstReleaseLastCommit` | String | Commit the error was first seen | -| `firstReleaseShortVersion` | String | Release version the error was first seen | +| `firstReleaseShortVersion` | String | Release short version the error was first seen | +| `firstReleaseVersion` | String | Release version the error was first seen | | `firstSeen` | Time! | Timestamp when the error was first seen | | `frequency` | SentryErrorFrequency! => Array | Last 24hr stats of the error | | `gitlabCommit` | String | GitLab commit SHA attributed to the Error based on the release version | @@ -1573,7 +1777,8 @@ A Sentry error. | `gitlabIssuePath` | String | URL of GitLab Issue | | `id` | ID! | ID (global ID) of the error | | `lastReleaseLastCommit` | String | Commit the error was last seen | -| `lastReleaseShortVersion` | String | Release version the error was last seen | +| `lastReleaseShortVersion` | String | Release short version the error was last seen | +| `lastReleaseVersion` | String | Release version the error was last seen | | `lastSeen` | Time! | Timestamp when the error was last seen | | `message` | String | Sentry metadata message of the error | | `sentryId` | String! | ID (Sentry ID) of the error | @@ -1814,7 +2019,8 @@ Autogenerated return type of TodoRestoreMany | --- | ---- | ---------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `updatedIds` | ID! => Array | The ids of the updated todo items | +| `todos` | Todo! => Array | Updated todos | +| `updatedIds` **{warning-solid}** | ID! => Array | **Deprecated:** Use todos. Deprecated in 13.2 | ## TodoRestorePayload @@ -1834,7 +2040,8 @@ Autogenerated return type of TodosMarkAllDone | --- | ---- | ---------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `updatedIds` | ID! => Array | Ids of the updated todos | +| `todos` | Todo! => Array | Updated todos | +| `updatedIds` **{warning-solid}** | ID! => Array | **Deprecated:** Use todos. Deprecated in 13.2 | ## ToggleAwardEmojiPayload @@ -1877,6 +2084,7 @@ Autogenerated return type of UpdateAlertStatus | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue created after mutation | +| `todo` | Todo | The todo after mutation | ## UpdateContainerExpirationPolicyPayload @@ -1918,6 +2126,16 @@ Autogenerated return type of UpdateIssue | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | +## UpdateIterationPayload + +Autogenerated return type of UpdateIteration + +| Name | Type | Description | +| --- | ---- | ---------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `iteration` | Iteration | The updated iteration | + ## UpdateNotePayload Autogenerated return type of UpdateNote @@ -1984,9 +2202,12 @@ Represents a vulnerability. | --- | ---- | ---------- | | `description` | String | Description of the vulnerability | | `id` | ID! | GraphQL ID of the vulnerability | +| `identifiers` | VulnerabilityIdentifier! => Array | Identifiers of the vulnerability. | | `location` | VulnerabilityLocation | Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability | +| `primaryIdentifier` | VulnerabilityIdentifier | Primary identifier of the vulnerability. | | `project` | Project | The project on which the vulnerability was found | -| `reportType` | VulnerabilityReportType | Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION) | +| `reportType` | VulnerabilityReportType | Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION, COVERAGE_FUZZING) | +| `scanner` | VulnerabilityScanner | Scanner metadata for the vulnerability. | | `severity` | VulnerabilitySeverity | Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL) | | `state` | VulnerabilityState | State of the vulnerability (DETECTED, DISMISSED, RESOLVED, CONFIRMED) | | `title` | String | Title of the vulnerability | @@ -1994,6 +2215,17 @@ Represents a vulnerability. | `userPermissions` | VulnerabilityPermissions! | Permissions for the current user on the resource | | `vulnerabilityPath` | String | URL to the vulnerability's details page | +## VulnerabilityIdentifier + +Represents a vulnerability identifier. + +| Name | Type | Description | +| --- | ---- | ---------- | +| `externalId` | String | External ID of the vulnerability identifier | +| `externalType` | String | External type of the vulnerability identifier | +| `name` | String | Name of the vulnerability identifier | +| `url` | String | URL of the vulnerability identifier | + ## VulnerabilityIssueLink Represents an issue link of a vulnerability. @@ -2073,6 +2305,17 @@ Check permissions for the current user on a vulnerability | `readVulnerabilityFeedback` | Boolean! | Indicates the user can perform `read_vulnerability_feedback` on this resource | | `updateVulnerabilityFeedback` | Boolean! | Indicates the user can perform `update_vulnerability_feedback` on this resource | +## VulnerabilityScanner + +Represents a vulnerability scanner. + +| Name | Type | Description | +| --- | ---- | ---------- | +| `externalId` | String | External ID of the vulnerability scanner | +| `name` | String | Name of the vulnerability scanner | +| `reportType` | VulnerabilityReportType | Type of the vulnerability report | +| `vendor` | String | Vendor of the vulnerability scanner | + ## VulnerabilitySeveritiesCount Represents vulnerability counts by severity diff --git a/doc/api/group_clusters.md b/doc/api/group_clusters.md index b600a92bc38..17413ea2a3b 100644 --- a/doc/api/group_clusters.md +++ b/doc/api/group_clusters.md @@ -1,3 +1,9 @@ +--- +stage: Configure +group: Configure +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + # Group clusters API > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/30213) in GitLab 12.1. @@ -22,7 +28,7 @@ Parameters: Example request: ```shell -curl --header 'Private-Token: <your_access_token>' "https://gitlab.example.com/api/v4/groups/26/clusters" +curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/groups/26/clusters" ``` Example response: @@ -238,7 +244,7 @@ through the ["Add existing cluster to group"](#add-existing-cluster-to-group) en Example request: ```shell -curl --header 'Private-Token: <your_access_token>' "https://gitlab.example.com/api/v4/groups/26/clusters/24" \ +curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/groups/26/clusters/24" \ -H "Content-Type:application/json" \ --request PUT --data '{"name":"new-cluster-name","domain":"new-domain.com","api_url":"https://new-api-url.com"}' ``` diff --git a/doc/api/group_labels.md b/doc/api/group_labels.md index 5ae5ea4286a..260ee669e08 100644 --- a/doc/api/group_labels.md +++ b/doc/api/group_labels.md @@ -170,7 +170,8 @@ Example response: } ``` -NOTE: **Note:** An older endpoint `PUT /groups/:id/labels` with `name` in the parameters is still available, but deprecated. +NOTE: **Note:** +An older endpoint `PUT /groups/:id/labels` with `name` in the parameters is still available, but deprecated. ## Delete a group label @@ -189,7 +190,8 @@ DELETE /groups/:id/labels/:label_id curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/labels/bug" ``` -NOTE: **Note:** An older endpoint `DELETE /groups/:id/labels` with `name` in the parameters is still available, but deprecated. +NOTE: **Note:** +An older endpoint `DELETE /groups/:id/labels` with `name` in the parameters is still available, but deprecated. ## Subscribe to a group label diff --git a/doc/api/group_wikis.md b/doc/api/group_wikis.md new file mode 100644 index 00000000000..62094ffc940 --- /dev/null +++ b/doc/api/group_wikis.md @@ -0,0 +1,196 @@ +# Wikis API + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/212199) in GitLab 13.2. + +Available only in APIv4. + +## List wiki pages + +List all wiki pages for a given group. + +```plaintext +GET /groups/:id/wikis +``` + +| Attribute | Type | Required | Description | +| --------- | ------- | -------- | --------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `with_content` | boolean | no | Include pages' content | + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/wikis?with_content=1" +``` + +Example response: + +```json +[ + { + "content" : "Here is an instruction how to deploy this project.", + "format" : "markdown", + "slug" : "deploy", + "title" : "deploy" + }, + { + "content" : "Our development process is described here.", + "format" : "markdown", + "slug" : "development", + "title" : "development" + },{ + "content" : "* [Deploy](deploy)\n* [Development](development)", + "format" : "markdown", + "slug" : "home", + "title" : "home" + } +] +``` + +## Get a wiki page + +Get a wiki page for a given group. + +```plaintext +GET /groups/:id/wikis/:slug +``` + +| Attribute | Type | Required | Description | +| --------- | ------- | -------- | --------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `slug` | string | yes | The slug (a unique string) of the wiki page | + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/wikis/home" +``` + +Example response: + +```json +{ + "content" : "home page", + "format" : "markdown", + "slug" : "home", + "title" : "home" +} +``` + +## Create a new wiki page + +Create a new wiki page for the given repository with the given title, slug, and content. + +```plaintext +POST /projects/:id/wikis +``` + +| Attribute | Type | Required | Description | +| ------------- | ------- | -------- | ---------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `content` | string | yes | The content of the wiki page | +| `title` | string | yes | The title of the wiki page | +| `format` | string | no | The format of the wiki page. Available formats are: `markdown` (default), `rdoc`, `asciidoc` and `org` | + +```shell +curl --data "format=rdoc&title=Hello&content=Hello world" \ + --header "PRIVATE-TOKEN: <your_access_token>" \ + "https://gitlab.example.com/api/v4/groups/1/wikis" +``` + +Example response: + +```json +{ + "content" : "Hello world", + "format" : "markdown", + "slug" : "Hello", + "title" : "Hello" +} +``` + +## Edit an existing wiki page + +Update an existing wiki page. At least one parameter is required to update the wiki page. + +```plaintext +PUT /groups/:id/wikis/:slug +``` + +| Attribute | Type | Required | Description | +| --------------- | ------- | --------------------------------- | ------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `content` | string | yes if `title` is not provided | The content of the wiki page | +| `title` | string | yes if `content` is not provided | The title of the wiki page | +| `format` | string | no | The format of the wiki page. Available formats are: `markdown` (default), `rdoc`, `asciidoc` and `org` | +| `slug` | string | yes | The slug (a unique identifier) of the wiki page | + +```shell +curl --request PUT --data "format=rdoc&content=documentation&title=Docs" \ + --header "PRIVATE-TOKEN: <your_access_token>" \ + "https://gitlab.example.com/api/v4/groups/1/wikis/foo" +``` + +Example response: + +```json +{ + "content" : "documentation", + "format" : "markdown", + "slug" : "Docs", + "title" : "Docs" +} +``` + +## Delete a wiki page + +Delete a wiki page with a given slug. + +```plaintext +DELETE /groups/:id/wikis/:slug +``` + +| Attribute | Type | Required | Description | +| --------- | ------- | -------- | --------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `slug` | string | yes | The slug (a unique identifier) of the wiki page | + +```shell +curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/wikis/foo" +``` + +On success the HTTP status code is `204` and no JSON response is expected. + +## Upload an attachment to the wiki repository + +Upload a file to the attachment folder inside the wiki's repository. The +attachment folder is the `uploads` folder. + +```plaintext +POST /groups/:id/wikis/attachments +``` + +| Attribute | Type | Required | Description | +| ------------- | ------- | -------- | ---------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `file` | string | yes | The attachment to be uploaded | +| `branch` | string | no | The name of the branch. Defaults to the wiki repository default branch | + +To upload a file from your filesystem, use the `--form` argument. This causes +cURL to post data using the header `Content-Type: multipart/form-data`. +The `file=` parameter must point to a file on your filesystem and be preceded +by `@`. For example: + +```shell +curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "file=@dk.png" "https://gitlab.example.com/api/v4/groups/1/wikis/attachments" +``` + +Example response: + +```json +{ + "file_name" : "dk.png", + "file_path" : "uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png", + "branch" : "master", + "link" : { + "url" : "uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png", + "markdown" : "![dk](uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png)" + } +} +``` diff --git a/doc/api/groups.md b/doc/api/groups.md index e58506380d1..a5a0c210540 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -19,7 +19,7 @@ Parameters: | `statistics` | boolean | no | Include group statistics (admins only) | | `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only) | | `owned` | boolean | no | Limit to groups explicitly owned by the current user | -| `min_access_level` | integer | no | Limit to groups where current user has at least this [access level](members.md) | +| `min_access_level` | integer | no | Limit to groups where current user has at least this [access level](members.md#valid-access-levels) | | `top_level_only` | boolean | no | Limit to top level groups, excluding all subgroups | ```plaintext @@ -94,7 +94,8 @@ GET /groups?statistics=true "wiki_size" : 100, "lfs_objects_size" : 123, "job_artifacts_size" : 57, - "packages_size": 0 + "packages_size": 0, + "snippets_size" : 50, } } ] @@ -121,7 +122,7 @@ Parameters: | Attribute | Type | Required | Description | | ------------------------ | ----------------- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) of the parent group | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) of the immediate parent group | | `skip_groups` | array of integers | no | Skip the group IDs passed | | `all_available` | boolean | no | Show all the groups you have access to (defaults to `false` for authenticated users, `true` for admin); Attributes `owned` and `min_access_level` have precedence | | `search` | string | no | Return the list of authorized groups matching the search criteria | @@ -130,7 +131,7 @@ Parameters: | `statistics` | boolean | no | Include group statistics (admins only) | | `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only) | | `owned` | boolean | no | Limit to groups explicitly owned by the current user | -| `min_access_level` | integer | no | Limit to groups where current user has at least this [access level](members.md) | +| `min_access_level` | integer | no | Limit to groups where current user has at least this [access level](members.md#valid-access-levels) | ```plaintext GET /groups/:id/subgroups @@ -193,7 +194,7 @@ Parameters: | `with_merge_requests_enabled` | boolean | no | Limit by projects with merge requests feature enabled. Default is `false` | | `with_shared` | boolean | no | Include projects shared to this group. Default is `true` | | `include_subgroups` | boolean | no | Include projects in subgroups of this group. Default is `false` | -| `min_access_level` | integer | no | Limit to projects where current user has at least this [access level](members.md) | +| `min_access_level` | integer | no | Limit to projects where current user has at least this [access level](members.md#valid-access-levels) | | `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only) | | `with_security_reports` | boolean | no | **(ULTIMATE)** Return only projects that have security reports artifacts present in any of their builds. This means "projects with security reports enabled". Default is `false` | @@ -268,7 +269,7 @@ Parameters: | `starred` | boolean | no | Limit by projects starred by the current user | | `with_issues_enabled` | boolean | no | Limit by projects with issues feature enabled. Default is `false` | | `with_merge_requests_enabled` | boolean | no | Limit by projects with merge requests feature enabled. Default is `false` | -| `min_access_level` | integer | no | Limit to projects where current user has at least this [access level](members.md) | +| `min_access_level` | integer | no | Limit to projects where current user has at least this [access level](members.md#valid-access-levels) | | `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only) | Example response: @@ -666,8 +667,8 @@ Parameters: | `request_access_enabled` | boolean | no | Allow users to request member access. | | `parent_id` | integer | no | The parent group ID for creating nested group. | | `default_branch_protection` | integer | no | See [Options for `default_branch_protection`](#options-for-default_branch_protection). Default to the global level default branch protection setting. | -| `shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Pipeline minutes quota for this group. | -| `extra_shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Extra pipeline minutes quota for this group. | +| `shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Pipeline minutes quota for this group (included in plan). Can be `nil` (default; inherit system default), `0` (unlimited) or `> 0` | +| `extra_shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Extra pipeline minutes quota for this group (purchased in addition to the minutes included in the plan). | ### Options for `default_branch_protection` @@ -740,8 +741,8 @@ PUT /groups/:id | `request_access_enabled` | boolean | no | Allow users to request member access. | | `default_branch_protection` | integer | no | See [Options for `default_branch_protection`](#options-for-default_branch_protection). | | `file_template_project_id` | integer | no | **(PREMIUM)** The ID of a project to load custom file templates from. | -| `shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Pipeline minutes quota for this group. | -| `extra_shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Extra pipeline minutes quota for this group. | +| `shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Pipeline minutes quota for this group (included in plan). Can be `nil` (default; inherit system default), `0` (unlimited) or `> 0` | +| `extra_shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Extra pipeline minutes quota for this group (purchased in addition to the minutes included in the plan). | NOTE: **Note:** The `projects` and `shared_projects` attributes in the response are deprecated and will be [removed in API v5](https://gitlab.com/gitlab-org/gitlab/-/issues/213797). @@ -1051,7 +1052,7 @@ POST /groups/:id/ldap_group_links | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | | `cn` | string | no | The CN of an LDAP group | | `filter` | string | no | The LDAP filter for the group | -| `group_access` | integer | yes | Minimum access level for members of the LDAP group | +| `group_access` | integer | yes | Minimum [access level](members.md#valid-access-levels) for members of the LDAP group | | `provider` | string | yes | LDAP provider for the LDAP group link | NOTE: **Note:** @@ -1140,7 +1141,7 @@ POST /groups/:id/share | --------- | -------------- | -------- | ----------- | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | | `group_id` | integer | yes | The ID of the group to share with | -| `group_access` | integer | yes | The [permissions level](members.md) to grant the group | +| `group_access` | integer | yes | The [access level](members.md#valid-access-levels) to grant the group | | `expires_at` | string | no | Share expiration date in ISO 8601 format: 2016-09-26 | ### Delete link sharing group with another group diff --git a/doc/api/import.md b/doc/api/import.md index 307796f8acb..54e7eb12ed1 100644 --- a/doc/api/import.md +++ b/doc/api/import.md @@ -29,3 +29,40 @@ Example response: "full_name": "Administrator / my-repo" } ``` + +## Import repository from Bitbucket Server + +Import your projects from Bitbucket Server to GitLab via the API. + +NOTE: **Note:** +The Bitbucket Project Key is only used for finding the repository in Bitbucket. +You must specify a `target_namespace` if you want to import the repository to a GitLab group. +If you do not specify `target_namespace`, the project will import to your personal user namespace. + +```plaintext +POST /import/bitbucket_server +``` + +| Attribute | Type | Required | Description | +|------------|---------|----------|---------------------| +| `bitbucket_server_url` | string | yes | Bitbucket Server URL | +| `bitbucket_server_username` | string | yes | Bitbucket Server Username | +| `personal_access_token` | string | yes | Bitbucket Server personal access token/password | +| `bitbucket_server_project` | string | yes | Bitbucket Project Key | +| `bitbucket_server_repo` | string | yes | Bitbucket Repository Name | +| `new_name` | string | no | New repo name | +| `target_namespace` | string | no | Namespace to import repo into | + +```shell +curl --request POST \ + --url https://gitlab.example.com/api/v4/import/bitbucket_server \ + --header "content-type: application/json" \ + --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" \ + --data '{ + "bitbucket_server_url": "http://bitbucket.example.com", + "bitbucket_server_username": "root", + "personal_access_token": "Nzk4MDcxODY4MDAyOiP8y410zF3tGAyLnHRv/E0+3xYs", + "bitbucket_server_project": "NEW", + "bitbucket_server_repo": "my-repo" +}' +``` diff --git a/doc/api/instance_clusters.md b/doc/api/instance_clusters.md new file mode 100644 index 00000000000..1108550eee7 --- /dev/null +++ b/doc/api/instance_clusters.md @@ -0,0 +1,293 @@ +# Instance clusters API + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36001) in GitLab 13.2. + +NOTE: **Note:** +User will need admin access to use these endpoints. + +Use these API endpoints with your instance clusters, which enable you to use the same cluster across multiple projects. [More information](../user/instance/clusters/index.md) + +## List instance clusters + +Returns a list of instance clusters. + +```plaintext +GET /admin/clusters +``` + +Example request: + +```shell +curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/admin/clusters" +``` + +Example response: + +```json +[ + { + "id": 9, + "name": "cluster-1", + "created_at": "2020-07-14T18:36:10.440Z", + "domain": null, + "provider_type": "user", + "platform_type": "kubernetes", + "environment_scope": "*", + "cluster_type": "instance_type", + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "https://gitlab.example.com/root" + }, + "platform_kubernetes": { + "api_url": "https://example.com", + "namespace": null, + "authorization_type": "rbac", + "ca_cert":"-----BEGIN CERTIFICATE-----IxMDM1MV0ZDJkZjM...-----END CERTIFICATE-----" + }, + "provider_gcp": null, + "management_project": null + }, + { + "id": 10, + "name": "cluster-2", + "created_at": "2020-07-14T18:39:05.383Z", + "domain": null, + "provider_type": "user", + "platform_type": "kubernetes", + "environment_scope": "staging", + "cluster_type": "instance_type", + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "https://gitlab.example.com/root" + }, + "platform_kubernetes": { + "api_url": "https://example.com", + "namespace": null, + "authorization_type": "rbac", + "ca_cert":"-----BEGIN CERTIFICATE-----LzEtMCadtaLGxcsGAZjM...-----END CERTIFICATE-----" + }, + "provider_gcp": null, + "management_project": null + } + { + "id": 11, + "name": "cluster-3", + ... + } +] + +``` + +## Get a single instance cluster + +Returns a single instance cluster. + +Parameters: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `cluster_id` | integer | yes | The ID of the cluster | + +```plaintext +GET /admin/clusters/:cluster_id +``` + +Example request: + +```shell +curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/admin/clusters/9" +``` + +Example response: + +```json +{ + "id": 9, + "name": "cluster-1", + "created_at": "2020-07-14T18:36:10.440Z", + "domain": null, + "provider_type": "user", + "platform_type": "kubernetes", + "environment_scope": "*", + "cluster_type": "instance_type", + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "https://gitlab.example.com/root" + }, + "platform_kubernetes": { + "api_url": "https://example.com", + "namespace": null, + "authorization_type": "rbac", + "ca_cert":"-----BEGIN CERTIFICATE-----IxMDM1MV0ZDJkZjM...-----END CERTIFICATE-----" + }, + "provider_gcp": null, + "management_project": null +} +``` + +## Add existing instance cluster + +Adds an existing Kubernetes instance cluster. + +```plaintext +POST /admin/clusters/add +``` + +Parameters: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `name` | string | yes | The name of the cluster | +| `domain` | string | no | The [base domain](../user/project/clusters/index.md#base-domain) of the cluster | +| `environment_scope` | string | no | The associated environment to the cluster. Defaults to `*` | +| `management_project_id` | integer | no | The ID of the [management project](../user/clusters/management_project.md) for the cluster | +| `enabled` | boolean | no | Determines if cluster is active or not, defaults to true | +| `managed` | boolean | no | Determines if GitLab will manage namespaces and service accounts for this cluster, defaults to true | +| `platform_kubernetes_attributes[api_url]` | string | yes | The URL to access the Kubernetes API | +| `platform_kubernetes_attributes[token]` | string | yes | The token to authenticate against Kubernetes | +| `platform_kubernetes_attributes[ca_cert]` | string | no | TLS certificate. Required if API is using a self-signed TLS certificate. | +| `platform_kubernetes_attributes[namespace]` | string | no | The unique namespace related to the project | +| `platform_kubernetes_attributes[authorization_type]` | string | no | The cluster authorization type: `rbac`, `abac` or `unknown_authorization`. Defaults to `rbac`. | + +Example request: + +```shell +curl --header "Private-Token:<your_access_token>" "http://gitlab.example.com/api/v4/admin/clusters/add" \ +-H "Accept:application/json" \ +-H "Content-Type:application/json" \ +-X POST --data '{"name":"cluster-3", "environment_scope":"production", "platform_kubernetes_attributes":{"api_url":"https://example.com", "token":"12345", "ca_cert":"-----BEGIN CERTIFICATE-----qpoeiXXZafCM0ZDJkZjM...-----END CERTIFICATE-----"}}' + +``` + +Example response: + +```json +{ + "id": 11, + "name": "cluster-3", + "created_at": "2020-07-14T18:42:50.805Z", + "domain": null, + "provider_type": "user", + "platform_type": "kubernetes", + "environment_scope": "production", + "cluster_type": "instance_type", + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com:3000/root" + }, + "platform_kubernetes": { + "api_url": "https://example.com", + "namespace": null, + "authorization_type": "rbac", + "ca_cert":"-----BEGIN CERTIFICATE-----qpoeiXXZafCM0ZDJkZjM...-----END CERTIFICATE-----" + }, + "provider_gcp": null, + "management_project": null +} +``` + +## Edit instance cluster + +Updates an existing instance cluster. + +```shell +PUT /admin/clusters/:cluster_id +``` + +Parameters: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `cluster_id` | integer | yes | The ID of the cluster | +| `name` | string | no | The name of the cluster | +| `domain` | string | no | The [base domain](../user/project/clusters/index.md#base-domain) of the cluster | +| `environment_scope` | string | no | The associated environment to the cluster | +| `management_project_id` | integer | no | The ID of the [management project](../user/clusters/management_project.md) for the cluster | +| `enabled` | boolean | no | Determines if cluster is active or not, defaults to true | +| `platform_kubernetes_attributes[api_url]` | string | no | The URL to access the Kubernetes API | +| `platform_kubernetes_attributes[token]` | string | no | The token to authenticate against Kubernetes | +| `platform_kubernetes_attributes[ca_cert]` | string | no | TLS certificate. Required if API is using a self-signed TLS certificate. | +| `platform_kubernetes_attributes[namespace]` | string | no | The unique namespace related to the project | + +NOTE: **Note:** +`name`, `api_url`, `ca_cert` and `token` can only be updated if the cluster was added +through the [Add existing Kubernetes cluster](../user/project/clusters/add_remove_clusters.md#add-existing-cluster) option or +through the [Add existing instance cluster](#add-existing-instance-cluster) endpoint. + +Example request: + +```shell +curl --header "Private-Token: <your_access_token>" "http://gitlab.example.com/api/v4/admin/clusters/9" \ +-H "Content-Type:application/json" \ +-X PUT --data '{"name":"update-cluster-name", "platform_kubernetes_attributes":{"api_url":"https://new-example.com","token":"new-token"}}' + +``` + +Example response: + +```json +{ + "id": 9, + "name": "update-cluster-name", + "created_at": "2020-07-14T18:36:10.440Z", + "domain": null, + "provider_type": "user", + "platform_type": "kubernetes", + "environment_scope": "*", + "cluster_type": "instance_type", + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "https://gitlab.example.com/root" + }, + "platform_kubernetes": { + "api_url": "https://new-example.com", + "namespace": null, + "authorization_type": "rbac", + "ca_cert":"-----BEGIN CERTIFICATE-----IxMDM1MV0ZDJkZjM...-----END CERTIFICATE-----" + }, + "provider_gcp": null, + "management_project": null, + "project": null +} + +``` + +## Delete instance cluster + +Deletes an existing instance cluster. + +```plaintext +DELETE /admin/clusters/:cluster_id +``` + +Parameters: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `cluster_id` | integer | yes | The ID of the cluster | + +Example request: + +```shell +curl --request DELETE --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/admin/clusters/11" +``` diff --git a/doc/api/instance_level_ci_variables.md b/doc/api/instance_level_ci_variables.md index 72d20109fbd..ceaf7e30c48 100644 --- a/doc/api/instance_level_ci_variables.md +++ b/doc/api/instance_level_ci_variables.md @@ -1,10 +1,7 @@ # Instance-level CI/CD variables API > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14108) in GitLab 13.0 -> - It's deployed behind a feature flag, enabled by default. -> - It's enabled on GitLab.com. -> - It's recommended for production use. -> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-instance-level-cicd-variables-core-only). **(CORE ONLY)** +> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/218249) in GitLab 13.2. ## List all instance variables @@ -140,22 +137,3 @@ DELETE /admin/ci/variables/:key ```shell curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/VARIABLE_1" ``` - -### Enable or disable instance-level CI/CD variables **(CORE ONLY)** - -Instance-level CI/CD variables is under development but ready for production use. -It is deployed behind a feature flag that is **enabled by default**. -[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md) -can opt to disable it for your instance. - -To disable it: - -```ruby -Feature.disable(:ci_instance_level_variables) -``` - -To enable it: - -```ruby -Feature.enable(:ci_instance_level_variables) -``` diff --git a/doc/api/issues.md b/doc/api/issues.md index f640300e3ae..22f5d994f85 100644 --- a/doc/api/issues.md +++ b/doc/api/issues.md @@ -6,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Issues API -Every API call to issues must be authenticated. - If a user is not a member of a project and the project is private, a `GET` request on that project will result in a `404` status code. @@ -18,11 +16,11 @@ are paginated. Read more on [pagination](README.md#pagination). -CAUTION: **Deprecation** +CAUTION: **Deprecation:** > `reference` attribute in response is deprecated in favour of `references`. > Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) -NOTE: **Note** +NOTE: **Note:** > `references.relative` is relative to the group / project that the issue is being requested. When issue is fetched from its project > `relative` format would be the same as `short` format and when requested across groups / projects it is expected to be the same as `full` format. @@ -72,7 +70,7 @@ GET /issues?confidential=true | `updated_after` | datetime | no | Return issues updated on or after the given time | | `updated_before` | datetime | no | Return issues updated on or before the given time | | `confidential` | boolean | no | Filter confidential or public issues. | -| `not` | Hash | no | Return issues that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `my_reaction_emoji`, `search`, `in` | +| `not` | Hash | no | Return issues that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `my_reaction_emoji` | | `non_archived` | boolean | no | Return issues only from non-archived projects. If `false`, response will return issues from both archived and non-archived projects. Default is `true`. _(Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/197170))_ | ```shell @@ -188,6 +186,9 @@ the `weight` parameter: Get a list of a group's issues. +If the group is private, credentials will need to be provided for authorization. +The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). + ```plaintext GET /groups/:id/issues GET /groups/:id/issues?state=opened @@ -343,6 +344,9 @@ the `weight` parameter: Get a list of a project's issues. +If the project is private, credentials will need to be provided for authorization. +The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). + ```plaintext GET /projects/:id/issues GET /projects/:id/issues?state=opened @@ -504,6 +508,9 @@ the `weight` parameter: Get a single project issue. +If the project is private or the issue is confidential, credentials will need to be provided for authorization. +The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). + ```plaintext GET /projects/:id/issues/:issue_iid ``` @@ -613,14 +620,13 @@ the `weight` parameter: } ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will additionally see +Users on GitLab [Premium](https://about.gitlab.com/pricing/) will additionally see the `epic` property: ```javascript { "project_id" : 4, "description" : "Omnis vero earum sunt corporis dolor et placeat.", - "epic": { "epic_iid" : 5, //deprecated, use `iid` of the `epic` attribute "epic": { "id" : 42, @@ -663,8 +669,8 @@ POST /projects/:id/issues | `merge_request_to_resolve_discussions_of` | integer | no | The IID of a merge request in which to resolve all issues. This will fill the issue with a default description and mark all discussions as resolved. When passing a description or title, these values will take precedence over the default values.| | `discussion_to_resolve` | string | no | The ID of a discussion to resolve. This will fill in the issue with a default description and mark the discussion as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. | | `weight` **(STARTER)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. | -| `epic_id` **(ULTIMATE)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | -| `epic_iid` **(ULTIMATE)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | +| `epic_id` **(PREMIUM)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | +| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues?title=Issues%20with%20auth&labels=bug" @@ -781,8 +787,8 @@ PUT /projects/:id/issues/:issue_iid | `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, for example `2016-03-11` | | `weight` **(STARTER)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. 0 | | `discussion_locked` | boolean | no | Flag indicating if the issue's discussion is locked. If the discussion is locked only project members can add or edit comments. | -| `epic_id` **(ULTIMATE)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | -| `epic_iid` **(ULTIMATE)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | +| `epic_id` **(PREMIUM)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | +| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close" @@ -871,10 +877,10 @@ the `weight` parameter: NOTE: **Note:** At least one of following parameters is required to be passed for the request to be successful: `:assignee_id`, `:assignee_ids`, `:confidential`, `:created_at`, `:description`, `:discussion_locked`, `:due_date`, `:labels`, `:milestone_id`, `:state_event`, or `:title`. -NOTE: **Note**: +NOTE: **Note:** `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -NOTE: **Note**: +NOTE: **Note:** The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. ## Delete an issue @@ -894,6 +900,27 @@ DELETE /projects/:id/issues/:issue_iid curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues/85" ``` +## Reorder an issue + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/211864) as a [community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35349) in GitLab 13.2. + +Reorders an issue, you can see the results when sorting issues manually + +```plaintext +PUT /projects/:id/issues/:issue_iid/reorder +``` + +| Attribute | Type | Required | Description | +|-------------|---------|----------|--------------------------------------| +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user | +| `issue_iid` | integer | yes | The internal ID of a project's issue | +| `move_after_id` | integer | no | The ID of a projet's issue to move this issue after | +| `move_before_id` | integer | no | The ID of a projet's issue to move this issue before | + +```shell +curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues/85/reorder?move_after_id=51&move_before_id=92" +``` + ## Move an issue Moves an issue to a different project. If the target project @@ -1413,6 +1440,9 @@ Example response: ## Get time tracking stats +If the project is private or the issue is confidential, credentials will need to be provided for authorization. +The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). + ```plaintext GET /projects/:id/issues/:issue_iid/time_stats ``` @@ -1441,6 +1471,9 @@ Example response: Get all the merge requests that are related to the issue. +If the project is private or the issue is confidential, credentials will need to be provided for authorization. +The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). + ```plaintext GET /projects/:id/issues/:issue_id/related_merge_requests ``` @@ -1597,6 +1630,9 @@ Example response: Get all the merge requests that will close issue when merged. +If the project is private or the issue is confidential, credentials will need to be provided for authorization. +The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). + ```plaintext GET /projects/:id/issues/:issue_iid/closed_by ``` @@ -1670,6 +1706,9 @@ Example response: ## Participants on issues +If the project is private or the issue is confidential, credentials will need to be provided for authorization. +The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). + ```plaintext GET /projects/:id/issues/:issue_iid/participants ``` diff --git a/doc/api/labels.md b/doc/api/labels.md index 3ab059fca7c..30290f18653 100644 --- a/doc/api/labels.md +++ b/doc/api/labels.md @@ -199,7 +199,8 @@ DELETE /projects/:id/labels/:label_id curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels/bug" ``` -NOTE: **Note:** An older endpoint `DELETE /projects/:id/labels` with `name` in the parameters is still available, but deprecated. +NOTE: **Note:** +An older endpoint `DELETE /projects/:id/labels` with `name` in the parameters is still available, but deprecated. ## Edit an existing label @@ -242,7 +243,8 @@ Example response: } ``` -NOTE: **Note:** An older endpoint `PUT /projects/:id/labels` with `name` or `label_id` in the parameters is still available, but deprecated. +NOTE: **Note:** +An older endpoint `PUT /projects/:id/labels` with `name` or `label_id` in the parameters is still available, but deprecated. ## Promote a project label to a group label @@ -279,7 +281,8 @@ Example response: } ``` -NOTE: **Note:** An older endpoint `PUT /projects/:id/labels/promote` with `name` in the parameters is still available, but deprecated. +NOTE: **Note:** +An older endpoint `PUT /projects/:id/labels/promote` with `name` in the parameters is still available, but deprecated. ## Subscribe to a label diff --git a/doc/api/members.md b/doc/api/members.md index dadd609b7ed..8cd7bafdd77 100644 --- a/doc/api/members.md +++ b/doc/api/members.md @@ -1,6 +1,6 @@ # Group and project members API -**Valid access levels** +## Valid access levels The access levels are defined in the `Gitlab::Access` module. Currently, these levels are recognized: @@ -290,7 +290,7 @@ Example response: ### Set override flag for a member of a group -> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/4875) in GitLab 12.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/4875) in GitLab 13.0. By default, the access level of LDAP group members is set to the value specified by LDAP through Group Sync. You can allow access level overrides by calling this endpoint. @@ -326,7 +326,7 @@ Example response: ### Remove override for a member of a group -> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/4875) in GitLab 12.10. +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/4875) in GitLab 13.0. Sets the override flag to false and allows LDAP Group Sync to reset the access level to the LDAP-prescribed value. @@ -373,6 +373,7 @@ DELETE /projects/:id/members/:user_id | --------- | ---- | -------- | ----------- | | `id` | integer/string | yes | The ID or [URL-encoded path of the project or group](README.md#namespaced-path-encoding) owned by the authenticated user | | `user_id` | integer | yes | The user ID of the member | +| `unassign_issuables` | boolean | false | Flag indicating if the removed member should be unassigned from any issues or merge requests within given group or project | ```shell curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id" diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index 41c0428485f..959cf87ba62 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -2,11 +2,11 @@ Every API call to merge requests must be authenticated. -CAUTION: **Deprecation** +CAUTION: **Deprecation:** > `reference` attribute in response is deprecated in favour of `references`. > Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) -NOTE: **Note** +NOTE: **Note:** > `references.relative` is relative to the group / project that the merge request is being requested. When merge request is fetched from its project > `relative` format would be the same as `short` format and when requested across groups / projects it is expected to be the same as `full` format. @@ -64,6 +64,7 @@ Parameters: | `search` | string | no | Search merge requests against their `title` and `description` | | `in` | string | no | Modify the scope of the `search` attribute. `title`, `description`, or a string joining them with comma. Default is `title,description` | | `wip` | string | no | Filter merge requests against their `wip` status. `yes` to return *only* WIP merge requests, `no` to return *non* WIP merge requests | +| `not` | Hash | no | Return merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `my_reaction_emoji` | NOTE: **Note:** [Starting in GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890), @@ -1302,7 +1303,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git Merge changes submitted with MR using this API. -If merge request is unable to be accepted (ie: Work in Progress, Closed, Pipeline Pending Completion, or Failed while requiring Success) - you'll get a `405` and the error message 'Method Not Allowed' +If merge request is unable to be accepted (ie: Draft, Closed, Pipeline Pending Completion, or Failed while requiring Success) - you'll get a `405` and the error message 'Method Not Allowed' If it has some conflicts and can not be merged - you'll get a `406` and the error message 'Branch cannot be merged' diff --git a/doc/api/metrics_dashboard_annotations.md b/doc/api/metrics_dashboard_annotations.md index 05bf7156a7e..10dfd3d1c3b 100644 --- a/doc/api/metrics_dashboard_annotations.md +++ b/doc/api/metrics_dashboard_annotations.md @@ -1,3 +1,10 @@ +--- +stage: Monitor +group: APM +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +type: concepts, howto +--- + # Dashboard annotations API > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29089) in GitLab 12.10 behind a disabled feature flag. diff --git a/doc/api/metrics_user_starred_dashboards.md b/doc/api/metrics_user_starred_dashboards.md index dd9144d1319..df9cdd3b0e4 100644 --- a/doc/api/metrics_user_starred_dashboards.md +++ b/doc/api/metrics_user_starred_dashboards.md @@ -1,3 +1,10 @@ +--- +stage: Monitor +group: APM +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +type: concepts, howto +--- + # User-starred metrics dashboards API The starred dashboard feature makes navigating to frequently-used dashboards easier @@ -15,6 +22,7 @@ Parameters: | Attribute | Type | Required | Description | |:---------------|:---------------|:---------|:-----------------------------------------------------------------------------| +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `dashboard_path` | string | yes | URL-encoded path to file defining the dashboard which should be marked as favorite. | ```shell @@ -45,6 +53,7 @@ Parameters: | Attribute | Type | Required | Description | |:---------------|:---------------|:---------|:-----------------------------------------------------------------------------| +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `dashboard_path` | string | no | URL-encoded path to file defining the dashboard which should no longer be marked as favorite. When not supplied all dashboards within given projects will be removed from favorites. | ```shell diff --git a/doc/api/namespaces.md b/doc/api/namespaces.md index d1a2812bfb4..e38e725fb97 100644 --- a/doc/api/namespaces.md +++ b/doc/api/namespaces.md @@ -68,7 +68,8 @@ the `plan` parameter associated with a namespace: ] ``` -NOTE: **Note:** Only group maintainers/owners are presented with `members_count_with_descendants`, as well as `plan` **(BRONZE ONLY)**. +NOTE: **Note:** +Only group maintainers/owners are presented with `members_count_with_descendants`, as well as `plan` **(BRONZE ONLY)**. ## Search for namespace diff --git a/doc/api/notes.md b/doc/api/notes.md index 74d941edec1..9a75b950f28 100644 --- a/doc/api/notes.md +++ b/doc/api/notes.md @@ -116,6 +116,7 @@ Parameters: - `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) - `issue_iid` (required) - The IID of an issue - `body` (required) - The content of a note. Limited to 1,000,000 characters. +- `confidential` (optional) - The confidential flag of a note. Default is false. - `created_at` (optional) - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) ```shell diff --git a/doc/api/packages.md b/doc/api/packages.md index ca7113bc743..19828208a26 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -80,7 +80,7 @@ GET /groups/:id/packages curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=true" ``` -CAUTION: **Deprecation** +CAUTION: **Deprecation:** > The `build_info` attribute in the response is deprecated in favour of `pipeline`. > Introduced [GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28040). @@ -165,7 +165,7 @@ GET /projects/:id/packages/:package_id curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id" ``` -CAUTION: **Deprecation** +CAUTION: **Deprecation:** > The `build_info` attribute in the response is deprecated in favour of `pipeline`. > Introduced [GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28040). diff --git a/doc/api/pipelines.md b/doc/api/pipelines.md index e84d7663bdb..563829b8192 100644 --- a/doc/api/pipelines.md +++ b/doc/api/pipelines.md @@ -142,7 +142,7 @@ Example of response > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/202525) in GitLab 13.0. CAUTION: **Caution:** -This API route is part of the [JUnit test report](../ci/junit_test_reports.md) feature. It is protected by a [feature flag](../development/feature_flags/index.md) that is **disabled** due to performance issues with very large data sets. See [the documentation for the feature](../ci/junit_test_reports.md#enabling-the-feature) for further details. +This API route is part of the [JUnit test report](../ci/junit_test_reports.md) feature. It is protected by a [feature flag](../development/feature_flags/index.md) that is **disabled** due to performance issues with very large data sets. ```plaintext GET /projects/:id/pipelines/:pipeline_id/test_report diff --git a/doc/api/project_clusters.md b/doc/api/project_clusters.md index f7c8ffc8df6..04694157561 100644 --- a/doc/api/project_clusters.md +++ b/doc/api/project_clusters.md @@ -1,3 +1,9 @@ +--- +stage: Configure +group: Configure +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + # Project clusters API > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/23922) in GitLab 11.7. @@ -22,7 +28,7 @@ Parameters: Example request: ```shell -curl --header 'Private-Token: <your_access_token>' "https://gitlab.example.com/api/v4/projects/26/clusters" +curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/projects/26/clusters" ``` Example response: @@ -192,7 +198,7 @@ Parameters: Example request: ```shell -curl --header 'Private-Token: <your_access_token>' "https://gitlab.example.com/api/v4/projects/26/clusters/user" \ +curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/projects/26/clusters/user" \ -H "Accept: application/json" \ -H "Content-Type:application/json" \ -X POST --data '{"name":"cluster-5", "platform_kubernetes_attributes":{"api_url":"https://35.111.51.20","token":"12345","namespace":"cluster-5-namespace","ca_cert":"-----BEGIN CERTIFICATE-----\r\nhFiK1L61owwDQYJKoZIhvcNAQELBQAw\r\nLzEtMCsGA1UEAxMkZDA1YzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM4ZDBj\r\nMB4XDTE4MTIyNzIwMDM1MVoXDTIzMTIyNjIxMDM1MVowLzEtMCsGA1UEAxMkZDA1\r\nYzQ1YjctNzdiMS00NDY0LThjNmEtMTQ0ZDJkZjM.......-----END CERTIFICATE-----"}}' @@ -289,7 +295,7 @@ through the ["Add existing cluster to project"](#add-existing-cluster-to-project Example request: ```shell -curl --header 'Private-Token: <your_access_token>' "https://gitlab.example.com/api/v4/projects/26/clusters/24" \ +curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/projects/26/clusters/24" \ -H "Content-Type:application/json" \ -X PUT --data '{"name":"new-cluster-name","domain":"new-domain.com","api_url":"https://new-api-url.com"}' ``` @@ -383,5 +389,5 @@ Parameters: Example request: ```shell -curl --request DELETE --header 'Private-Token: <your_access_token>' "https://gitlab.example.com/api/v4/projects/26/clusters/23" +curl --request DELETE --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/projects/26/clusters/23" ``` diff --git a/doc/api/project_level_variables.md b/doc/api/project_level_variables.md index fbeba9d6c7d..407e506e082 100644 --- a/doc/api/project_level_variables.md +++ b/doc/api/project_level_variables.md @@ -43,6 +43,7 @@ GET /projects/:id/variables/:key |-----------|---------|----------|-----------------------| | `id` | integer/string | yes | The ID of a project or [urlencoded NAMESPACE/PROJECT_NAME of the project](README.md#namespaced-path-encoding) owned by the authenticated user | | `key` | string | yes | The `key` of a variable | +| `filter` | hash | no | Available filters: `[environment_scope]`. See the [`filter` parameter details](#the-filter-parameter). | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/TEST_VARIABLE_1" @@ -108,6 +109,7 @@ PUT /projects/:id/variables/:key | `protected` | boolean | no | Whether the variable is protected | | `masked` | boolean | no | Whether the variable is masked | | `environment_scope` | string | no | The `environment_scope` of the variable | +| `filter` | hash | no | Available filters: `[environment_scope]`. See the [`filter` parameter details](#the-filter-parameter). | ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/NEW_VARIABLE" --form "value=updated value" @@ -136,7 +138,40 @@ DELETE /projects/:id/variables/:key |-----------|---------|----------|-------------------------| | `id` | integer/string | yes | The ID of a project or [urlencoded NAMESPACE/PROJECT_NAME of the project](README.md#namespaced-path-encoding) owned by the authenticated user | | `key` | string | yes | The `key` of a variable | +| `filter` | hash | no | Available filters: `[environment_scope]`. See the [`filter` parameter details](#the-filter-parameter). | ```shell curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1" ``` + +## The `filter` parameter + +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34490) in GitLab 13.2. +> - It's deployed behind a feature flag, disabled by default. +> - It's disabled on GitLab.com. +> - To use it in GitLab self-managed instances, ask a GitLab administrator to enable it. + +This parameter is used for filtering by attributes, such as `environment_scope`. + +Example usage: + +```shell +curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1?filter[environment_scope]=production" +``` + +### Enable or disable + +[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md) +can enable it for your instance. + +To enable it: + +```ruby +Feature.enable(:ci_variables_api_filter_environment_scope) +``` + +To disable it: + +```ruby +Feature.disable(:ci_variables_api_filter_environment_scope) +``` diff --git a/doc/api/project_repository_storage_moves.md b/doc/api/project_repository_storage_moves.md index c55d4a19feb..f7fb361bf53 100644 --- a/doc/api/project_repository_storage_moves.md +++ b/doc/api/project_repository_storage_moves.md @@ -5,11 +5,12 @@ info: To determine the technical writer assigned to the Stage/Group associated w type: reference --- -# Project repository storage move API +# Project repository storage moves API **(CORE ONLY)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31285) in GitLab 13.0. -Project repository storage can be moved. To retrieve project repository storage moves using the API, you must [authenticate yourself](README.md#authentication) as an administrator. +Project repository storage can be moved. To retrieve project repository storage moves using the API, +you must [authenticate yourself](README.md#authentication) as an administrator. ## Retrieve all project repository storage moves @@ -23,7 +24,7 @@ are [paginated](README.md#pagination). Example request: ```shell -curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/project_repository_storage_moves' +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_repository_storage_moves" ``` Example response: @@ -66,7 +67,7 @@ Parameters: Example request: ```shell -curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/1/repository_storage_moves' +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/repository_storage_moves" ``` Example response: @@ -106,7 +107,7 @@ Parameters: Example request: ```shell -curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/project_repository_storage_moves/1' +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_repository_storage_moves/1" ``` Example response: @@ -145,7 +146,7 @@ Parameters: Example request: ```shell -curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/1/repository_storage_moves/1' +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/repository_storage_moves/1" ``` Example response: @@ -185,7 +186,7 @@ Example request: ```shell curl --request POST --header "PRIVATE_TOKEN: <your_access_token>" --header "Content-Type: application/json" \ ---data '{"destination_storage_name":"storage2"}' 'https://gitlab.example.com/api/v4/projects/1/repository_storage_moves' +--data '{"destination_storage_name":"storage2"}' "https://gitlab.example.com/api/v4/projects/1/repository_storage_moves" ``` Example response: diff --git a/doc/api/project_snippets.md b/doc/api/project_snippets.md index e5dd85fb3bb..fd8cbd6e256 100644 --- a/doc/api/project_snippets.md +++ b/doc/api/project_snippets.md @@ -183,6 +183,28 @@ curl "https://gitlab.com/api/v4/projects/:id/snippets/:snippet_id/raw" \ --header "PRIVATE-TOKEN: <your_access_token>" ``` +## Snippet repository file content + +Returns the raw file content as plain text. + +```plaintext +GET /projects/:id/snippets/:snippet_id/files/:ref/:file_path/raw +``` + +Parameters: + +- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user +- `snippet_id` (required) - The ID of a project's snippet +- `ref` (required) - The name of a branch, tag or commit e.g. master +- `file_path` (required) - The URL-encoded path to the file, e.g. snippet%2Erb + +Example request: + +```shell +curl "https://gitlab.com/api/v4/projects/1/snippets/2/files/master/snippet%2Erb/raw" \ + --header "PRIVATE-TOKEN: <your_access_token>" +``` + ## Get user agent details > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/29508) in GitLab 9.4. diff --git a/doc/api/projects.md b/doc/api/projects.md index b9ba632cd9e..6257f37f0e6 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -45,7 +45,7 @@ GET /projects | --------- | ---- | -------- | ----------- | | `archived` | boolean | no | Limit by archived status | | `visibility` | string | no | Limit by visibility `public`, `internal`, or `private` | -| `order_by` | string | no | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at` | +| `order_by` | string | no | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. `repository_size`, `storage_size`, or `wiki_size` fields are only allowed for admins. Default is `created_at` | | `sort` | string | no | Return projects sorted in `asc` or `desc` order. Default is `desc` | | `search` | string | no | Return list of projects matching the search criteria | | `search_namespaces` | boolean | no | Include ancestor namespaces when matching search criteria. Default is `false` | @@ -60,11 +60,12 @@ GET /projects | `with_programming_language` | string | no | Limit by projects which use the given programming language | | `wiki_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the wiki checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | | `repository_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the repository checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | -| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md) | +| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md#valid-access-levels) | | `id_after` | integer | no | Limit results to projects with IDs greater than the specified ID | | `id_before` | integer | no | Limit results to projects with IDs less than the specified ID | | `last_activity_after` | datetime | no | Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ | | `last_activity_before` | datetime | no | Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ | +| `repository_storage` | string | no | Limit results to projects stored on repository_storage. Available for admins only. | NOTE: **Note:** This endpoint supports [keyset pagination](README.md#keyset-based-pagination) for selected `order_by` options. @@ -174,7 +175,8 @@ When the user is authenticated and `simple` is not set this returns something li "wiki_size" : 0, "lfs_objects_size": 0, "job_artifacts_size": 0, - "packages_size": 0 + "packages_size": 0, + "snippets_size": 0 }, "_links": { "self": "http://example.com/api/v4/projects", @@ -276,7 +278,8 @@ When the user is authenticated and `simple` is not set this returns something li "wiki_size" : 0, "lfs_objects_size": 0, "job_artifacts_size": 0, - "packages_size": 0 + "packages_size": 0, + "snippets_size": 0 }, "_links": { "self": "http://example.com/api/v4/projects", @@ -348,7 +351,7 @@ GET /users/:user_id/projects | `with_issues_enabled` | boolean | no | Limit by enabled issues feature | | `with_merge_requests_enabled` | boolean | no | Limit by enabled merge requests feature | | `with_programming_language` | string | no | Limit by projects which use the given programming language | -| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md) | +| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md#valid-access-levels) | | `id_after` | integer | no | Limit results to projects with IDs greater than the specified ID | | `id_before` | integer | no | Limit results to projects with IDs less than the specified ID | @@ -425,7 +428,8 @@ This endpoint supports [keyset pagination](README.md#keyset-based-pagination) fo "wiki_size" : 0, "lfs_objects_size": 0, "job_artifacts_size": 0, - "packages_size": 0 + "packages_size": 0, + "snippets_size": 0 }, "_links": { "self": "http://example.com/api/v4/projects", @@ -527,7 +531,8 @@ This endpoint supports [keyset pagination](README.md#keyset-based-pagination) fo "wiki_size" : 0, "lfs_objects_size": 0, "job_artifacts_size": 0, - "packages_size": 0 + "packages_size": 0, + "snippets_size": 0 }, "_links": { "self": "http://example.com/api/v4/projects", @@ -566,7 +571,7 @@ GET /users/:user_id/starred_projects | `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only). | | `with_issues_enabled` | boolean | no | Limit by enabled issues feature. | | `with_merge_requests_enabled` | boolean | no | Limit by enabled merge requests feature. | -| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md). | +| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md#valid-access-levels). | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/5/starred_projects" @@ -890,6 +895,7 @@ GET /projects/:id "suggestion_commit_message": null, "marked_for_deletion_at": "2020-04-03", // Deprecated and will be removed in API v5 in favor of marked_for_deletion_on "marked_for_deletion_on": "2020-04-03", + "compliance_frameworks": [ "sox" ], "statistics": { "commit_count": 37, "storage_size": 1038090, @@ -897,7 +903,8 @@ GET /projects/:id "wiki_size" : 0, "lfs_objects_size": 0, "job_artifacts_size": 0, - "packages_size": 0 + "packages_size": 0, + "snippets_size": 0 }, "_links": { "self": "http://example.com/api/v4/projects", @@ -1045,7 +1052,7 @@ POST /projects | `show_default_award_emojis` | boolean | no | Show default award emojis | | `resolve_outdated_diff_discussions` | boolean | no | Automatically resolve merge request diffs discussions on lines changed with a push | | `container_registry_enabled` | boolean | no | Enable container registry for this project | -| `container_expiration_policy_attributes` | hash | no | Update the image expiration policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean) | +| `container_expiration_policy_attributes` | hash | no | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean) | | `shared_runners_enabled` | boolean | no | Enable shared runners for this project | | `visibility` | string | no | See [project visibility level](#project-visibility-level) | | `import_url` | string | no | URL to import repository from | @@ -1080,7 +1087,8 @@ POST /projects | `group_with_project_templates_id` | integer | no | **(PREMIUM)** For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true | | `packages_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable packages repository feature | -NOTE: **Note:** If your HTTP repository is not publicly accessible, +NOTE: **Note:** +If your HTTP repository is not publicly accessible, add authentication information to the URL: `https://username:password@gitlab.company.com/group/project.git` where `password` is a public access key with the `api` scope enabled. @@ -1150,7 +1158,8 @@ POST /projects/user/:user_id | `group_with_project_templates_id` | integer | no | **(PREMIUM)** For group-level custom templates, specifies ID of group from which all the custom project templates are sourced. Leave empty for instance-level templates. Requires `use_custom_template` to be true | | `packages_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable packages repository feature | -NOTE: **Note:** If your HTTP repository is not publicly accessible, +NOTE: **Note:** +If your HTTP repository is not publicly accessible, add authentication information to the URL: `https://username:password@gitlab.company.com/group/project.git` where `password` is a public access key with the `api` scope enabled. @@ -1186,7 +1195,7 @@ PUT /projects/:id | `show_default_award_emojis` | boolean | no | Show default award emojis | | `resolve_outdated_diff_discussions` | boolean | no | Automatically resolve merge request diffs discussions on lines changed with a push | | `container_registry_enabled` | boolean | no | Enable container registry for this project | -| `container_expiration_policy_attributes` | hash | no | Update the image expiration policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean) | +| `container_expiration_policy_attributes` | hash | no | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean) | | `shared_runners_enabled` | boolean | no | Enable shared runners for this project | | `visibility` | string | no | See [project visibility level](#project-visibility-level) | | `import_url` | string | no | URL to import repository from | @@ -1219,9 +1228,10 @@ PUT /projects/:id | `only_mirror_protected_branches` | boolean | no | **(STARTER)** Only mirror protected branches | | `mirror_overwrites_diverged_branches` | boolean | no | **(STARTER)** Pull mirror overwrites diverged branches | | `packages_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable packages repository feature | -| `service_desk_enabled` | boolean | no | **(PREMIUM ONLY)** Enable or disable service desk feature | +| `service_desk_enabled` | boolean | no | Enable or disable service desk feature | -NOTE: **Note:** If your HTTP repository is not publicly accessible, +NOTE: **Note:** +If your HTTP repository is not publicly accessible, add authentication information to the URL: `https://username:password@gitlab.company.com/group/project.git` where `password` is a public access key with the `api` scope enabled. @@ -1272,7 +1282,7 @@ GET /projects/:id/forks | `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only) | | `with_issues_enabled` | boolean | no | Limit by enabled issues feature | | `with_merge_requests_enabled` | boolean | no | Limit by enabled merge requests feature | -| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md) | +| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md#valid-access-levels) | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/forks" @@ -1824,12 +1834,19 @@ Example response: ## Remove project -This endpoint either: +This endpoint: - Removes a project including all associated resources (issues, merge requests etc). -- From [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/issues/32935) on [Premium or Silver](https://about.gitlab.com/pricing/) or higher tiers, marks a project for deletion. Actual - deletion happens after number of days specified in - [instance settings](../user/admin_area/settings/visibility_and_access_controls.md#default-deletion-adjourned-period-premium-only). +- From [GitLab 13.2](https://gitlab.com/gitlab-org/gitlab/-/issues/220382) on [Premium or Silver](https://about.gitlab.com/pricing/) or higher tiers, +group admins can [configure](../user/group/index.md#enabling-delayed-project-removal-premium) projects within a group +to be deleted after a delayed period. +When enabled, actual deletion happens after the number of days +specified in the [default deletion period](../user/admin_area/settings/visibility_and_access_controls.md#default-deletion-adjourned-period-premium-only). + +CAUTION: **Warning:** +The default behavior of [Delayed Project deletion](https://gitlab.com/gitlab-org/gitlab/-/issues/32935) in GitLab 12.6 +was changed to [Immediate deletion](https://gitlab.com/gitlab-org/gitlab/-/issues/220382) +in GitLab 13.2, as discussed in [Enabling delayed project removal](../user/group/index.md#enabling-delayed-project-removal-premium). ```plaintext DELETE /projects/:id @@ -1902,7 +1919,7 @@ POST /projects/:id/share | --------- | ---- | -------- | ----------- | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `group_id` | integer | yes | The ID of the group to share with | -| `group_access` | integer | yes | The [permissions level](members.md) to grant the group | +| `group_access` | integer | yes | The [access level](members.md#valid-access-levels) to grant the group | | `expires_at` | string | no | Share expiration date in ISO 8601 format: 2016-09-26 | ## Delete a shared project link within a group diff --git a/doc/api/protected_environments.md b/doc/api/protected_environments.md index 765b8d2364d..56b399cec9b 100644 --- a/doc/api/protected_environments.md +++ b/doc/api/protected_environments.md @@ -1,3 +1,10 @@ +--- +stage: Release +group: Release Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +type: concepts, howto +--- + # Protected environments API **(PREMIUM)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/30595) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.8. diff --git a/doc/api/releases/links.md b/doc/api/releases/links.md index 35cb66e59a1..242b5eb41f5 100644 --- a/doc/api/releases/links.md +++ b/doc/api/releases/links.md @@ -138,7 +138,7 @@ PUT /projects/:id/releases/:tag_name/assets/links/:link_id | `url` | string | no | The URL of the link. | | `link_type` | string | no | The type of the link: `other`, `runbook`, `image`, `package`. Defaults to `other`. | -NOTE: **NOTE** +NOTE: **Note:** You have to specify at least one of `name` or `url` Example request: diff --git a/doc/api/resource_milestone_events.md b/doc/api/resource_milestone_events.md index 695687ada6d..8a81615857c 100644 --- a/doc/api/resource_milestone_events.md +++ b/doc/api/resource_milestone_events.md @@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Resource milestone events API -Resource milestone events keep track of what happens to GitLab [issues](../user/project/issues/), -[merge requests](../user/project/merge_requests/), and [epics](../user/group/epics/). +Resource milestone events keep track of what happens to GitLab [issues](../user/project/issues/) and +[merge requests](../user/project/merge_requests/). Use them to track which milestone was added or removed, who did it, and when it happened. diff --git a/doc/api/resource_state_events.md b/doc/api/resource_state_events.md new file mode 100644 index 00000000000..6b257f10c6e --- /dev/null +++ b/doc/api/resource_state_events.md @@ -0,0 +1,212 @@ +--- +stage: Plan +group: Project Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + +# Resource state events API + +Resource state events keep track of what happens to GitLab [issues](../user/project/issues/) and +[merge requests](../user/project/merge_requests/). + +Use them to track which state was set, who did it, and when it happened. + +## Issues + +### List project issue state events + +Gets a list of all state events for a single issue. + +```plaintext +GET /projects/:id/issues/:issue_iid/resource_state_events +``` + +| Attribute | Type | Required | Description | +| ----------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | +| `issue_iid` | integer | yes | The IID of an issue | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_state_events" +``` + +Example response: + +```json +[ + { + "id": 142, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-20T13:38:20.077Z", + "resource_type": "Issue", + "resource_id": 11, + "state": "opened" + }, + { + "id": 143, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-21T14:38:20.077Z", + "resource_type": "Issue", + "resource_id": 11, + "state": "closed" + } +] +``` + +### Get single issue state event + +Returns a single state event for a specific project issue + +```plaintext +GET /projects/:id/issues/:issue_iid/resource_state_events/:resource_state_event_id +``` + +Parameters: + +| Attribute | Type | Required | Description | +| ----------------------------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path](README.md#namespaced-path-encoding) of the project | +| `issue_iid` | integer | yes | The IID of an issue | +| `resource_state_event_id` | integer | yes | The ID of a state event | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_state_events/143" +``` + +Example response: + +```json +{ + "id": 143, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-21T14:38:20.077Z", + "resource_type": "Issue", + "resource_id": 11, + "state": "closed" +} +``` + +## Merge requests + +### List project merge request state events + +Gets a list of all state events for a single merge request. + +```plaintext +GET /projects/:id/merge_requests/:merge_request_iid/resource_state_events +``` + +| Attribute | Type | Required | Description | +| ------------------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path](README.md#namespaced-path-encoding) of the project | +| `merge_request_iid` | integer | yes | The IID of a merge request | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/resource_state_events" +``` + +Example response: + +```json +[ + { + "id": 142, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-20T13:38:20.077Z", + "resource_type": "MergeRequest", + "resource_id": 11, + "state": "opened" + }, + { + "id": 143, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-21T14:38:20.077Z", + "resource_type": "MergeRequest", + "resource_id": 11, + "state": "closed" + } +] +``` + +### Get single merge request state event + +Returns a single state event for a specific project merge request + +```plaintext +GET /projects/:id/merge_requests/:merge_request_iid/resource_state_events/:resource_state_event_id +``` + +Parameters: + +| Attribute | Type | Required | Description | +| ----------------------------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | +| `merge_request_iid` | integer | yes | The IID of a merge request | +| `resource_state_event_id` | integer | yes | The ID of a state event | + +Example request: + +```shell +curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/resource_state_events/120" +``` + +Example response: + +```json +{ + "id": 120, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-21T14:38:20.077Z", + "resource_type": "MergeRequest", + "resource_id": 11, + "state": "closed" +} +``` diff --git a/doc/api/resource_weight_events.md b/doc/api/resource_weight_events.md new file mode 100644 index 00000000000..700ef288440 --- /dev/null +++ b/doc/api/resource_weight_events.md @@ -0,0 +1,108 @@ +--- +stage: Plan +group: Project Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + +# Resource weight events API + +Resource weight events keep track of what happens to GitLab [issues](../user/project/issues/). + +Use them to track which weight was set, who did it, and when it happened. + +## Issues + +### List project issue weight events + +Gets a list of all weight events for a single issue. + +```plaintext +GET /projects/:id/issues/:issue_iid/resource_weight_events +``` + +| Attribute | Type | Required | Description | +| ----------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | +| `issue_iid` | integer | yes | The IID of an issue | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_weight_events" +``` + +Example response: + +```json +[ + { + "id": 142, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-20T13:38:20.077Z", + "issue_id": 253, + "weight": 3 + }, + { + "id": 143, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-21T14:38:20.077Z", + "issue_id": 253, + "weight": 2 + } +] +``` + +### Get single issue weight event + +Returns a single weight event for a specific project issue + +```plaintext +GET /projects/:id/issues/:issue_iid/resource_weight_events/:resource_weight_event_id +``` + +Parameters: + +| Attribute | Type | Required | Description | +| ----------------------------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path](README.md#namespaced-path-encoding) of the project | +| `issue_iid` | integer | yes | The IID of an issue | +| `resource_weight_event_id` | integer | yes | The ID of a weight event | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_weight_events/143" +``` + +Example response: + +```json +{ +"id": 143, +"user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" +}, +"created_at": "2018-08-21T14:38:20.077Z", +"issue_id": 253, +"weight": 2 +} +``` diff --git a/doc/api/services.md b/doc/api/services.md index 02048a27c1b..4052fd22641 100644 --- a/doc/api/services.md +++ b/doc/api/services.md @@ -493,6 +493,42 @@ Get Emails on push service settings for a project. GET /projects/:id/services/emails-on-push ``` +## Confluence service + +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/220934) in GitLab 13.2. + +Replaces the link to the internal wiki with a link to a Confluence Cloud Workspace. + +### Create/Edit Confluence service + +Set Confluence service for a project. + +```plaintext +PUT /projects/:id/services/confluence +``` + +Parameters: + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `confluence_url` | string | true | The URL of the Confluence Cloud Workspace hosted on atlassian.net. | + +### Delete Confluence service + +Delete Confluence service for a project. + +```plaintext +DELETE /projects/:id/services/confluence +``` + +### Get Confluence service settings + +Get Confluence service settings for a project. + +```plaintext +GET /projects/:id/services/confluence +``` + ## External Wiki Replaces the link to the internal wiki with a link to an external wiki. @@ -1008,7 +1044,7 @@ Parameters: | --------- | ---- | -------- | ----------- | | `api_url` | string | true | Prometheus API Base URL. For example, `http://prometheus.example.com/`. | | `google_iap_audience_client_id` | string | false | Client ID of the IAP secured resource (looks like IAP_CLIENT_ID.apps.googleusercontent.com) | -| `google_iap_service_account_json` | string | false | credentials.json file for your service account, like { "type": "service_account", "project_id": ... } | +| `google_iap_service_account_json` | string | false | `credentials.json` file for your service account, like { "type": "service_account", "project_id": ... } | ### Delete Prometheus service diff --git a/doc/api/settings.md b/doc/api/settings.md index 78d992cff58..d87a3c72a7e 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -48,7 +48,7 @@ Example response: "sign_in_text" : null, "container_expiration_policies_enable_historic_entries": true, "container_registry_token_expire_delay": 5, - "repository_storages": ["default"], + "repository_storages_weighted": {"default": 100}, "plantuml_enabled": false, "plantuml_url": null, "terminal_max_session_time": 0, @@ -291,6 +291,8 @@ are listed in the descriptions of the relevant settings. | `mirror_max_capacity` | integer | no | **(PREMIUM)** Maximum number of mirrors that can be synchronizing at the same time. | | `mirror_max_delay` | integer | no | **(PREMIUM)** Maximum time (in minutes) between updates that a mirror can have when scheduled to synchronize. | | `npm_package_requests_forwarding` | boolean | no | **(PREMIUM)** Use npmjs.org as a default remote repository when the package is not found in the GitLab NPM Registry | +| `maintenance_mode` | boolean | no | **(PREMIUM)** When instance is in maintenance mode, non-admin users can sign in with read-only access and make read-only API requests | +| `maintenance_mode_message` | string | no | **(PREMIUM)** Message displayed when instance is in maintenance mode | | `outbound_local_requests_whitelist` | array of strings | no | Define a list of trusted domains or ip addresses to which local requests are allowed when local requests for hooks and services are disabled. | `pages_domain_verification_enabled` | boolean | no | Require users to prove ownership of custom domains. Domain verification is an essential security measure for public GitLab sites. Users are required to demonstrate they control a domain before it is enabled. | | `password_authentication_enabled_for_git` | boolean | no | Enable authentication for Git over HTTP(S) via a GitLab account password. Default is `true`. | @@ -314,7 +316,8 @@ are listed in the descriptions of the relevant settings. | `receive_max_input_size` | integer | no | Maximum push size (MB). | | `repository_checks_enabled` | boolean | no | GitLab will periodically run `git fsck` in all project and wiki repositories to look for silent disk corruption issues. | | `repository_size_limit` | integer | no | **(PREMIUM)** Size limit per repository (MB) | -| `repository_storages` | array of strings | no | A list of names of enabled storage paths, taken from `gitlab.yml`. New projects will be created in one of these stores, chosen at random. | +| `repository_storages` | array of strings | no | (GitLab 13.0 and earlier) List of names of enabled storage paths, taken from `gitlab.yml`. New projects are created in one of these stores, chosen at random. | +| `repository_storages_weighted` | hash of strings to integers | no | (GitLab 13.1 and later) Hash of names of taken from `gitlab.yml` to weights. New projects are created in one of these stores, chosen by a weighted random selection. | | `require_two_factor_authentication` | boolean | no | (**If enabled, requires:** `two_factor_grace_period`) Require all users to set up Two-factor authentication. | | `restricted_visibility_levels` | array of strings | no | Selected levels cannot be used by non-admin users for groups, projects or snippets. Can take `private`, `internal` and `public` as a parameter. Default is `null` which means there is no restriction. | | `rsa_key_restriction` | integer | no | The minimum allowed bit length of an uploaded RSA key. Default is `0` (no restriction). `-1` disables RSA keys. | diff --git a/doc/api/snippets.md b/doc/api/snippets.md index 1aa3eecfd29..db94716c2d4 100644 --- a/doc/api/snippets.md +++ b/doc/api/snippets.md @@ -150,6 +150,34 @@ Example response: Hello World snippet ``` +## Snippet repository file content + +Returns the raw file content as plain text. + +```plaintext +GET /snippets/:id/files/:ref/:file_path/raw +``` + +Parameters: + +| Attribute | Type | Required | Description | +|:------------|:--------|:---------|:-------------------------------------------------------------------| +| `id` | integer | yes | ID of snippet to retrieve | +| `ref` | string | yes | Reference to a tag, branch or commit | +| `file_path` | string | yes | URL-encoded path to the file | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/snippets/1/files/master/snippet%2Erb/raw" +``` + +Example response: + +```plaintext +Hello World snippet +``` + ## Create new snippet Create a new snippet. diff --git a/doc/api/users.md b/doc/api/users.md index 6ac1cd089e7..505468945cb 100644 --- a/doc/api/users.md +++ b/doc/api/users.md @@ -89,7 +89,8 @@ GET /users "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "is_admin": false, - "bio": null, + "bio": "", + "bio_html": "", "location": null, "skype": "", "linkedin": "", @@ -128,7 +129,8 @@ GET /users "web_url": "http://localhost:3000/jack_smith", "created_at": "2012-05-23T08:01:01Z", "is_admin": false, - "bio": null, + "bio": "", + "bio_html": "", "location": null, "skype": "", "linkedin": "", @@ -245,7 +247,8 @@ Parameters: "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg", "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", - "bio": null, + "bio": "", + "bio_html": "", "location": null, "public_email": "john@example.com", "skype": "", @@ -280,7 +283,8 @@ Example Responses: "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "is_admin": false, - "bio": null, + "bio": "", + "bio_html": "", "location": null, "public_email": "john@example.com", "skype": "", @@ -314,7 +318,8 @@ Example Responses: } ``` -NOTE: **Note:** The `plan` and `trial` parameters are only available on GitLab Enterprise Edition. +NOTE: **Note:** +The `plan` and `trial` parameters are only available on GitLab Enterprise Edition. Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see the `shared_runners_minutes_limit`, and `extra_shared_runners_minutes_limit` parameters. @@ -368,6 +373,9 @@ over `password`. In addition, `reset_password` and NOTE: **Note:** From [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/29888/), `private_profile` will default to `false`. +NOTE: **Note:** +From [GitLab 13.2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35604), `bio` will default to `""` instead of `null`. + ```plaintext POST /users ``` @@ -384,7 +392,7 @@ Parameters: | `email` | Yes | Email | | `extern_uid` | No | External UID | | `external` | No | Flags the user as external - true or false (default) | -| `extra_shared_runners_minutes_limit` | No | Extra pipeline minutes quota for this user **(STARTER)** | +| `extra_shared_runners_minutes_limit` | No | Extra pipeline minutes quota for this user (purchased in addition to the minutes included in the plan) **(STARTER)** | | `force_random_password` | No | Set user password to a random value - true or false (default) | | `group_id_for_saml` | No | ID of group where SAML has been configured | | `linkedin` | No | LinkedIn | @@ -398,7 +406,7 @@ Parameters: | `provider` | No | External provider name | | `public_email` | No | The public email of the user | | `reset_password` | No | Send user password reset link - true or false(default) | -| `shared_runners_minutes_limit` | No | Pipeline minutes quota for this user **(STARTER)** | +| `shared_runners_minutes_limit` | No | Pipeline minutes quota for this user (included in plan). Can be `nil` (default; inherit system default), `0` (unlimited) or `> 0` **(STARTER)** | | `skip_confirmation` | No | Skip confirmation - true or false (default) | | `skype` | No | Skype ID | | `theme_id` | No | The GitLab theme for the user (see [the user preference docs](../user/profile/preferences.md#navigation-theme) for more information) | @@ -426,7 +434,7 @@ Parameters: | `email` | No | Email | | `extern_uid` | No | External UID | | `external` | No | Flags the user as external - true or false (default) | -| `extra_shared_runners_minutes_limit` | No | Extra pipeline minutes quota for this user **(STARTER)** | +| `extra_shared_runners_minutes_limit` | No | Extra pipeline minutes quota for this user (purchased in addition to the minutes included in the plan) **(STARTER)** | | `group_id_for_saml` | No | ID of group where SAML has been configured | | `id` | Yes | The ID of the user | | `linkedin` | No | LinkedIn | @@ -439,7 +447,7 @@ Parameters: | `projects_limit` | No | Limit projects each user can create | | `provider` | No | External provider name | | `public_email` | No | The public email of the user | -| `shared_runners_minutes_limit` | No | Pipeline minutes quota for this user **(STARTER)** | +| `shared_runners_minutes_limit` | No | Pipeline minutes quota for this user (included in plan). Can be `nil` (default; inherit system default), `0` (unlimited) or `> 0` **(STARTER)** | | `skip_reconfirmation` | No | Skip reconfirmation - true or false (default) | | `skype` | No | Skype ID | | `theme_id` | No | The GitLab theme for the user (see [the user preference docs](../user/profile/preferences.md#navigation-theme) for more information) | @@ -499,7 +507,8 @@ GET /user "avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg", "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", - "bio": null, + "bio": "", + "bio_html": "", "location": null, "public_email": "john@example.com", "skype": "", @@ -548,7 +557,8 @@ GET /user "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "is_admin": false, - "bio": null, + "bio": "", + "bio_html": "", "location": null, "public_email": "john@example.com", "skype": "", @@ -799,6 +809,9 @@ Parameters: - `key` (required) - new SSH key - `expires_at` (optional) - The expiration date of the SSH key in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`) +NOTE: **Note:** +This also adds an audit event, as described in [audit instance events](../administration/audit_events.md#instance-events-premium-only). **(PREMIUM)** + ## Delete SSH key for current user Deletes key owned by currently authenticated user. @@ -1400,7 +1413,8 @@ Parameters: ### Get user activities (admin only) -NOTE: **Note:** This API endpoint is only available on 8.15 (EE) and 9.1 (CE) and above. +NOTE: **Note:** +This API endpoint is only available on 8.15 (EE) and 9.1 (CE) and above. Get the last activity date for all users, sorted from oldest to newest. diff --git a/doc/api/vulnerability_findings.md b/doc/api/vulnerability_findings.md index 7fbd58ea62c..e21d903e474 100644 --- a/doc/api/vulnerability_findings.md +++ b/doc/api/vulnerability_findings.md @@ -43,6 +43,7 @@ GET /projects/:id/vulnerability_findings?scope=all GET /projects/:id/vulnerability_findings?scope=dismissed GET /projects/:id/vulnerability_findings?severity=high GET /projects/:id/vulnerability_findings?confidence=unknown,experimental +GET /projects/:id/vulnerability_findings?scanner=bandit,find_sec_bugs GET /projects/:id/vulnerability_findings?pipeline_id=42 ``` @@ -56,6 +57,7 @@ Beginning with GitLab 12.9, the `undefined` severity and confidence level is no | `scope` | string | no | Returns vulnerability findings for the given scope: `all` or `dismissed`. Defaults to `dismissed`. | | `severity` | string array | no | Returns vulnerability findings belonging to specified severity level: `info`, `unknown`, `low`, `medium`, `high`, or `critical`. Defaults to all. | | `confidence` | string array | no | Returns vulnerability findings belonging to specified confidence level: `ignore`, `unknown`, `experimental`, `low`, `medium`, `high`, or `confirmed`. Defaults to all. | +| `scanner` | string array | no | Returns vulnerability findings detected by specified scanner. | `pipeline_id` | integer/string | no | Returns vulnerability findings belonging to specified pipeline. | ```shell |