diff options
author | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 22:34:23 +0300 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 22:34:23 +0300 |
commit | 6438df3a1e0fb944485cebf07976160184697d72 (patch) | |
tree | 00b09bfd170e77ae9391b1a2f5a93ef6839f2597 /doc/api | |
parent | 42bcd54d971da7ef2854b896a7b34f4ef8601067 (diff) |
Add latest changes from gitlab-org/gitlab@13-8-stable-eev13.8.0-rc42
Diffstat (limited to 'doc/api')
46 files changed, 9711 insertions, 2483 deletions
diff --git a/doc/api/README.md b/doc/api/README.md index dced721b018..8fb3269d28b 100644 --- a/doc/api/README.md +++ b/doc/api/README.md @@ -23,9 +23,9 @@ For a list of the available resources and their endpoints, see ## SCIM **(SILVER ONLY)** -[GitLab.com Silver and higher](https://about.gitlab.com/pricing/) provides an -[SCIM API](scim.md) that both implements [the RFC7644 protocol](https://tools.ietf.org/html/rfc7644) -and provides the `/Users` endpoint. The base URL is: `/api/scim/v2/groups/:group_path/Users/`. +GitLab provides an [SCIM API](scim.md) that both implements +[the RFC7644 protocol](https://tools.ietf.org/html/rfc7644) and provides the +`/Users` endpoint. The base URL is `/api/scim/v2/groups/:group_path/Users/`. ## Road to GraphQL @@ -186,9 +186,9 @@ curl --header "Authorization: Bearer <your_access_token>" "https://gitlab.exampl ### Session cookie -When signing in to the main GitLab application, a `_gitlab_session` cookie is -set. The API uses this cookie for authentication if it's present. Using the -API to generate a new session cookie isn't supported. +Signing in to the main GitLab application sets a `_gitlab_session` cookie. The +API uses this cookie for authentication if it's present. Using the API to +generate a new session cookie isn't supported. The primary user of this authentication method is the web frontend of GitLab itself, which can, for example, use the API as the authenticated user to get a @@ -203,8 +203,7 @@ to authenticate with the API: - [Composer Repository](../user/packages/composer_repository/index.md) - [Conan Repository](../user/packages/conan_repository/index.md) - [Container Registry](../user/packages/container_registry/index.md) - (`$CI_REGISTRY_PASSWORD` is actually `$CI_JOB_TOKEN`, but this may change in - the future) + (`$CI_REGISTRY_PASSWORD` is `$CI_JOB_TOKEN`) - [Go Proxy](../user/packages/go_proxy/index.md) - [Maven Repository](../user/packages/maven_repository/index.md#authenticate-with-a-ci-job-token-in-maven) - [NPM Repository](../user/packages/npm_registry/index.md#authenticate-with-a-ci-job-token) @@ -221,12 +220,12 @@ The token is valid as long as the job is running. ### Impersonation tokens Impersonation tokens are a type of [personal access token](../user/profile/personal_access_tokens.md) -that can only be created by an administrator for a specific user. They are a great fit -if you want to build applications or scripts that authenticate with the API as a -specific user. +that can be created only by an administrator for a specific user. They can be +useful if you want to build applications or scripts that authenticate with the +API as a specific user. -They're an alternative to directly using the user's password or one of their -personal access tokens, and to using the [Sudo](#sudo) feature, as the user's +They're an alternative to directly using the user's password (or one of their +personal access tokens), and to using the [Sudo](#sudo) feature, as the user's (or administrator's in the case of Sudo) password or token may not be known, or may change over time. @@ -245,13 +244,13 @@ By default, impersonation is enabled. To disable impersonation: **For Omnibus installations** -1. Edit `/etc/gitlab/gitlab.rb`: +1. Edit the `/etc/gitlab/gitlab.rb` file: ```ruby gitlab_rails['impersonation_enabled'] = false ``` -1. Save the file and [reconfigure](../administration/restart_gitlab.md#omnibus-gitlab-reconfigure) +1. Save the file, and then [reconfigure](../administration/restart_gitlab.md#omnibus-gitlab-reconfigure) GitLab for the changes to take effect. To re-enable impersonation, remove this configuration, and then reconfigure @@ -259,14 +258,14 @@ GitLab. **For installations from source** -1. Edit `config/gitlab.yml`: +1. Edit the `config/gitlab.yml` file: ```yaml gitlab: impersonation_enabled: false ``` -1. Save the file and [restart](../administration/restart_gitlab.md#installations-from-source) +1. Save the file, and then [restart](../administration/restart_gitlab.md#installations-from-source) GitLab for the changes to take effect. To re-enable impersonation, remove this configuration, and then restart GitLab. @@ -353,41 +352,41 @@ The following table shows the possible return codes for API requests. | Return values | Description | |--------------------------|-------------| -| `200 OK` | The `GET`, `PUT` or `DELETE` request was successful, the resource(s) itself is returned as JSON. | -| `204 No Content` | The server has successfully fulfilled the request and that there is no additional content to send in the response payload body. | -| `201 Created` | The `POST` request was successful and the resource is returned as JSON. | -| `304 Not Modified` | Indicates that the resource has not been modified since the last request. | +| `200 OK` | The `GET`, `PUT` or `DELETE` request was successful, and the resource(s) itself is returned as JSON. | +| `204 No Content` | The server has successfully fulfilled the request, and there is no additional content to send in the response payload body. | +| `201 Created` | The `POST` request was successful, and the resource is returned as JSON. | +| `304 Not Modified` | The resource hasn't been modified since the last request. | | `400 Bad Request` | A required attribute of the API request is missing. For example, the title of an issue is not given. | -| `401 Unauthorized` | The user is not authenticated, a valid [user token](#authentication) is necessary. | -| `403 Forbidden` | The request is not allowed. For example, the user is not allowed to delete a project. | -| `404 Not Found` | A resource could not be accessed. For example, an ID for a resource could not be found. | -| `405 Method Not Allowed` | The request is not supported. | +| `401 Unauthorized` | The user isn't authenticated. A valid [user token](#authentication) is necessary. | +| `403 Forbidden` | The request isn't allowed. For example, the user isn't allowed to delete a project. | +| `404 Not Found` | A resource couldn't be accessed. For example, an ID for a resource couldn't be found. | +| `405 Method Not Allowed` | The request isn't supported. | | `409 Conflict` | A conflicting resource already exists. For example, creating a project with a name that already exists. | -| `412` | Indicates the request was denied. May happen if the `If-Unmodified-Since` header is provided when trying to delete a resource, which was modified in between. | -| `422 Unprocessable` | The entity could not be processed. | +| `412` | The request was denied. This can happen if the `If-Unmodified-Since` header is provided when trying to delete a resource, which was modified in between. | +| `422 Unprocessable` | The entity couldn't be processed. | | `429 Too Many Requests` | The user exceeded the [application rate limits](../administration/instance_limits.md#rate-limits). | -| `500 Server Error` | While handling the request, something went wrong server-side. | +| `500 Server Error` | While handling the request, something went wrong on the server. | ## Pagination GitLab supports the following pagination methods: -- Offset-based pagination. This is the default method and available on all endpoints. +- Offset-based pagination. This is the default method and is available on all endpoints. - Keyset-based pagination. Added to selected endpoints but being [progressively rolled out](https://gitlab.com/groups/gitlab-org/-/epics/2039). -For large collections, we recommend keyset pagination (when available) instead -of offset pagination for performance reasons. +For large collections, for performance reasons we recommend keyset pagination +(when available) instead of offset pagination. ### Offset-based pagination Sometimes, the returned result spans many pages. When listing resources, you can pass the following parameters: -| Parameter | Description | -|-----------|-------------| -| `page` | Page number (default: `1`). | -| `per_page`| Number of items to list per page (default: `20`, max: `100`). | +| Parameter | Description | +|------------|-------------| +| `page` | Page number (default: `1`). | +| `per_page` | Number of items to list per page (default: `20`, max: `100`). | In the following example, we list 50 [namespaces](namespaces.md) per page: @@ -485,10 +484,10 @@ header was [added in GitLab 13.1](https://gitlab.com/gitlab-org/gitlab/-/merge_r and should be used instead. The link to the next page contains an additional filter `id_after=42` that -excludes already-retrieved records. Note the type of filter depends on the +excludes already-retrieved records. The type of filter depends on the `order_by` option used, and we may have more than one additional filter. -When the end of the collection has been reached and there are no additional +When the end of the collection is reached and there are no additional records to retrieve, the `Link` header is absent and the resulting array is empty. diff --git a/doc/api/api_resources.md b/doc/api/api_resources.md index c6fd5b7c45c..029e434749f 100644 --- a/doc/api/api_resources.md +++ b/doc/api/api_resources.md @@ -158,6 +158,7 @@ The following API resources are available outside of project and group contexts | [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` | +| [Snippet repository storage moves](snippet_repository_storage_moves.md) **(CORE ONLY)** | `/snippet_repository_storage_moves` | | [Statistics](statistics.md) | `/application/statistics` | | [Sidekiq metrics](sidekiq_metrics.md) **(CORE ONLY)** | `/sidekiq` | | [Suggestions](suggestions.md) | `/suggestions` | diff --git a/doc/api/appearance.md b/doc/api/appearance.md index b33e41cf271..d03fc94cfcf 100644 --- a/doc/api/appearance.md +++ b/doc/api/appearance.md @@ -60,8 +60,8 @@ PUT /application/appearance | `favicon` | mixed | no | Instance favicon in `.ico` or `.png` format | `new_project_guidelines` | string | no | Markdown text shown on the new project page | `profile_image_guidelines` | string | no | Markdown text shown on the profile page below Public Avatar -| `header_message` | string | no | Message within the system header bar -| `footer_message` | string | no | Message within the system footer bar +| `header_message` | string | no | Message in the system header bar +| `footer_message` | string | no | Message in the system footer bar | `message_background_color` | string | no | Background color for the system header / footer bar | `message_font_color` | string | no | Font color for the system header / footer bar | `email_header_and_footer_enabled` | boolean | no | Add header and footer to all outgoing emails if enabled diff --git a/doc/api/audit_events.md b/doc/api/audit_events.md index 282c4ccfeea..5017c8defaf 100644 --- a/doc/api/audit_events.md +++ b/doc/api/audit_events.md @@ -1,6 +1,6 @@ --- -stage: none -group: unassigned +stage: Manage +group: Compliance 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/#assignments --- diff --git a/doc/api/avatar.md b/doc/api/avatar.md index 31f254c7986..ccaa50eedd8 100644 --- a/doc/api/avatar.md +++ b/doc/api/avatar.md @@ -30,7 +30,7 @@ Parameters: | Attribute | Type | Required | Description | |:----------|:--------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------| | `email` | string | yes | Public email address of the user. | -| `size` | integer | no | Single pixel dimension (since images are squares). Only used for avatar lookups at `Gravatar` or at the configured `Libravatar` server. | +| `size` | integer | no | Single pixel dimension (because images are squares). Only used for avatar lookups at `Gravatar` or at the configured `Libravatar` server. | Example request: diff --git a/doc/api/boards.md b/doc/api/boards.md index aff82daa1bf..e86f0d846ed 100644 --- a/doc/api/boards.md +++ b/doc/api/boards.md @@ -426,7 +426,7 @@ POST /projects/:id/boards/:board_id/lists 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) +Check the [Issue Board documentation](../user/project/issue_board.md) for more information regarding the required license for each list type. ```shell diff --git a/doc/api/container_registry.md b/doc/api/container_registry.md index 5f3dbcb1ab0..f29f8aaf6e9 100644 --- a/doc/api/container_registry.md +++ b/doc/api/container_registry.md @@ -8,7 +8,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/55978) in GitLab 11.8. -This is the API docs of the [GitLab Container Registry](../user/packages/container_registry/index.md). +This is the API documentation of the [GitLab Container Registry](../user/packages/container_registry/index.md). ## List registry repositories @@ -313,6 +313,13 @@ You can run this at most once an hour for a given container repository. This action doesn't delete blobs. To delete them and recycle disk space, [run the garbage collection](https://docs.gitlab.com/omnibus/maintenance/README.html#removing-unused-layers-not-referenced-by-manifests). +WARNING: +The number of tags deleted by this API is limited on GitLab.com +because of the scale of the Container Registry there. +If your Container Registry has a large number of tags to delete, +only some of them will be deleted, and you might need to call this API multiple times. +To schedule tags for automatic deletion, use a [cleanup policy](../user/packages/container_registry/index.md#cleanup-policy) instead. + NOTE: In GitLab 12.4 and later, individual tags are deleted. For more details, see the [discussion](https://gitlab.com/gitlab-org/gitlab/-/issues/15737). diff --git a/doc/api/deploy_keys.md b/doc/api/deploy_keys.md index 293f7218527..91046717c1d 100644 --- a/doc/api/deploy_keys.md +++ b/doc/api/deploy_keys.md @@ -109,8 +109,8 @@ Example response: Creates a new deploy key for a project. -If the deploy key already exists in another project, it will be joined to current -project only if original one is accessible by the same user. +If the deploy key already exists in another project, it's joined to the current +project only if the original one is accessible by the same user. ```plaintext POST /projects/:id/deploy_keys @@ -171,7 +171,7 @@ Example response: ## Delete deploy key -Removes a deploy key from the project. If the deploy key is used only for this project, it will be deleted from the system. +Removes a deploy key from the project. If the deploy key is used only for this project, it's deleted from the system. ```plaintext DELETE /projects/:id/deploy_keys/:key_id diff --git a/doc/api/deployments.md b/doc/api/deployments.md index 4a937cd1818..b8865ecc614 100644 --- a/doc/api/deployments.md +++ b/doc/api/deployments.md @@ -379,7 +379,7 @@ This API retrieves the list of merge requests shipped with a given deployment: GET /projects/:id/deployments/:deployment_id/merge_requests ``` -It supports the same parameters as the [Merge Requests API](merge_requests.md#list-merge-requests) and will return a response using the same format: +It supports the same parameters as the [Merge Requests API](merge_requests.md#list-merge-requests) and returns a response using the same format: ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/deployments/42" diff --git a/doc/api/discussions.md b/doc/api/discussions.md index 51ca2bea3ae..a7a53987fe9 100644 --- a/doc/api/discussions.md +++ b/doc/api/discussions.md @@ -687,7 +687,8 @@ GET /projects/:id/merge_requests/:merge_request_iid/discussions "noteable_iid": null, "resolved": false, "resolvable": true, - "resolved_by": null + "resolved_by": null, + "resolved_at": null }, { "id": 1129, diff --git a/doc/api/epic_links.md b/doc/api/epic_links.md index 319d1a1ee9b..cabab18ed71 100644 --- a/doc/api/epic_links.md +++ b/doc/api/epic_links.md @@ -76,7 +76,7 @@ Example response: Creates an association between two epics, designating one as the parent epic and the other as the child epic. A parent epic can have multiple child epics. If the new child epic already belonged to another epic, it is unassigned from that previous parent. ```plaintext -POST /groups/:id/epics/:epic_iid/epics +POST /groups/:id/epics/:epic_iid/epics/:child_epic_id ``` | Attribute | Type | Required | Description | diff --git a/doc/api/epics.md b/doc/api/epics.md index dc582808578..d501d61bfb8 100644 --- a/doc/api/epics.md +++ b/doc/api/epics.md @@ -11,9 +11,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w Every API call to epic 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 private group, a `GET` request on that group results in a `404` status code. -If epics feature is not available a `403` status code will be returned. +If epics feature is not available a `403` status code is returned. ## Epic issues API @@ -23,9 +23,10 @@ The [epic issues API](epic_issues.md) allows you to interact with issues associa > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6448) in GitLab 11.3. -Since start date and due date can be dynamically sourced from related issue milestones, when user has edit permission, -additional fields will be shown. These include two boolean fields `start_date_is_fixed` and `due_date_is_fixed`, -and four date fields `start_date_fixed`, `start_date_from_inherited_source`, `due_date_fixed` and `due_date_from_inherited_source`. +Because start date and due date can be dynamically sourced from related issue milestones, +additional fields are shown when user has edit permission. These include two boolean +fields `start_date_is_fixed` and `due_date_is_fixed`, and four date fields `start_date_fixed`, +`start_date_from_inherited_source`, `due_date_fixed` and `due_date_from_inherited_source`. - `end_date` has been deprecated in favor of `due_date`. - `start_date_from_milestones` has been deprecated in favor of `start_date_from_inherited_source` @@ -40,7 +41,7 @@ Read more on [pagination](README.md#pagination). WARNING: > `reference` attribute in response is deprecated in favour of `references`. -> Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) +> Introduced in [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) NOTE: > `references.relative` is relative to the group that the epic is being requested. When epic is fetched from its origin group @@ -62,7 +63,7 @@ GET /groups/:id/epics?state=opened | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user | | `author_id` | integer | no | Return epics created by the given user `id` | | `labels` | string | no | Return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used | -| `with_labels_details` | boolean | no | If `true`, response will return more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413)| +| `with_labels_details` | boolean | no | If `true`, response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Available in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) and later | | `order_by` | string | no | Return epics ordered by `created_at` or `updated_at` fields. Default is `created_at` | | `sort` | string | no | Return epics sorted in `asc` or `desc` order. Default is `desc` | | `search` | string | no | Search epics against their `title` and `description` | @@ -73,7 +74,7 @@ GET /groups/:id/epics?state=opened | `updated_before` | datetime | no | Return epics updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `include_ancestor_groups` | boolean | no | Include epics from the requested group's ancestors. Default is `false` | | `include_descendant_groups` | boolean | no | Include epics from the requested group's descendants. Default is `true` | -| `my_reaction_emoji` | string | no | Return epics reacted by the authenticated user by the given emoji. `None` returns epics not given a reaction. `Any` returns epics given at least one reaction. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31479)| +| `my_reaction_emoji` | string | no | Return epics reacted by the authenticated user by the given emoji. `None` returns epics not given a reaction. `Any` returns epics given at least one reaction. Available in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31479) and later | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics" @@ -267,12 +268,12 @@ POST /groups/:id/epics | `labels` | string | no | The comma separated list of labels | | `description` | string | no | The description of the epic. Limited to 1,048,576 characters. | | `confidential` | boolean | no | Whether the epic should be confidential | -| `created_at` | string | no | When the epic was created. Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` . Requires administrator or project/group owner privileges ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/255309) in GitLab 13.5) | -| `start_date_is_fixed` | boolean | no | Whether start date should be sourced from `start_date_fixed` or from milestones (since 11.3) | -| `start_date_fixed` | string | no | The fixed start date of an epic (since 11.3) | -| `due_date_is_fixed` | boolean | no | Whether due date should be sourced from `due_date_fixed` or from milestones (since 11.3) | -| `due_date_fixed` | string | no | The fixed due date of an epic (since 11.3) | -| `parent_id` | integer/string | no | The ID of a parent epic (since 11.11) | +| `created_at` | string | no | When the epic was created. Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` . Requires administrator or project/group owner privileges ([available](https://gitlab.com/gitlab-org/gitlab/-/issues/255309) in GitLab 13.5 and later) | +| `start_date_is_fixed` | boolean | no | Whether start date should be sourced from `start_date_fixed` or from milestones (in GitLab 11.3 and later) | +| `start_date_fixed` | string | no | The fixed start date of an epic (in GitLab 11.3 and later) | +| `due_date_is_fixed` | boolean | no | Whether due date should be sourced from `due_date_fixed` or from milestones (in GitLab 11.3 and later) | +| `due_date_fixed` | string | no | The fixed due date of an epic (in GitLab 11.3 and later) | +| `parent_id` | integer/string | no | The ID of a parent epic (in GitLab 11.11 and later) | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics?title=Epic&description=Epic%20description" @@ -352,12 +353,12 @@ PUT /groups/:id/epics/:epic_iid | `labels` | string | no | Comma-separated label names for an issue. Set to an empty string to unassign all labels. | | `add_labels` | string | no | Comma-separated label names to add to an issue. | | `remove_labels` | string | no | Comma-separated label names to remove from an issue. | -| `updated_at` | string | no | When the epic was updated. Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` . Requires administrator or project/group owner privileges ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/255309) in GitLab 13.5) | -| `start_date_is_fixed` | boolean | no | Whether start date should be sourced from `start_date_fixed` or from milestones (since 11.3) | -| `start_date_fixed` | string | no | The fixed start date of an epic (since 11.3) | -| `due_date_is_fixed` | boolean | no | Whether due date should be sourced from `due_date_fixed` or from milestones (since 11.3) | -| `due_date_fixed` | string | no | The fixed due date of an epic (since 11.3) | -| `state_event` | string | no | State event for an epic. Set `close` to close the epic and `reopen` to reopen it (since 11.4) | +| `updated_at` | string | no | When the epic was updated. Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` . Requires administrator or project/group owner privileges ([available](https://gitlab.com/gitlab-org/gitlab/-/issues/255309) in GitLab 13.5 and later) | +| `start_date_is_fixed` | boolean | no | Whether start date should be sourced from `start_date_fixed` or from milestones (in GitLab 11.3 and later) | +| `start_date_fixed` | string | no | The fixed start date of an epic (in GitLab 11.3 and later) | +| `due_date_is_fixed` | boolean | no | Whether due date should be sourced from `due_date_fixed` or from milestones (in GitLab 11.3 and later) | +| `due_date_fixed` | string | no | The fixed due date of an epic (in GitLab 11.3 and later) | +| `state_event` | string | no | State event for an epic. Set `close` to close the epic and `reopen` to reopen it (in GitLab 11.4 and later) | ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5?title=New%20Title" diff --git a/doc/api/features.md b/doc/api/features.md index 0582a4b9432..0ed0dec1b6d 100644 --- a/doc/api/features.md +++ b/doc/api/features.md @@ -111,8 +111,8 @@ Example response: ## Set or create a feature -Set a feature's gate value. If a feature with the given name doesn't exist yet -it will be created. The value can be a boolean, or an integer to indicate +Set a feature's gate value. If a feature with the given name doesn't exist yet, +it's created. The value can be a boolean, or an integer to indicate percentage of time. ```plaintext diff --git a/doc/api/graphql/img/users_query_example_v13_8.png b/doc/api/graphql/img/users_query_example_v13_8.png Binary files differnew file mode 100644 index 00000000000..b4c2b4e999a --- /dev/null +++ b/doc/api/graphql/img/users_query_example_v13_8.png diff --git a/doc/api/graphql/index.md b/doc/api/graphql/index.md index 681130e82c1..45a327d323b 100644 --- a/doc/api/graphql/index.md +++ b/doc/api/graphql/index.md @@ -82,6 +82,10 @@ The process is as follows: release post (at or prior to X.11 and X.5 releases). 1. Fields meeting criteria are removed in X.0 or X.6. +NOTE: +Fields behind a feature flag and disabled by default are exempt from the deprecation process, +and can be removed at any time without notice. + ### List of removed items View the [fields, enums, and other items we removed](removed_items.md) from the GraphQL API. diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql index 8218d792fe8..94792a49933 100644 --- a/doc/api/graphql/reference/gitlab_schema.graphql +++ b/doc/api/graphql/reference/gitlab_schema.graphql @@ -30,7 +30,7 @@ Autogenerated input type of AddAwardEmoji """ input AddAwardEmojiInput { """ - The global ID of the awardable resource + The global ID of the awardable resource. """ awardableId: AwardableID! @@ -50,7 +50,7 @@ Autogenerated return type of AddAwardEmoji """ type AddAwardEmojiPayload { """ - The award emoji after mutation + The award emoji after mutation. """ awardEmoji: AwardEmoji @@ -75,7 +75,7 @@ input AddProjectToSecurityDashboardInput { clientMutationId: String """ - ID of the project to be added to Instance Security Dashboard + ID of the project to be added to Instance Security Dashboard. """ id: ProjectID! } @@ -95,7 +95,7 @@ type AddProjectToSecurityDashboardPayload { errors: [String!]! """ - Project that was added to the Instance Security Dashboard + Project that was added to the Instance Security Dashboard. """ project: Project } @@ -125,7 +125,7 @@ input AdminSidekiqQueuesDeleteJobsInput { project: String """ - The name of the queue to delete jobs from + The name of the queue to delete jobs from. """ queueName: String! @@ -135,6 +135,11 @@ input AdminSidekiqQueuesDeleteJobsInput { relatedClass: String """ + Delete jobs matching remote_ip in the context metadata + """ + remoteIp: String + + """ Delete jobs matching root_namespace in the context metadata """ rootNamespace: String @@ -165,7 +170,7 @@ type AdminSidekiqQueuesDeleteJobsPayload { errors: [String!]! """ - Information about the status of the deletion request + Information about the status of the deletion request. """ result: DeleteJobsResponse } @@ -349,7 +354,7 @@ type AlertManagementAlert implements Noteable { """ todos( """ - The action to be filtered + The action to be filtered. """ action: [TodoActionEnum!] @@ -359,7 +364,7 @@ type AlertManagementAlert implements Noteable { after: String """ - The ID of an author + The ID of an author. """ authorId: [ID!] @@ -374,7 +379,7 @@ type AlertManagementAlert implements Noteable { first: Int """ - The ID of a group + The ID of a group. """ groupId: [ID!] @@ -384,17 +389,17 @@ type AlertManagementAlert implements Noteable { last: Int """ - The ID of a project + The ID of a project. """ projectId: [ID!] """ - The state of the todo + The state of the todo. """ state: [TodoStateEnum!] """ - The type of the todo + The type of the todo. """ type: [TodoTargetEnum!] ): TodoConnection @@ -595,7 +600,7 @@ Filters the alerts based on given domain """ enum AlertManagementDomainFilter { """ - Alerts for operations domain + Alerts for operations domain """ operations @@ -738,6 +743,106 @@ enum AlertManagementIntegrationType { } """ +Field that are available while modifying the custom mapping attributes for an HTTP integration +""" +input AlertManagementPayloadAlertFieldInput { + """ + A GitLab alert field name. + """ + fieldName: AlertManagementPayloadAlertFieldName! + + """ + Human-readable label of the payload path. + """ + label: String + + """ + Path to value inside payload JSON. + """ + path: [String!]! + + """ + Type of the parsed value. + """ + type: AlertManagementPayloadAlertFieldType! +} + +""" +Values for alert field names used in the custom mapping +""" +enum AlertManagementPayloadAlertFieldName { + """ + A high-level summary of the problem. + """ + DESCRIPTION + + """ + The resolved time of the incident. + """ + END_TIME + + """ + The unique identifier of the alert. This can be used to group occurrences of the same alert. + """ + FINGERPRINT + + """ + The name of the associated GitLab environment. + """ + GITLAB_ENVIRONMENT_NAME + + """ + One or more hosts, as to where this incident occurred. + """ + HOSTS + + """ + The name of the associated monitoring tool. + """ + MONITORING_TOOL + + """ + The affected service. + """ + SERVICE + + """ + The severity of the alert. + """ + SEVERITY + + """ + The time of the incident. + """ + START_TIME + + """ + The title of the incident. + """ + TITLE +} + +""" +Values for alert field types used in the custom mapping +""" +enum AlertManagementPayloadAlertFieldType { + """ + Array field type + """ + ARRAY + + """ + DateTime field type + """ + DATETIME + + """ + String field type + """ + STRING +} + +""" An endpoint and credentials used to accept Prometheus alerts for a project """ type AlertManagementPrometheusIntegration implements AlertManagementIntegration { @@ -852,7 +957,7 @@ input AlertSetAssigneesInput { clientMutationId: String """ - The IID of the alert to mutate + The IID of the alert to mutate. """ iid: String! @@ -862,7 +967,7 @@ input AlertSetAssigneesInput { operationMode: MutationOperationMode """ - The project the alert to mutate is in + The project the alert to mutate is in. """ projectPath: ID! } @@ -872,7 +977,7 @@ Autogenerated return type of AlertSetAssignees """ type AlertSetAssigneesPayload { """ - The alert after mutation + The alert after mutation. """ alert: AlertManagementAlert @@ -887,12 +992,12 @@ type AlertSetAssigneesPayload { errors: [String!]! """ - The issue created after mutation + The issue created after mutation. """ issue: Issue """ - The todo after mutation + The todo after mutation. """ todo: Todo } @@ -907,12 +1012,12 @@ input AlertTodoCreateInput { clientMutationId: String """ - The IID of the alert to mutate + The IID of the alert to mutate. """ iid: String! """ - The project the alert to mutate is in + The project the alert to mutate is in. """ projectPath: ID! } @@ -922,7 +1027,7 @@ Autogenerated return type of AlertTodoCreate """ type AlertTodoCreatePayload { """ - The alert after mutation + The alert after mutation. """ alert: AlertManagementAlert @@ -937,12 +1042,12 @@ type AlertTodoCreatePayload { errors: [String!]! """ - The issue created after mutation + The issue created after mutation. """ issue: Issue """ - The todo after mutation + The todo after mutation. """ todo: Todo } @@ -1007,7 +1112,7 @@ Autogenerated input type of AwardEmojiAdd """ input AwardEmojiAddInput { """ - The global ID of the awardable resource + The global ID of the awardable resource. """ awardableId: AwardableID! @@ -1027,7 +1132,7 @@ Autogenerated return type of AwardEmojiAdd """ type AwardEmojiAddPayload { """ - The award emoji after mutation + The award emoji after mutation. """ awardEmoji: AwardEmoji @@ -1047,7 +1152,7 @@ Autogenerated input type of AwardEmojiRemove """ input AwardEmojiRemoveInput { """ - The global ID of the awardable resource + The global ID of the awardable resource. """ awardableId: AwardableID! @@ -1067,7 +1172,7 @@ Autogenerated return type of AwardEmojiRemove """ type AwardEmojiRemovePayload { """ - The award emoji after mutation + The award emoji after mutation. """ awardEmoji: AwardEmoji @@ -1087,7 +1192,7 @@ Autogenerated input type of AwardEmojiToggle """ input AwardEmojiToggleInput { """ - The global ID of the awardable resource + The global ID of the awardable resource. """ awardableId: AwardableID! @@ -1107,7 +1212,7 @@ Autogenerated return type of AwardEmojiToggle """ type AwardEmojiTogglePayload { """ - The award emoji after mutation + The award emoji after mutation. """ awardEmoji: AwardEmoji @@ -1275,7 +1380,7 @@ type Board { first: Int """ - Filters applied when selecting issues on the board + Filters applied when selecting issues on the board. """ issueFilters: BoardIssueInput @@ -1350,12 +1455,12 @@ type Board { first: Int """ - Find a list by its global ID + Find a list by its global ID. """ id: ListID """ - Filters applied when getting issue metadata in the board list + Filters applied when getting issue metadata in the board list. """ issueFilters: BoardIssueInput @@ -1376,6 +1481,16 @@ type Board { name: String """ + Web path of the board. + """ + webPath: String! + + """ + Web URL of the board. + """ + webUrl: String! + + """ Weight of the board """ weight: Int @@ -1435,7 +1550,7 @@ type BoardEpic implements CurrentUserTodos & Noteable { after: String """ - Filter epics by author + Filter epics by author. """ authorUsername: String @@ -1445,6 +1560,11 @@ type BoardEpic implements CurrentUserTodos & Noteable { before: String """ + Filter epics by given confidentiality. + """ + confidential: Boolean + + """ List items overlapping a time frame defined by startDate..endDate (if one date is provided, both must be present) Deprecated in 13.5: Use timeframe.end. """ @@ -1456,27 +1576,27 @@ type BoardEpic implements CurrentUserTodos & Noteable { first: Int """ - IID of the epic, e.g., "1" + IID of the epic, e.g., "1". """ iid: ID """ - Filter epics by IID for autocomplete + Filter epics by IID for autocomplete. """ iidStartsWith: String """ - List of IIDs of epics, e.g., [1, 2] + List of IIDs of epics, e.g., [1, 2]. """ iids: [ID!] """ - Include epics from descendant groups + Include epics from descendant groups. """ includeDescendantGroups: Boolean = true """ - Filter epics by labels + Filter epics by labels. """ labelName: [String!] @@ -1486,17 +1606,17 @@ type BoardEpic implements CurrentUserTodos & Noteable { last: Int """ - Filter epics by milestone title, computed from epic's issues + Filter epics by milestone title, computed from epic's issues. """ milestoneTitle: String """ - Search query for epic title or description + Search query for epic title or description. """ search: String """ - List epics by sort order + List epics by sort order. """ sort: EpicSort @@ -1508,12 +1628,12 @@ type BoardEpic implements CurrentUserTodos & Noteable { startDate: Time """ - Filter epics by state + Filter epics by state. """ state: EpicState """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe ): EpicConnection @@ -2015,7 +2135,7 @@ type BoardList { before: String """ - Filters applied when selecting issues in the board list + Filters applied when selecting issues in the board list. """ filters: BoardIssueInput @@ -2036,6 +2156,11 @@ type BoardList { issuesCount: Int """ + Iteration of the list + """ + iteration: Iteration + + """ Label of the list """ label: Label @@ -2106,17 +2231,17 @@ Autogenerated input type of BoardListCreate """ input BoardListCreateInput { """ - Global ID of an existing user + Global ID of an existing user. """ assigneeId: UserID """ - Create the backlog list + Create the backlog list. """ backlog: Boolean """ - Global ID of the issue board to mutate + Global ID of the issue board to mutate. """ boardId: BoardID! @@ -2126,17 +2251,17 @@ input BoardListCreateInput { clientMutationId: String """ - Global ID of an existing iteration + Global ID of an existing iteration. """ iterationId: IterationID """ - Global ID of an existing label + Global ID of an existing label. """ labelId: LabelID """ - Global ID of an existing milestone + Global ID of an existing milestone. """ milestoneId: MilestoneID } @@ -2156,7 +2281,7 @@ type BoardListCreatePayload { errors: [String!]! """ - List of the issue board + List of the issue board. """ list: BoardList } @@ -2221,7 +2346,7 @@ type BoardListUpdateLimitMetricsPayload { errors: [String!]! """ - The updated list + The updated list. """ list: BoardList } @@ -2231,6 +2356,11 @@ Identifier of Boards::EpicBoard """ scalar BoardsEpicBoardID +""" +Identifier of Boards::EpicList +""" +scalar BoardsEpicListID + type Branch { """ Commit for the branch @@ -2273,6 +2403,83 @@ type BurnupChartDailyTotals { scopeWeight: Int! } +type CiBuildNeed { + """ + Name of the job we need to complete. + """ + name: String +} + +""" +The connection type for CiBuildNeed. +""" +type CiBuildNeedConnection { + """ + A list of edges. + """ + edges: [CiBuildNeedEdge] + + """ + A list of nodes. + """ + nodes: [CiBuildNeed] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type CiBuildNeedEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CiBuildNeed +} + +""" +Autogenerated input type of CiCdSettingsUpdate +""" +input CiCdSettingsUpdateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Full Path of the project the settings belong to. + """ + fullPath: ID! + + """ + Indicates if the latest artifact should be kept for this project. + """ + keepLatestArtifact: Boolean +} + +""" +Autogenerated return type of CiCdSettingsUpdate +""" +type CiCdSettingsUpdatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + type CiConfig { """ Linting errors @@ -2287,7 +2494,27 @@ type CiConfig { """ Stages of the pipeline """ - stages: [CiConfigStage!] + stages( + """ + 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 + ): CiConfigStageConnection """ Status of linting, can be either valid or invalid @@ -2299,7 +2526,27 @@ type CiConfigGroup { """ Jobs in group """ - jobs: [CiConfigJob!] + jobs( + """ + 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 + ): CiConfigJobConnection """ Name of the job group @@ -2312,26 +2559,168 @@ type CiConfigGroup { size: Int } +""" +The connection type for CiConfigGroup. +""" +type CiConfigGroupConnection { + """ + A list of edges. + """ + edges: [CiConfigGroupEdge] + + """ + A list of nodes. + """ + nodes: [CiConfigGroup] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type CiConfigGroupEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CiConfigGroup +} + type CiConfigJob { """ - Name of the job group + Override a set of commands that are executed after the job. + """ + afterScript: [String!] + + """ + Allow job to fail. + """ + allowFailure: Boolean + + """ + Override a set of commands that are executed before the job. + """ + beforeScript: [String!] + + """ + Name of an environment to which the job deploys. + """ + environment: String + + """ + Limit when jobs are not created. + """ + except: CiConfigJobRestriction + + """ + Name of the job group. """ groupName: String """ - Name of the job + Name of the job. """ name: String """ - Builds that must complete before the jobs run + Builds that must complete before the jobs run. + """ + needs( + """ + 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 + ): CiConfigNeedConnection + + """ + Jobs are created when these conditions do not apply. """ - needs: [CiConfigNeed!] + only: CiConfigJobRestriction """ - Name of the job stage + Shell script that is executed by a runner. + """ + script: [String!] + + """ + Name of the job stage. """ stage: String + + """ + List of tags that are used to select a runner. + """ + tags: [String!] + + """ + When to run the job. + """ + when: String +} + +""" +The connection type for CiConfigJob. +""" +type CiConfigJobConnection { + """ + A list of edges. + """ + edges: [CiConfigJobEdge] + + """ + A list of nodes. + """ + nodes: [CiConfigJob] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type CiConfigJobEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CiConfigJob +} + +type CiConfigJobRestriction { + """ + The Git refs the job restriction applies to. + """ + refs: [String!] } type CiConfigNeed { @@ -2341,11 +2730,66 @@ type CiConfigNeed { name: String } +""" +The connection type for CiConfigNeed. +""" +type CiConfigNeedConnection { + """ + A list of edges. + """ + edges: [CiConfigNeedEdge] + + """ + A list of nodes. + """ + nodes: [CiConfigNeed] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type CiConfigNeedEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CiConfigNeed +} + type CiConfigStage { """ Groups of jobs for the stage """ - groups: [CiConfigGroup!] + groups( + """ + 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 + ): CiConfigGroupConnection """ Name of the stage @@ -2354,6 +2798,41 @@ type CiConfigStage { } """ +The connection type for CiConfigStage. +""" +type CiConfigStageConnection { + """ + A list of edges. + """ + edges: [CiConfigStageEdge] + + """ + A list of nodes. + """ + nodes: [CiConfigStage] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type CiConfigStageEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CiConfigStage +} + +""" Values for YAML processor result """ enum CiConfigStatus { @@ -2482,7 +2961,7 @@ type CiJob { name: String """ - Builds that must complete before the jobs run + References to builds that must complete before the jobs run """ needs( """ @@ -2504,7 +2983,7 @@ type CiJob { Returns the last _n_ elements from the list. """ last: Int - ): CiJobConnection + ): CiBuildNeedConnection """ Pipeline the job belongs to @@ -2763,7 +3242,7 @@ input ClusterAgentDeleteInput { clientMutationId: String """ - Global ID of the cluster agent that will be deleted + Global ID of the cluster agent that will be deleted. """ id: ClustersAgentID! } @@ -2850,7 +3329,7 @@ input ClusterAgentTokenCreateInput { clientMutationId: String """ - Global ID of the cluster agent that will be associated with the new token + Global ID of the cluster agent that will be associated with the new token. """ clusterAgentId: ClustersAgentID! } @@ -2870,12 +3349,12 @@ type ClusterAgentTokenCreatePayload { errors: [String!]! """ - Token secret value. Make sure you save it - you won't be able to access it again + Token secret value. Make sure you save it - you won't be able to access it again. """ secret: String """ - Token created after mutation + Token created after mutation. """ token: ClusterAgentToken } @@ -2890,7 +3369,7 @@ input ClusterAgentTokenDeleteInput { clientMutationId: String """ - Global ID of the cluster agent token that will be deleted + Global ID of the cluster agent token that will be deleted. """ id: ClustersAgentTokenID! } @@ -3086,17 +3565,17 @@ type Commit { last: Int """ - Filter pipelines by the ref they are run for + Filter pipelines by the ref they are run for. """ ref: String """ - Filter pipelines by the sha of the commit they are run for + Filter pipelines by the sha of the commit they are run for. """ sha: String """ - Filter pipelines by their status + Filter pipelines by their status. """ status: PipelineStatusEnum ): PipelineConnection @@ -3229,12 +3708,12 @@ Autogenerated input type of CommitCreate """ input CommitCreateInput { """ - Array of action hashes to commit as a batch + Array of action hashes to commit as a batch. """ actions: [CommitAction!]! """ - Name of the branch to commit into, it can be a new branch + Name of the branch to commit into, it can be a new branch. """ branch: String! @@ -3249,12 +3728,12 @@ input CommitCreateInput { message: String! """ - Project full path the branch is associated with + Project full path the branch is associated with. """ projectPath: ID! """ - If on a new branch, name of the original branch + If on a new branch, name of the original branch. """ startBranch: String } @@ -3269,7 +3748,7 @@ type CommitCreatePayload { clientMutationId: String """ - The commit after mutation + The commit after mutation. """ commit: Commit @@ -3366,6 +3845,23 @@ type ComplianceFrameworkEdge { node: ComplianceFramework } +input ComplianceFrameworkInput { + """ + New color representation of the compliance framework in hex format. e.g. #FCA121. + """ + color: String + + """ + New description for the compliance framework. + """ + description: String + + """ + New name for the compliance framework. + """ + name: String +} + """ Identifier of ComplianceManagement::Framework """ @@ -3381,12 +3877,12 @@ input ConfigureSastInput { clientMutationId: String """ - SAST CI configuration for the project + SAST CI configuration for the project. """ configuration: SastCiConfigurationInput! """ - Full path of the project + Full path of the project. """ projectPath: ID! } @@ -3406,12 +3902,12 @@ type ConfigureSastPayload { errors: [String!]! """ - Status of creating the commit for the supplied SAST CI configuration + Status of creating the commit for the supplied SAST CI configuration. """ status: String! """ - Redirect path to use when the response is successful + Redirect path to use when the response is successful. """ successPath: String } @@ -3877,12 +4373,12 @@ input CreateAlertIssueInput { clientMutationId: String """ - The IID of the alert to mutate + The IID of the alert to mutate. """ iid: String! """ - The project the alert to mutate is in + The project the alert to mutate is in. """ projectPath: ID! } @@ -3892,7 +4388,7 @@ Autogenerated return type of CreateAlertIssue """ type CreateAlertIssuePayload { """ - The alert after mutation + The alert after mutation. """ alert: AlertManagementAlert @@ -3907,12 +4403,12 @@ type CreateAlertIssuePayload { errors: [String!]! """ - The issue created after mutation + The issue created after mutation. """ issue: Issue """ - The todo after mutation + The todo after mutation. """ todo: Todo } @@ -3927,32 +4423,32 @@ input CreateAnnotationInput { clientMutationId: String """ - The global ID of the cluster to add an annotation to + The global ID of the cluster to add an annotation to. """ clusterId: ClustersClusterID """ - The path to a file defining the dashboard on which the annotation should be added + The path to a file defining the dashboard on which the annotation should be added. """ dashboardPath: String! """ - The description of the annotation + The description of the annotation. """ description: String! """ - Timestamp indicating ending moment to which the annotation relates + Timestamp indicating ending moment to which the annotation relates. """ endingAt: Time """ - The global ID of the environment to add an annotation to + The global ID of the environment to add an annotation to. """ environmentId: EnvironmentID """ - Timestamp indicating starting moment to which the annotation relates + Timestamp indicating starting moment to which the annotation relates. """ startingAt: Time! } @@ -3962,7 +4458,7 @@ Autogenerated return type of CreateAnnotation """ type CreateAnnotationPayload { """ - The created annotation + The created annotation. """ annotation: MetricsDashboardAnnotation @@ -3982,12 +4478,17 @@ Autogenerated input type of CreateBoard """ input CreateBoardInput { """ + The ID of user to be assigned to the board. + """ + assigneeId: UserID + + """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ - The group full path the resource is associated with + The group full path the resource is associated with. """ groupPath: ID @@ -4002,14 +4503,39 @@ input CreateBoardInput { hideClosedList: Boolean """ + The ID of iteration to be assigned to the board. + """ + iterationId: IterationID + + """ + The IDs of labels to be added to the board. + """ + labelIds: [LabelID!] + + """ + Labels of the issue + """ + labels: [String!] + + """ + The ID of milestone to be assigned to the board. + """ + milestoneId: MilestoneID + + """ The board name. """ name: String """ - The project full path the resource is associated with + The project full path the resource is associated with. """ projectPath: ID + + """ + The weight value to be assigned to the board. + """ + weight: Int } """ @@ -4042,17 +4568,17 @@ input CreateBranchInput { clientMutationId: String """ - Name of the branch + Name of the branch. """ name: String! """ - Project full path the branch is associated with + Project full path the branch is associated with. """ projectPath: ID! """ - Branch name or commit SHA to create branch from + Branch name or commit SHA to create branch from. """ ref: String! } @@ -4062,7 +4588,7 @@ Autogenerated return type of CreateBranch """ type CreateBranchPayload { """ - Branch after mutation + Branch after mutation. """ branch: Branch @@ -4087,12 +4613,12 @@ input CreateClusterAgentInput { clientMutationId: String """ - Name of the cluster agent + Name of the cluster agent. """ name: String! """ - Full path of the associated project for this cluster agent + Full path of the associated project for this cluster agent. """ projectPath: ID! } @@ -4107,7 +4633,7 @@ type CreateClusterAgentPayload { clientMutationId: String """ - Cluster agent created after mutation + Cluster agent created after mutation. """ clusterAgent: ClusterAgent @@ -4127,24 +4653,14 @@ input CreateComplianceFrameworkInput { clientMutationId: String """ - Color to represent the compliance framework as a hexadecimal value. e.g. #ABC123. - """ - color: String! - - """ - Description of the compliance framework. - """ - description: String! - - """ - Name of the compliance framework. + Full path of the namespace to add the compliance framework to. """ - name: String! + namespacePath: ID! """ - Full path of the namespace to add the compliance framework to. + Parameters to update the compliance framework with. """ - namespacePath: ID! + params: ComplianceFrameworkInput! } """ @@ -4177,17 +4693,17 @@ input CreateCustomEmojiInput { clientMutationId: String """ - Namespace full path the emoji is associated with + Namespace full path the emoji is associated with. """ groupPath: ID! """ - Name of the emoji + Name of the emoji. """ name: String! """ - Location of the emoji file + Location of the emoji file. """ url: String! } @@ -4202,7 +4718,7 @@ type CreateCustomEmojiPayload { clientMutationId: String """ - The new custom emoji + The new custom emoji. """ customEmoji: CustomEmoji @@ -4222,12 +4738,12 @@ input CreateDevopsAdoptionSegmentInput { clientMutationId: String """ - The array of group IDs to set for the segment + The array of group IDs to set for the segment. """ groupIds: [GroupID!] """ - Name of the segment + Name of the segment. """ name: String! } @@ -4247,7 +4763,7 @@ type CreateDevopsAdoptionSegmentPayload { errors: [String!]! """ - The segment after mutation + The segment after mutation. """ segment: DevopsAdoptionSegment } @@ -4272,7 +4788,7 @@ input CreateDiffNoteInput { confidential: Boolean """ - The global ID of the resource to add a note to + The global ID of the resource to add a note to. """ noteableId: NoteableID! @@ -4297,7 +4813,7 @@ type CreateDiffNotePayload { errors: [String!]! """ - The note after mutation + The note after mutation. """ note: Note } @@ -4317,27 +4833,27 @@ input CreateEpicInput { clientMutationId: String """ - Indicates if the epic is confidential + Indicates if the epic is confidential. """ confidential: Boolean """ - The description of the epic + The description of the epic. """ description: String """ - The end date of the epic + The end date of the epic. """ dueDateFixed: String """ - Indicates end date should be sourced from due_date_fixed field not the issue milestones + Indicates end date should be sourced from due_date_fixed field not the issue milestones. """ dueDateIsFixed: Boolean """ - The group the epic to mutate is in + The group the epic to mutate is in. """ groupPath: ID! @@ -4347,17 +4863,17 @@ input CreateEpicInput { removeLabelIds: [ID!] """ - The start date of the epic + The start date of the epic. """ startDateFixed: String """ - Indicates start date should be sourced from start_date_fixed field not the issue milestones + Indicates start date should be sourced from start_date_fixed field not the issue milestones. """ startDateIsFixed: Boolean """ - The title of the epic + The title of the epic. """ title: String } @@ -4372,7 +4888,7 @@ type CreateEpicPayload { clientMutationId: String """ - The created epic + The created epic. """ epic: Epic @@ -4402,7 +4918,7 @@ input CreateImageDiffNoteInput { confidential: Boolean """ - The global ID of the resource to add a note to + The global ID of the resource to add a note to. """ noteableId: NoteableID! @@ -4427,7 +4943,7 @@ type CreateImageDiffNotePayload { errors: [String!]! """ - The note after mutation + The note after mutation. """ note: Note } @@ -4437,7 +4953,7 @@ Autogenerated input type of CreateIssue """ input CreateIssueInput { """ - The array of user IDs to assign to the issue + The array of user IDs to assign to the issue. """ assigneeIds: [UserID!] @@ -4452,7 +4968,7 @@ input CreateIssueInput { confidential: Boolean """ - Timestamp when the issue was created. Available only for admins and project owners + Timestamp when the issue was created. Available only for admins and project owners. """ createdAt: Time @@ -4462,7 +4978,7 @@ input CreateIssueInput { description: String """ - The ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of` + The ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of`. """ discussionToResolve: String @@ -4472,22 +4988,22 @@ input CreateIssueInput { dueDate: ISO8601Date """ - The ID of an epic to associate the issue with + The ID of an epic to associate the issue with. """ epicId: EpicID """ - The desired health status + The desired health status. """ healthStatus: HealthStatus """ - The IID (internal ID) of a project issue. Only admins and project owners can modify + The IID (internal ID) of a project issue. Only admins and project owners can modify. """ iid: Int """ - The IDs of labels to be added to the issue + The IDs of labels to be added to the issue. """ labelIds: [LabelID!] @@ -4502,17 +5018,17 @@ input CreateIssueInput { locked: Boolean """ - The IID of a merge request for which to resolve discussions + The IID of a merge request for which to resolve discussions. """ mergeRequestToResolveDiscussionsOf: MergeRequestID """ - The ID of the milestone to assign to the issue. On update milestone will be removed if set to null + The ID of the milestone to assign to the issue. On update milestone will be removed if set to null. """ milestoneId: MilestoneID """ - Project full path the issue is associated with + Project full path the issue is associated with. """ projectPath: ID! @@ -4522,7 +5038,7 @@ input CreateIssueInput { title: String! """ - The weight of the issue + The weight of the issue. """ weight: Int } @@ -4542,7 +5058,7 @@ type CreateIssuePayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -4557,32 +5073,32 @@ input CreateIterationInput { clientMutationId: String """ - The description of the iteration + The description of the iteration. """ description: String """ - The end date of the iteration + The end date of the iteration. """ dueDate: String """ - The target group for the iteration + The target group for the iteration. """ groupPath: ID """ - The target project for the iteration + The target project for the iteration. """ projectPath: ID """ - The start date of the iteration + The start date of the iteration. """ startDate: String """ - The title of the iteration + The title of the iteration. """ title: String } @@ -4602,7 +5118,7 @@ type CreateIterationPayload { errors: [String!]! """ - The created iteration + The created iteration. """ iteration: Iteration } @@ -4627,12 +5143,12 @@ input CreateNoteInput { confidential: Boolean """ - The global ID of the discussion this note is in reply to + The global ID of the discussion this note is in reply to. """ discussionId: DiscussionID """ - The global ID of the resource to add a note to + The global ID of the resource to add a note to. """ noteableId: NoteableID! } @@ -4652,7 +5168,7 @@ type CreateNotePayload { errors: [String!]! """ - The note after mutation + The note after mutation. """ note: Note } @@ -4667,17 +5183,17 @@ input CreateRequirementInput { clientMutationId: String """ - Description of the requirement + Description of the requirement. """ description: String """ - Full project path the requirement is associated with + Full project path the requirement is associated with. """ projectPath: ID! """ - Title of the requirement + Title of the requirement. """ title: String } @@ -4697,7 +5213,7 @@ type CreateRequirementPayload { errors: [String!]! """ - Requirement after mutation + Requirement after mutation. """ requirement: Requirement } @@ -4707,7 +5223,7 @@ Autogenerated input type of CreateSnippet """ input CreateSnippetInput { """ - Actions to perform over the snippet repository and blobs + Actions to perform over the snippet repository and blobs. """ blobActions: [SnippetBlobActionInputType!] @@ -4717,27 +5233,27 @@ input CreateSnippetInput { clientMutationId: String """ - Description of the snippet + Description of the snippet. """ description: String """ - The project full path the snippet is associated with + The project full path the snippet is associated with. """ projectPath: ID """ - Title of the snippet + Title of the snippet. """ title: String! """ - The paths to files uploaded in the snippet description + The paths to files uploaded in the snippet description. """ uploadedFiles: [String!] """ - The visibility level of the snippet + The visibility level of the snippet. """ visibilityLevel: VisibilityLevelsEnum! } @@ -4757,12 +5273,12 @@ type CreateSnippetPayload { errors: [String!]! """ - The snippet after mutation + The snippet after mutation. """ snippet: Snippet """ - Indicates whether the operation returns a record detected as spam + Indicates whether the operation returns a record detected as spam. """ spam: Boolean } @@ -4777,7 +5293,7 @@ input CreateTestCaseInput { clientMutationId: String """ - The test case description + The test case description. """ description: String @@ -4787,12 +5303,12 @@ input CreateTestCaseInput { labelIds: [ID!] """ - The project full path to create the test case + The project full path to create the test case. """ projectPath: ID! """ - The test case title + The test case title. """ title: String! } @@ -4812,7 +5328,7 @@ type CreateTestCasePayload { errors: [String!]! """ - The test case created + The test case created. """ testCase: Issue } @@ -5672,6 +6188,96 @@ enum DastSiteValidationStrategyEnum { } """ +Color of the data visualization palette +""" +enum DataVisualizationColorEnum { + """ + Aqua color + """ + AQUA + + """ + Blue color + """ + BLUE + + """ + Green color + """ + GREEN + + """ + Magenta color + """ + MAGENTA + + """ + Orange color + """ + ORANGE +} + +""" +Weight of the data visualization palette +""" +enum DataVisualizationWeightEnum { + """ + 100 weight + """ + WEIGHT_100 + + """ + 200 weight + """ + WEIGHT_200 + + """ + 300 weight + """ + WEIGHT_300 + + """ + 400 weight + """ + WEIGHT_400 + + """ + 50 weight + """ + WEIGHT_50 + + """ + 500 weight + """ + WEIGHT_500 + + """ + 600 weight + """ + WEIGHT_600 + + """ + 700 weight + """ + WEIGHT_700 + + """ + 800 weight + """ + WEIGHT_800 + + """ + 900 weight + """ + WEIGHT_900 + + """ + 950 weight + """ + WEIGHT_950 +} + +""" Date represented in ISO 8601 """ scalar Date @@ -5686,7 +6292,7 @@ input DeleteAnnotationInput { clientMutationId: String """ - Global ID of the annotation to delete + Global ID of the annotation to delete. """ id: MetricsDashboardAnnotationID! } @@ -5716,7 +6322,7 @@ input DeleteDevopsAdoptionSegmentInput { clientMutationId: String """ - ID of the segment + ID of the segment. """ id: AnalyticsDevopsAdoptionSegmentID! } @@ -5905,12 +6511,12 @@ type Design implements CurrentUserTodos & DesignFields & Noteable { before: String """ - The Global ID of the most recent acceptable version + The Global ID of the most recent acceptable version. """ earlierOrEqualToId: DesignManagementVersionID """ - The SHA256 of the most recent acceptable version + The SHA256 of the most recent acceptable version. """ earlierOrEqualToSha: String @@ -6040,12 +6646,12 @@ type DesignCollection { """ design( """ - Find a design by its filename + Find a design by its filename. """ filename: String """ - Find a design by its ID + Find a design by its ID. """ id: DesignManagementDesignID ): Design @@ -6055,7 +6661,7 @@ type DesignCollection { """ designAtVersion( """ - The Global ID of the design at this version + The Global ID of the design at this version. """ id: DesignManagementDesignAtVersionID! ): DesignAtVersion @@ -6081,7 +6687,7 @@ type DesignCollection { before: String """ - Filters designs by their filename + Filters designs by their filename. """ filenames: [String!] @@ -6091,7 +6697,7 @@ type DesignCollection { first: Int """ - Filters designs by their ID + Filters designs by their ID. """ ids: [DesignManagementDesignID!] @@ -6116,12 +6722,12 @@ type DesignCollection { """ version( """ - The Global ID of the version + The Global ID of the version. """ id: DesignManagementVersionID """ - The SHA256 of a specific version + The SHA256 of a specific version. """ sha: String ): DesignVersion @@ -6141,12 +6747,12 @@ type DesignCollection { before: String """ - The Global ID of the most recent acceptable version + The Global ID of the most recent acceptable version. """ earlierOrEqualToId: DesignManagementVersionID """ - The SHA256 of the most recent acceptable version + The SHA256 of the most recent acceptable version. """ earlierOrEqualToSha: String @@ -6275,7 +6881,7 @@ type DesignManagement { """ designAtVersion( """ - The Global ID of the design at this version + The Global ID of the design at this version. """ id: DesignManagementDesignAtVersionID! ): DesignAtVersion @@ -6285,7 +6891,7 @@ type DesignManagement { """ version( """ - The Global ID of the version + The Global ID of the version. """ id: DesignManagementVersionID! ): DesignVersion @@ -6301,17 +6907,17 @@ input DesignManagementDeleteInput { clientMutationId: String """ - The filenames of the designs to delete + The filenames of the designs to delete. """ filenames: [String!]! """ - The IID of the issue to modify designs for + The IID of the issue to modify designs for. """ iid: ID! """ - The project where the issue is to upload designs for + The project where the issue is to upload designs for. """ projectPath: ID! } @@ -6331,7 +6937,7 @@ type DesignManagementDeletePayload { errors: [String!]! """ - The new version in which the designs are deleted + The new version in which the designs are deleted. """ version: DesignVersion } @@ -6356,17 +6962,17 @@ input DesignManagementMoveInput { clientMutationId: String """ - ID of the design to move + ID of the design to move. """ id: DesignManagementDesignID! """ - ID of the immediately following design + ID of the immediately following design. """ next: DesignManagementDesignID """ - ID of the immediately preceding design + ID of the immediately preceding design. """ previous: DesignManagementDesignID } @@ -6381,7 +6987,7 @@ type DesignManagementMovePayload { clientMutationId: String """ - The current state of the collection + The current state of the collection. """ designCollection: DesignCollection @@ -6401,17 +7007,17 @@ input DesignManagementUploadInput { clientMutationId: String """ - The files to upload + The files to upload. """ files: [Upload!]! """ - The IID of the issue to modify designs for + The IID of the issue to modify designs for. """ iid: ID! """ - The project where the issue is to upload designs for + The project where the issue is to upload designs for. """ projectPath: ID! } @@ -6426,7 +7032,7 @@ type DesignManagementUploadPayload { clientMutationId: String """ - The designs that were uploaded by the mutation + The designs that were uploaded by the mutation. """ designs: [Design!]! @@ -6455,17 +7061,17 @@ type DesignVersion { """ designAtVersion( """ - The ID of a specific design + The ID of a specific design. """ designId: DesignManagementDesignID """ - The filename of a specific design + The filename of a specific design. """ filename: String """ - The ID of the DesignAtVersion + The ID of the DesignAtVersion. """ id: DesignManagementDesignAtVersionID ): DesignAtVersion! @@ -6510,7 +7116,7 @@ type DesignVersion { before: String """ - Filters designs by their filename + Filters designs by their filename. """ filenames: [String!] @@ -6520,7 +7126,7 @@ type DesignVersion { first: Int """ - Filters designs by their ID + Filters designs by their ID. """ ids: [DesignManagementDesignID!] @@ -6611,7 +7217,7 @@ input DestroyBoardInput { clientMutationId: String """ - The global ID of the board to destroy + The global ID of the board to destroy. """ id: BoardID! } @@ -6656,7 +7262,7 @@ Autogenerated return type of DestroyBoard """ type DestroyBoardPayload { """ - The board after mutation + The board after mutation. """ board: Board @@ -6681,7 +7287,7 @@ input DestroyComplianceFrameworkInput { clientMutationId: String """ - The global ID of the compliance framework to destroy + The global ID of the compliance framework to destroy. """ id: ComplianceManagementFrameworkID! } @@ -6766,7 +7372,7 @@ type DestroyContainerRepositoryTagsPayload { clientMutationId: String """ - Deleted container repository tags + Deleted container repository tags. """ deletedTagNames: [String!]! @@ -6786,7 +7392,7 @@ input DestroyNoteInput { clientMutationId: String """ - The global ID of the note to destroy + The global ID of the note to destroy. """ id: NoteID! } @@ -6806,7 +7412,7 @@ type DestroyNotePayload { errors: [String!]! """ - The note after mutation + The note after mutation. """ note: Note } @@ -6821,7 +7427,7 @@ input DestroySnippetInput { clientMutationId: String """ - The global ID of the snippet to destroy + The global ID of the snippet to destroy. """ id: SnippetID! } @@ -6841,7 +7447,7 @@ type DestroySnippetPayload { errors: [String!]! """ - The snippet after mutation + The snippet after mutation. """ snippet: Snippet } @@ -7340,12 +7946,12 @@ input DiscussionToggleResolveInput { clientMutationId: String """ - The global ID of the discussion + The global ID of the discussion. """ id: DiscussionID! """ - Will resolve the discussion when true, and unresolve the discussion when false + Will resolve the discussion when true, and unresolve the discussion when false. """ resolve: Boolean! } @@ -7360,7 +7966,7 @@ type DiscussionToggleResolvePayload { clientMutationId: String """ - The discussion after mutation + The discussion after mutation. """ discussion: Discussion @@ -7380,12 +7986,17 @@ input DismissVulnerabilityInput { clientMutationId: String """ - Reason why vulnerability should be dismissed + Comment why vulnerability should be dismissed. """ comment: String """ - ID of the vulnerability to be dismissed + Reason why vulnerability should be dismissed. + """ + dismissalReason: VulnerabilityDismissalReason + + """ + ID of the vulnerability to be dismissed. """ id: VulnerabilityID! } @@ -7405,7 +8016,7 @@ type DismissVulnerabilityPayload { errors: [String!]! """ - The vulnerability after dismissal + The vulnerability after dismissal. """ vulnerability: Vulnerability } @@ -7470,7 +8081,7 @@ type Environment { """ metricsDashboard( """ - Path to a file which defines metrics dashboard eg: 'config/prometheus/common_metrics.yml' + Path to a file which defines metrics dashboard eg: 'config/prometheus/common_metrics.yml'. """ path: String! ): MetricsDashboard @@ -7541,12 +8152,12 @@ input EnvironmentsCanaryIngressUpdateInput { clientMutationId: String """ - The global ID of the environment to update + The global ID of the environment to update. """ id: EnvironmentID! """ - The weight of the Canary Ingress + The weight of the Canary Ingress. """ weight: Int! } @@ -7585,7 +8196,7 @@ type Epic implements CurrentUserTodos & Noteable { after: String """ - Filter epics by author + Filter epics by author. """ authorUsername: String @@ -7595,6 +8206,11 @@ type Epic implements CurrentUserTodos & Noteable { before: String """ + Filter epics by given confidentiality. + """ + confidential: Boolean + + """ List items overlapping a time frame defined by startDate..endDate (if one date is provided, both must be present) Deprecated in 13.5: Use timeframe.end. """ @@ -7606,27 +8222,27 @@ type Epic implements CurrentUserTodos & Noteable { first: Int """ - IID of the epic, e.g., "1" + IID of the epic, e.g., "1". """ iid: ID """ - Filter epics by IID for autocomplete + Filter epics by IID for autocomplete. """ iidStartsWith: String """ - List of IIDs of epics, e.g., [1, 2] + List of IIDs of epics, e.g., [1, 2]. """ iids: [ID!] """ - Include epics from descendant groups + Include epics from descendant groups. """ includeDescendantGroups: Boolean = true """ - Filter epics by labels + Filter epics by labels. """ labelName: [String!] @@ -7636,17 +8252,17 @@ type Epic implements CurrentUserTodos & Noteable { last: Int """ - Filter epics by milestone title, computed from epic's issues + Filter epics by milestone title, computed from epic's issues. """ milestoneTitle: String """ - Search query for epic title or description + Search query for epic title or description. """ search: String """ - List epics by sort order + List epics by sort order. """ sort: EpicSort @@ -7658,12 +8274,12 @@ type Epic implements CurrentUserTodos & Noteable { startDate: Time """ - Filter epics by state + Filter epics by state. """ state: EpicState """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe ): EpicConnection @@ -8019,22 +8635,22 @@ input EpicAddIssueInput { clientMutationId: String """ - The group the epic to mutate belongs to + The group the epic to mutate belongs to. """ groupPath: ID! """ - The IID of the epic to mutate + The IID of the epic to mutate. """ iid: ID! """ - The IID of the issue to be added + The IID of the issue to be added. """ issueIid: String! """ - The full path of the project the issue belongs to + The full path of the project the issue belongs to. """ projectPath: ID! } @@ -8049,12 +8665,12 @@ type EpicAddIssuePayload { clientMutationId: String """ - The epic after mutation + The epic after mutation. """ epic: Epic """ - The epic-issue relation + The epic-issue relation. """ epicIssue: EpicIssue @@ -8069,12 +8685,42 @@ Represents an epic board """ type EpicBoard { """ - Global ID of the board + Global ID of the board. """ id: BoardsEpicBoardID! """ - Name of the board + Epic board lists. + """ + lists( + """ + 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 + + """ + Find an epic board list by ID. + """ + id: BoardsEpicListID + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): EpicListConnection + + """ + Name of the board. """ name: String } @@ -8274,6 +8920,11 @@ type EpicIssue implements CurrentUserTodos & Noteable { confidential: Boolean! """ + User specific email address for the issue + """ + createNoteEmail: String + + """ Timestamp of when the issue was created """ createdAt: Time! @@ -8670,6 +9321,96 @@ type EpicIssueEdge { } """ +Represents an epic board list +""" +type EpicList { + """ + List epics. + """ + epics( + """ + 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 + ): EpicConnection + + """ + Global ID of the board list. + """ + id: BoardsEpicListID! + + """ + Label of the list. + """ + label: Label + + """ + Type of the list. + """ + listType: String! + + """ + Position of the list within the board. + """ + position: Int + + """ + Title of the list. + """ + title: String! +} + +""" +The connection type for EpicList. +""" +type EpicListConnection { + """ + A list of edges. + """ + edges: [EpicListEdge] + + """ + A list of nodes. + """ + nodes: [EpicList] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type EpicListEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EpicList +} + +""" Check permissions for the current user on an epic """ type EpicPermissions { @@ -8724,17 +9465,17 @@ input EpicSetSubscriptionInput { clientMutationId: String """ - The group the epic to mutate belongs to + The group the epic to mutate belongs to. """ groupPath: ID! """ - The IID of the epic to mutate + The IID of the epic to mutate. """ iid: ID! """ - The desired state of the subscription + The desired state of the subscription. """ subscribedState: Boolean! } @@ -8749,7 +9490,7 @@ type EpicSetSubscriptionPayload { clientMutationId: String """ - The epic after mutation + The epic after mutation. """ epic: Epic @@ -8838,7 +9579,7 @@ Autogenerated input type of EpicTreeReorder """ input EpicTreeReorderInput { """ - The ID of the base epic of the tree + The ID of the base epic of the tree. """ baseEpicId: EpicID! @@ -8848,7 +9589,7 @@ input EpicTreeReorderInput { clientMutationId: String """ - Parameters for updating the tree positions + Parameters for updating the tree positions. """ moved: EpicTreeNodeFieldsInputType! } @@ -8889,6 +9630,56 @@ enum EpicWildcardId { } """ +Autogenerated input type of ExportRequirements +""" +input ExportRequirementsInput { + """ + Filter requirements by author username. + """ + authorUsername: [String!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Full project path the requirements are associated with. + """ + projectPath: ID! + + """ + Search query for requirement title. + """ + search: String + + """ + List requirements by sort order. + """ + sort: Sort + + """ + Filter requirements by state. + """ + state: RequirementState +} + +""" +Autogenerated return type of ExportRequirements +""" +type ExportRequirementsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" Represents an external issue """ type ExternalIssue { @@ -8974,7 +9765,7 @@ type GeoNode { first: Int """ - Filters registries by their ID + Filters registries by their ID. """ ids: [ID!] @@ -9014,7 +9805,7 @@ type GeoNode { first: Int """ - Filters registries by their ID + Filters registries by their ID. """ ids: [ID!] @@ -9089,7 +9880,7 @@ type GeoNode { first: Int """ - Filters registries by their ID + Filters registries by their ID. """ ids: [ID!] @@ -9124,7 +9915,7 @@ type GeoNode { first: Int """ - Filters registries by their ID + Filters registries by their ID. """ ids: [ID!] @@ -9203,7 +9994,7 @@ type Group { """ board( """ - The board's ID + The board's ID. """ id: BoardID! ): Board @@ -9228,7 +10019,7 @@ type Group { first: Int """ - Find a board by its ID + Find a board by its ID. """ id: BoardID @@ -9263,13 +10054,13 @@ type Group { last: Int """ - First day for which to fetch code coverage activity (maximum time window is set to 90 days) + First day for which to fetch code coverage activity (maximum time window is set to 90 days). """ startDate: Date! ): CodeCoverageActivityConnection """ - Compliance frameworks available to projects in this namespace Available only + Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. """ complianceFrameworks( @@ -9289,6 +10080,11 @@ type Group { first: Int """ + Global ID of a specific compliance framework to return. + """ + id: ComplianceManagementFrameworkID + + """ Returns the last _n_ elements from the list. """ last: Int @@ -9319,7 +10115,7 @@ type Group { last: Int """ - Filter the container repositories by their name + Filter the container repositories by their name. """ name: String ): ContainerRepositoryConnection @@ -9379,53 +10175,58 @@ type Group { """ epic( """ - Filter epics by author + Filter epics by author. """ authorUsername: String """ + Filter epics by given confidentiality. + """ + confidential: Boolean + + """ List items overlapping a time frame defined by startDate..endDate (if one date is provided, both must be present) Deprecated in 13.5: Use timeframe.end. """ endDate: Time """ - IID of the epic, e.g., "1" + IID of the epic, e.g., "1". """ iid: ID """ - Filter epics by IID for autocomplete + Filter epics by IID for autocomplete. """ iidStartsWith: String """ - List of IIDs of epics, e.g., [1, 2] + List of IIDs of epics, e.g., [1, 2]. """ iids: [ID!] """ - Include epics from descendant groups + Include epics from descendant groups. """ includeDescendantGroups: Boolean = true """ - Filter epics by labels + Filter epics by labels. """ labelName: [String!] """ - Filter epics by milestone title, computed from epic's issues + Filter epics by milestone title, computed from epic's issues. """ milestoneTitle: String """ - Search query for epic title or description + Search query for epic title or description. """ search: String """ - List epics by sort order + List epics by sort order. """ sort: EpicSort @@ -9437,12 +10238,12 @@ type Group { startDate: Time """ - Filter epics by state + Filter epics by state. """ state: EpicState """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe ): Epic @@ -9452,7 +10253,7 @@ type Group { """ epicBoard( """ - Find an epic board by ID + Find an epic board by ID. """ id: BoardsEpicBoardID! ): EpicBoard @@ -9492,7 +10293,7 @@ type Group { after: String """ - Filter epics by author + Filter epics by author. """ authorUsername: String @@ -9502,6 +10303,11 @@ type Group { before: String """ + Filter epics by given confidentiality. + """ + confidential: Boolean + + """ List items overlapping a time frame defined by startDate..endDate (if one date is provided, both must be present) Deprecated in 13.5: Use timeframe.end. """ @@ -9513,27 +10319,27 @@ type Group { first: Int """ - IID of the epic, e.g., "1" + IID of the epic, e.g., "1". """ iid: ID """ - Filter epics by IID for autocomplete + Filter epics by IID for autocomplete. """ iidStartsWith: String """ - List of IIDs of epics, e.g., [1, 2] + List of IIDs of epics, e.g., [1, 2]. """ iids: [ID!] """ - Include epics from descendant groups + Include epics from descendant groups. """ includeDescendantGroups: Boolean = true """ - Filter epics by labels + Filter epics by labels. """ labelName: [String!] @@ -9543,17 +10349,17 @@ type Group { last: Int """ - Filter epics by milestone title, computed from epic's issues + Filter epics by milestone title, computed from epic's issues. """ milestoneTitle: String """ - Search query for epic title or description + Search query for epic title or description. """ search: String """ - List epics by sort order + List epics by sort order. """ sort: EpicSort @@ -9565,12 +10371,12 @@ type Group { startDate: Time """ - Filter epics by state + Filter epics by state. """ state: EpicState """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe ): EpicConnection @@ -9615,12 +10421,12 @@ type Group { last: Int """ - Filter members by the given member relations + Filter members by the given member relations. """ relations: [GroupMemberRelation!] = [DIRECT, INHERITED] """ - Search query + Search query. """ search: String ): GroupMemberConnection @@ -9650,22 +10456,22 @@ type Group { after: String """ - ID of a user assigned to the issues, "none" and "any" values are supported + ID of a user assigned to the issues, "none" and "any" values are supported. """ assigneeId: String """ - Username of a user assigned to the issue + Username of a user assigned to the issue. """ assigneeUsername: String """ - Usernames of users assigned to the issue + Usernames of users assigned to the issue. """ assigneeUsernames: [String!] """ - Username of the author of the issue + Username of the author of the issue. """ authorUsername: String @@ -9675,27 +10481,27 @@ type Group { before: String """ - Issues closed after this date + Issues closed after this date. """ closedAfter: Time """ - Issues closed before this date + Issues closed before this date. """ closedBefore: Time """ - Issues created after this date + Issues created after this date. """ createdAfter: Time """ - Issues created before this date + Issues created before this date. """ createdBefore: Time """ - ID of an epic associated with the issues, "none" and "any" values are supported + ID of an epic associated with the issues, "none" and "any" values are supported. """ epicId: String @@ -9705,12 +10511,12 @@ type Group { first: Int """ - IID of the issue. For example, "1" + IID of the issue. For example, "1". """ iid: String """ - List of IIDs of issues. For example, [1, 2] + List of IIDs of issues. For example, [1, 2]. """ iids: [String!] @@ -9720,12 +10526,12 @@ type Group { includeSubgroups: Boolean = false """ - Iterations applied to the issue + Iterations applied to the issue. """ iterationId: [ID] """ - Labels applied to this issue + Labels applied to this issue. """ labelName: [String] @@ -9735,37 +10541,37 @@ type Group { last: Int """ - Milestone applied to this issue + Milestone applied to this issue. """ milestoneTitle: [String] """ - Search query for issue title or description + Search query for issue title or description. """ search: String """ - Sort issues by this criteria + Sort issues by this criteria. """ sort: IssueSort = created_desc """ - Current state of this issue + Current state of this issue. """ state: IssuableState """ - Filter issues by the given issue types + Filter issues by the given issue types. """ types: [IssueType!] """ - Issues updated after this date + Issues updated after this date. """ updatedAfter: Time """ - Issues updated before this date + Issues updated before this date. """ updatedBefore: Time ): IssueConnection @@ -9828,7 +10634,7 @@ type Group { state: IterationState """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe @@ -9898,12 +10704,12 @@ type Group { after: String """ - Username of the assignee + Username of the assignee. """ assigneeUsername: String """ - Username of the author + Username of the author. """ authorUsername: String @@ -9918,7 +10724,7 @@ type Group { first: Int """ - Array of IIDs of merge requests, for example `[1, 2]` + Array of IIDs of merge requests, for example `[1, 2]`. """ iids: [String!] @@ -9938,22 +10744,22 @@ type Group { last: Int """ - Merge requests merged after this date + Merge requests merged after this date. """ mergedAfter: Time """ - Merge requests merged before this date + Merge requests merged before this date. """ mergedBefore: Time """ - Title of the milestone + Title of the milestone. """ milestoneTitle: String """ - Sort merge requests by this criteria + Sort merge requests by this criteria. """ sort: MergeRequestSort = created_desc @@ -9988,7 +10794,7 @@ type Group { before: String """ - A date that the milestone contains + A date that the milestone contains. """ containingDate: Time @@ -10004,12 +10810,12 @@ type Group { first: Int """ - Array of global milestone IDs, e.g., "gid://gitlab/Milestone/1" + Array of global milestone IDs, e.g., "gid://gitlab/Milestone/1". """ ids: [ID!] """ - Also return milestones in all subgroups and subprojects + Also return milestones in all subgroups and subprojects. """ includeDescendants: Boolean @@ -10019,7 +10825,7 @@ type Group { last: Int """ - A search string for the title + A search string for the title. """ searchTitle: String @@ -10031,17 +10837,17 @@ type Group { startDate: Time """ - Filter milestones by state + Filter milestones by state. """ state: MilestoneStateEnum """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe """ - The title of the milestone + The title of the milestone. """ title: String ): MilestoneConnection @@ -10052,6 +10858,11 @@ type Group { name: String! """ + The package settings for the namespace + """ + packageSettings: PackageSettings + + """ Parent group """ parent: Group @@ -10086,12 +10897,12 @@ type Group { first: Int """ - Returns only the projects which have vulnerabilities + Returns only the projects which have vulnerabilities. """ hasVulnerabilities: Boolean = false """ - Include also subgroup projects + Include also subgroup projects. """ includeSubgroups: Boolean = false @@ -10101,12 +10912,12 @@ type Group { last: Int """ - Search project with most similar names or paths + Search project with most similar names or paths. """ search: String = null """ - Sort projects by this criteria + Sort projects by this criteria. """ sort: NamespaceProjectSort = null ): ProjectConnection! @@ -10171,12 +10982,12 @@ type Group { before: String """ - List time logs within a date range where the logged date is equal to or before endDate + List time logs within a date range where the logged date is equal to or before endDate. """ endDate: Time """ - List time-logs within a time range where the logged time is equal to or before endTime + List time-logs within a time range where the logged time is equal to or before endTime. """ endTime: Time @@ -10191,12 +11002,12 @@ type Group { last: Int """ - List time logs within a date range where the logged date is equal to or after startDate + List time logs within a date range where the logged date is equal to or after startDate. """ startDate: Time """ - List time-logs within a time range where the logged time is equal to or after startTime + List time-logs within a time range where the logged time is equal to or after startTime. """ startTime: Time ): TimelogConnection! @@ -10246,12 +11057,12 @@ type Group { first: Int """ - Returns only the vulnerabilities which have linked issues + Returns only the vulnerabilities which have linked issues. """ hasIssues: Boolean """ - Returns only the vulnerabilities which have been resolved on default branch + Returns only the vulnerabilities which have been resolved on default branch. """ hasResolution: Boolean @@ -10261,32 +11072,32 @@ type Group { last: Int """ - Filter vulnerabilities by project + Filter vulnerabilities by project. """ projectId: [ID!] """ - Filter vulnerabilities by report type + Filter vulnerabilities by report type. """ reportType: [VulnerabilityReportType!] """ - Filter vulnerabilities by scanner + Filter vulnerabilities by VulnerabilityScanner.externalId. """ scanner: [String!] """ - Filter vulnerabilities by severity + Filter vulnerabilities by severity. """ severity: [VulnerabilitySeverity!] """ - List vulnerabilities by sort order + List vulnerabilities by sort order. """ sort: VulnerabilitySort = severity_desc """ - Filter vulnerabilities by state + Filter vulnerabilities by state. """ state: [VulnerabilityState!] ): VulnerabilityConnection @@ -10306,7 +11117,7 @@ type Group { before: String """ - Last day for which to fetch vulnerability history + Last day for which to fetch vulnerability history. """ endDate: ISO8601Date! @@ -10321,7 +11132,7 @@ type Group { last: Int """ - First day for which to fetch vulnerability history + First day for which to fetch vulnerability history. """ startDate: ISO8601Date! ): VulnerabilitiesCountByDayConnection @@ -10342,7 +11153,7 @@ type Group { before: String """ - Last day for which to fetch vulnerability history + Last day for which to fetch vulnerability history. """ endDate: ISO8601Date! @@ -10357,7 +11168,7 @@ type Group { last: Int """ - First day for which to fetch vulnerability history + First day for which to fetch vulnerability history. """ startDate: ISO8601Date! ): VulnerabilitiesCountByDayAndSeverityConnection @deprecated(reason: "Use `vulnerabilitiesCountByDay`. Deprecated in 13.3.") @@ -10367,7 +11178,7 @@ type Group { """ vulnerabilityGrades( """ - Include grades belonging to subgroups + Include grades belonging to subgroups. """ includeSubgroups: Boolean = false ): [VulnerableProjectsByGrade!]! @@ -10402,27 +11213,27 @@ type Group { """ vulnerabilitySeveritiesCount( """ - Filter vulnerabilities by project + Filter vulnerabilities by project. """ projectId: [ID!] """ - Filter vulnerabilities by report type + Filter vulnerabilities by report type. """ reportType: [VulnerabilityReportType!] """ - Filter vulnerabilities by scanner + Filter vulnerabilities by scanner. """ scanner: [String!] """ - Filter vulnerabilities by severity + Filter vulnerabilities by severity. """ severity: [VulnerabilitySeverity!] """ - Filter vulnerabilities by state + Filter vulnerabilities by state. """ state: [VulnerabilityState!] ): VulnerabilitySeveritiesCount @@ -10591,7 +11402,7 @@ Autogenerated input type of HttpIntegrationCreate """ input HttpIntegrationCreateInput { """ - Whether the integration is receiving alerts + Whether the integration is receiving alerts. """ active: Boolean! @@ -10601,12 +11412,22 @@ input HttpIntegrationCreateInput { clientMutationId: String """ - The name of the integration + The name of the integration. """ name: String! """ - The project to create the integration in + The custom mapping of GitLab alert attributes to fields from the payload_example. + """ + payloadAttributeMappings: [AlertManagementPayloadAlertFieldInput!] + + """ + The example of an alert payload. + """ + payloadExample: JsonString + + """ + The project to create the integration in. """ projectPath: ID! } @@ -10626,7 +11447,7 @@ type HttpIntegrationCreatePayload { errors: [String!]! """ - The HTTP integration + The HTTP integration. """ integration: AlertManagementHttpIntegration } @@ -10641,7 +11462,7 @@ input HttpIntegrationDestroyInput { clientMutationId: String """ - The ID of the integration to remove + The ID of the integration to remove. """ id: AlertManagementHttpIntegrationID! } @@ -10661,7 +11482,7 @@ type HttpIntegrationDestroyPayload { errors: [String!]! """ - The HTTP integration + The HTTP integration. """ integration: AlertManagementHttpIntegration } @@ -10676,7 +11497,7 @@ input HttpIntegrationResetTokenInput { clientMutationId: String """ - The ID of the integration to mutate + The ID of the integration to mutate. """ id: AlertManagementHttpIntegrationID! } @@ -10696,7 +11517,7 @@ type HttpIntegrationResetTokenPayload { errors: [String!]! """ - The HTTP integration + The HTTP integration. """ integration: AlertManagementHttpIntegration } @@ -10706,7 +11527,7 @@ Autogenerated input type of HttpIntegrationUpdate """ input HttpIntegrationUpdateInput { """ - Whether the integration is receiving alerts + Whether the integration is receiving alerts. """ active: Boolean @@ -10716,12 +11537,12 @@ input HttpIntegrationUpdateInput { clientMutationId: String """ - The ID of the integration to mutate + The ID of the integration to mutate. """ id: AlertManagementHttpIntegrationID! """ - The name of the integration + The name of the integration. """ name: String } @@ -10741,7 +11562,7 @@ type HttpIntegrationUpdatePayload { errors: [String!]! """ - The HTTP integration + The HTTP integration. """ integration: AlertManagementHttpIntegration } @@ -10752,6 +11573,106 @@ An ISO 8601-encoded date scalar ISO8601Date """ +Identifier of IncidentManagement::OncallParticipant +""" +scalar IncidentManagementOncallParticipantID + +""" +Describes an incident management on-call rotation +""" +type IncidentManagementOncallRotation { + """ + ID of the on-call rotation. + """ + id: IncidentManagementOncallRotationID! + + """ + Length of the on-call schedule, in the units specified by lengthUnit. + """ + length: Int + + """ + Unit of the on-call rotation length. + """ + lengthUnit: OncallRotationUnitEnum + + """ + Name of the on-call rotation. + """ + name: String! + + """ + Participants of the on-call rotation. + """ + participants( + """ + 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 + ): OncallParticipantTypeConnection + + """ + Start date of the on-call rotation. + """ + startsAt: Time +} + +""" +The connection type for IncidentManagementOncallRotation. +""" +type IncidentManagementOncallRotationConnection { + """ + A list of edges. + """ + edges: [IncidentManagementOncallRotationEdge] + + """ + A list of nodes. + """ + nodes: [IncidentManagementOncallRotation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type IncidentManagementOncallRotationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: IncidentManagementOncallRotation +} + +""" +Identifier of IncidentManagement::OncallRotation +""" +scalar IncidentManagementOncallRotationID + +""" Describes an incident management on-call schedule """ type IncidentManagementOncallSchedule { @@ -10771,6 +11692,31 @@ type IncidentManagementOncallSchedule { name: String! """ + On-call rotations for the on-call schedule + """ + rotations( + """ + 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 + ): IncidentManagementOncallRotationConnection! + + """ Time zone of the on-call schedule """ timezone: String! @@ -10872,27 +11818,27 @@ type InstanceSecurityDashboard { """ vulnerabilitySeveritiesCount( """ - Filter vulnerabilities by project + Filter vulnerabilities by project. """ projectId: [ID!] """ - Filter vulnerabilities by report type + Filter vulnerabilities by report type. """ reportType: [VulnerabilityReportType!] """ - Filter vulnerabilities by scanner + Filter vulnerabilities by scanner. """ scanner: [String!] """ - Filter vulnerabilities by severity + Filter vulnerabilities by severity. """ severity: [VulnerabilitySeverity!] """ - Filter vulnerabilities by state + Filter vulnerabilities by state. """ state: [VulnerabilityState!] ): VulnerabilitySeveritiesCount @@ -11050,6 +11996,11 @@ type Issue implements CurrentUserTodos & Noteable { confidential: Boolean! """ + User specific email address for the issue + """ + createNoteEmail: String + + """ Timestamp of when the issue was created """ createdAt: Time! @@ -11450,17 +12401,17 @@ input IssueMoveInput { clientMutationId: String """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! """ - The project to move the issue to + The project to move the issue to. """ targetProjectPath: ID! } @@ -11470,7 +12421,7 @@ Autogenerated input type of IssueMoveList """ input IssueMoveListInput { """ - Global ID of the board that the issue is in + Global ID of the board that the issue is in. """ boardId: ID! @@ -11480,37 +12431,37 @@ input IssueMoveListInput { clientMutationId: String """ - The ID of the parent epic. NULL when removing the association + The ID of the parent epic. NULL when removing the association. """ epicId: EpicID """ - ID of the board list that the issue will be moved from + ID of the board list that the issue will be moved from. """ fromListId: ID """ - IID of the issue to mutate + IID of the issue to mutate. """ iid: String! """ - ID of issue that should be placed after the current issue + ID of issue that should be placed after the current issue. """ moveAfterId: ID """ - ID of issue that should be placed before the current issue + ID of issue that should be placed before the current issue. """ moveBeforeId: ID """ - Project the issue to mutate is in + Project the issue to mutate is in. """ projectPath: ID! """ - ID of the board list that the issue will be moved to + ID of the board list that the issue will be moved to. """ toListId: ID } @@ -11530,7 +12481,7 @@ type IssueMoveListPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11550,7 +12501,7 @@ type IssueMovePayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11615,7 +12566,7 @@ input IssueSetAssigneesInput { clientMutationId: String """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! @@ -11625,7 +12576,7 @@ input IssueSetAssigneesInput { operationMode: MutationOperationMode """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! } @@ -11645,7 +12596,7 @@ type IssueSetAssigneesPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11665,12 +12616,12 @@ input IssueSetConfidentialInput { confidential: Boolean! """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! } @@ -11690,7 +12641,7 @@ type IssueSetConfidentialPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11705,17 +12656,17 @@ input IssueSetDueDateInput { clientMutationId: String """ - The desired due date for the issue + The desired due date for the issue. """ dueDate: Time! """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! } @@ -11735,7 +12686,7 @@ type IssueSetDueDatePayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11755,12 +12706,12 @@ input IssueSetEpicInput { epicId: EpicID """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! } @@ -11780,7 +12731,7 @@ type IssueSetEpicPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11795,7 +12746,7 @@ input IssueSetIterationInput { clientMutationId: String """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! @@ -11805,7 +12756,7 @@ input IssueSetIterationInput { iterationId: IterationID """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! } @@ -11825,7 +12776,7 @@ type IssueSetIterationPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11840,17 +12791,17 @@ input IssueSetLockedInput { clientMutationId: String """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - Whether or not to lock discussion on the issue + Whether or not to lock discussion on the issue. """ locked: Boolean! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! } @@ -11870,7 +12821,7 @@ type IssueSetLockedPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11885,12 +12836,12 @@ input IssueSetSeverityInput { clientMutationId: String """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! @@ -11915,7 +12866,7 @@ type IssueSetSeverityPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11930,17 +12881,17 @@ input IssueSetSubscriptionInput { clientMutationId: String """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! """ - The desired state of the subscription + The desired state of the subscription. """ subscribedState: Boolean! } @@ -11960,7 +12911,7 @@ type IssueSetSubscriptionPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -11975,17 +12926,17 @@ input IssueSetWeightInput { clientMutationId: String """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! """ - The desired weight for the issue + The desired weight for the issue. """ weight: Int! } @@ -12005,7 +12956,7 @@ type IssueSetWeightPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -12443,22 +13394,22 @@ input JiraImportStartInput { clientMutationId: String """ - Project key of the importer Jira project + Project key of the importer Jira project. """ jiraProjectKey: String! """ - Project name of the importer Jira project + Project name of the importer Jira project. """ jiraProjectName: String """ - The project to import the Jira project into + The project to import the Jira project into. """ projectPath: ID! """ - The mapping of Jira to GitLab users + The mapping of Jira to GitLab users. """ usersMapping: [JiraUsersMappingInputType!] } @@ -12478,7 +13429,7 @@ type JiraImportStartPayload { errors: [String!]! """ - The Jira import data after mutation + The Jira import data after mutation. """ jiraImport: JiraImport } @@ -12493,12 +13444,12 @@ input JiraImportUsersInput { clientMutationId: String """ - The project to import the Jira users into + The project to import the Jira users into. """ projectPath: ID! """ - The index of the record the import should started at, default 0 (50 records returned) + The index of the record the import should started at, default 0 (50 records returned). """ startAt: Int } @@ -12606,7 +13557,7 @@ type JiraService implements Service { last: Int """ - Project name or key + Project name or key. """ name: String ): JiraProjectConnection @@ -12691,6 +13642,11 @@ enum JobArtifactFileType { TRACE } +""" +JSON object as raw string +""" +scalar JsonString + type Label { """ Background color of the label @@ -12760,27 +13716,27 @@ input LabelCreateInput { """ The color of the label given in 6-digit hex notation with leading '#' sign (e.g. #FFAABB) or one of the CSS color names in - https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords + https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords. """ color: String = "#428BCA" """ - Description of the label + Description of the label. """ description: String """ - The group full path the resource is associated with + The group full path the resource is associated with. """ groupPath: ID """ - The project full path the resource is associated with + The project full path the resource is associated with. """ projectPath: ID """ - Title of the label + Title of the label. """ title: String! } @@ -12800,7 +13756,7 @@ type LabelCreatePayload { errors: [String!]! """ - The label after mutation + The label after mutation. """ label: Label } @@ -12849,7 +13805,7 @@ input MarkAsSpamSnippetInput { clientMutationId: String """ - The global ID of the snippet to update + The global ID of the snippet to update. """ id: SnippetID! } @@ -12869,7 +13825,7 @@ type MarkAsSpamSnippetPayload { errors: [String!]! """ - The snippet after mutation + The snippet after mutation. """ snippet: Snippet } @@ -13083,6 +14039,11 @@ type MergeRequest implements CurrentUserTodos & Noteable { autoMergeEnabled: Boolean! """ + Selected auto merge strategy + """ + autoMergeStrategy: String + + """ Array of available auto merge strategies """ availableAutoMergeStrategies: [String!] @@ -13168,6 +14129,11 @@ type MergeRequest implements CurrentUserTodos & Noteable { defaultMergeCommitMessageWithDescription: String """ + Default squash commit message of the merge request + """ + defaultSquashCommitMessage: String + + """ Description of the merge request (Markdown rendered as HTML for caching) """ description: String @@ -13317,6 +14283,11 @@ type MergeRequest implements CurrentUserTodos & Noteable { mergeTrainsCount: Int """ + User who merged this merge request + """ + mergeUser: User + + """ Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS) """ mergeWhenPipelineSucceeds: Boolean @@ -13367,7 +14338,7 @@ type MergeRequest implements CurrentUserTodos & Noteable { ): NoteConnection! """ - Participants in the merge request + Participants in the merge request. This includes the author, assignees, reviewers, and users mentioned in notes. """ participants( """ @@ -13417,17 +14388,17 @@ type MergeRequest implements CurrentUserTodos & Noteable { last: Int """ - Filter pipelines by the ref they are run for + Filter pipelines by the ref they are run for. """ ref: String """ - Filter pipelines by the sha of the commit they are run for + Filter pipelines by the sha of the commit they are run for. """ sha: String """ - Filter pipelines by their status + Filter pipelines by their status. """ status: PipelineStatusEnum ): PipelineConnection @@ -13463,6 +14434,31 @@ type MergeRequest implements CurrentUserTodos & Noteable { ): String! """ + Users from whom a review has been requested. + """ + reviewers( + """ + 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 + ): UserConnection + + """ Indicates if the merge request is created by @GitLab-Security-Bot. """ securityAutoFix: Boolean @@ -13505,6 +14501,11 @@ type MergeRequest implements CurrentUserTodos & Noteable { """ Indicates if squash on merge is enabled """ + squash: Boolean! + + """ + Indicates if squash on merge is enabled + """ squashOnMerge: Boolean! """ @@ -13648,7 +14649,7 @@ input MergeRequestCreateInput { labels: [String!] """ - Project full path the merge request is associated with + Project full path the merge request is associated with. """ projectPath: ID! @@ -13683,7 +14684,7 @@ type MergeRequestCreatePayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -13853,7 +14854,7 @@ input MergeRequestSetAssigneesInput { clientMutationId: String """ - The IID of the merge request to mutate + The IID of the merge request to mutate. """ iid: String! @@ -13863,7 +14864,7 @@ input MergeRequestSetAssigneesInput { operationMode: MutationOperationMode """ - The project the merge request to mutate is in + The project the merge request to mutate is in. """ projectPath: ID! } @@ -13883,7 +14884,7 @@ type MergeRequestSetAssigneesPayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -13898,7 +14899,7 @@ input MergeRequestSetLabelsInput { clientMutationId: String """ - The IID of the merge request to mutate + The IID of the merge request to mutate. """ iid: String! @@ -13913,7 +14914,7 @@ input MergeRequestSetLabelsInput { operationMode: MutationOperationMode """ - The project the merge request to mutate is in + The project the merge request to mutate is in. """ projectPath: ID! } @@ -13933,7 +14934,7 @@ type MergeRequestSetLabelsPayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -13948,7 +14949,7 @@ input MergeRequestSetLockedInput { clientMutationId: String """ - The IID of the merge request to mutate + The IID of the merge request to mutate. """ iid: String! @@ -13958,7 +14959,7 @@ input MergeRequestSetLockedInput { locked: Boolean! """ - The project the merge request to mutate is in + The project the merge request to mutate is in. """ projectPath: ID! } @@ -13978,7 +14979,7 @@ type MergeRequestSetLockedPayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -13993,7 +14994,7 @@ input MergeRequestSetMilestoneInput { clientMutationId: String """ - The IID of the merge request to mutate + The IID of the merge request to mutate. """ iid: String! @@ -14003,7 +15004,7 @@ input MergeRequestSetMilestoneInput { milestoneId: MilestoneID """ - The project the merge request to mutate is in + The project the merge request to mutate is in. """ projectPath: ID! } @@ -14023,7 +15024,7 @@ type MergeRequestSetMilestonePayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -14038,17 +15039,17 @@ input MergeRequestSetSubscriptionInput { clientMutationId: String """ - The IID of the merge request to mutate + The IID of the merge request to mutate. """ iid: String! """ - The project the merge request to mutate is in + The project the merge request to mutate is in. """ projectPath: ID! """ - The desired state of the subscription + The desired state of the subscription. """ subscribedState: Boolean! } @@ -14068,7 +15069,7 @@ type MergeRequestSetSubscriptionPayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -14083,12 +15084,12 @@ input MergeRequestSetWipInput { clientMutationId: String """ - The IID of the merge request to mutate + The IID of the merge request to mutate. """ iid: String! """ - The project the merge request to mutate is in + The project the merge request to mutate is in. """ projectPath: ID! @@ -14113,7 +15114,7 @@ type MergeRequestSetWipPayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -14229,12 +15230,12 @@ input MergeRequestUpdateInput { description: String """ - The IID of the merge request to mutate + The IID of the merge request to mutate. """ iid: String! """ - The project the merge request to mutate is in + The project the merge request to mutate is in. """ projectPath: ID! @@ -14264,7 +15265,7 @@ type MergeRequestUpdatePayload { errors: [String!]! """ - The merge request after mutation + The merge request after mutation. """ mergeRequest: MergeRequest } @@ -14332,7 +15333,7 @@ type MetricsDashboard { first: Int """ - Timestamp marking date and time from which annotations need to be fetched + Timestamp marking date and time from which annotations need to be fetched. """ from: Time! @@ -14342,7 +15343,7 @@ type MetricsDashboard { last: Int """ - Timestamp marking date and time to which annotations need to be fetched + Timestamp marking date and time to which annotations need to be fetched. """ to: Time ): MetricsDashboardAnnotationConnection @@ -14586,6 +15587,7 @@ type Mutation { awardEmojiToggle(input: AwardEmojiToggleInput!): AwardEmojiTogglePayload boardListCreate(input: BoardListCreateInput!): BoardListCreatePayload boardListUpdateLimitMetrics(input: BoardListUpdateLimitMetricsInput!): BoardListUpdateLimitMetricsPayload + ciCdSettingsUpdate(input: CiCdSettingsUpdateInput!): CiCdSettingsUpdatePayload clusterAgentDelete(input: ClusterAgentDeleteInput!): ClusterAgentDeletePayload clusterAgentTokenCreate(input: ClusterAgentTokenCreateInput!): ClusterAgentTokenCreatePayload clusterAgentTokenDelete(input: ClusterAgentTokenDeleteInput!): ClusterAgentTokenDeletePayload @@ -14643,6 +15645,7 @@ type Mutation { epicAddIssue(input: EpicAddIssueInput!): EpicAddIssuePayload epicSetSubscription(input: EpicSetSubscriptionInput!): EpicSetSubscriptionPayload epicTreeReorder(input: EpicTreeReorderInput!): EpicTreeReorderPayload + exportRequirements(input: ExportRequirementsInput!): ExportRequirementsPayload httpIntegrationCreate(input: HttpIntegrationCreateInput!): HttpIntegrationCreatePayload httpIntegrationDestroy(input: HttpIntegrationDestroyInput!): HttpIntegrationDestroyPayload httpIntegrationResetToken(input: HttpIntegrationResetTokenInput!): HttpIntegrationResetTokenPayload @@ -14675,6 +15678,7 @@ type Mutation { """ mergeRequestUpdate(input: MergeRequestUpdateInput!): MergeRequestUpdatePayload namespaceIncreaseStorageTemporarily(input: NamespaceIncreaseStorageTemporarilyInput!): NamespaceIncreaseStorageTemporarilyPayload + oncallRotationCreate(input: OncallRotationCreateInput!): OncallRotationCreatePayload oncallScheduleCreate(input: OncallScheduleCreateInput!): OncallScheduleCreatePayload oncallScheduleDestroy(input: OncallScheduleDestroyInput!): OncallScheduleDestroyPayload oncallScheduleUpdate(input: OncallScheduleUpdateInput!): OncallScheduleUpdatePayload @@ -14723,6 +15727,7 @@ type Mutation { updateImageDiffNote(input: UpdateImageDiffNoteInput!): UpdateImageDiffNotePayload updateIssue(input: UpdateIssueInput!): UpdateIssuePayload updateIteration(input: UpdateIterationInput!): UpdateIterationPayload + updateNamespacePackageSettings(input: UpdateNamespacePackageSettingsInput!): UpdateNamespacePackageSettingsPayload """ Updates a Note. If the body of the Note contains only quick actions, the Note @@ -14771,7 +15776,7 @@ type Namespace { additionalPurchasedStorageSize: Float """ - Compliance frameworks available to projects in this namespace Available only + Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. """ complianceFrameworks( @@ -14791,6 +15796,11 @@ type Namespace { first: Int """ + Global ID of a specific compliance framework to return. + """ + id: ComplianceManagementFrameworkID + + """ Returns the last _n_ elements from the list. """ last: Int @@ -14842,6 +15852,11 @@ type Namespace { name: String! """ + The package settings for the namespace + """ + packageSettings: PackageSettings + + """ Path of the namespace """ path: String! @@ -14866,12 +15881,12 @@ type Namespace { first: Int """ - Returns only the projects which have vulnerabilities + Returns only the projects which have vulnerabilities. """ hasVulnerabilities: Boolean = false """ - Include also subgroup projects + Include also subgroup projects. """ includeSubgroups: Boolean = false @@ -14881,12 +15896,12 @@ type Namespace { last: Int """ - Search project with most similar names or paths + Search project with most similar names or paths. """ search: String = null """ - Sort projects by this criteria + Sort projects by this criteria. """ sort: NamespaceProjectSort = null ): ProjectConnection! @@ -14982,7 +15997,7 @@ input NamespaceIncreaseStorageTemporarilyInput { clientMutationId: String """ - The global ID of the namespace to mutate + The global ID of the namespace to mutate. """ id: NamespaceID! } @@ -15002,7 +16017,7 @@ type NamespaceIncreaseStorageTemporarilyPayload { errors: [String!]! """ - The namespace after mutation + The namespace after mutation. """ namespace: Namespace } @@ -15151,6 +16166,11 @@ type Note implements ResolvableInterface { updatedAt: Time! """ + URL to view this Note in the Web UI + """ + url: String + + """ Permissions for the current user on the resource """ userPermissions: NotePermissions! @@ -15286,6 +16306,176 @@ Identifier of Noteable scalar NoteableID """ +The rotation participant and color palette +""" +type OncallParticipantType { + """ + The color palette to assign to the on-call user. For example "blue". + """ + colorPalette: String + + """ + The color weight to assign to for the on-call user, for example "500". Max 4 chars. For easy identification of the user. + """ + colorWeight: String + + """ + ID of the on-call participant. + """ + id: IncidentManagementOncallParticipantID! + + """ + The user who is participating. + """ + user: User! +} + +""" +The connection type for OncallParticipantType. +""" +type OncallParticipantTypeConnection { + """ + A list of edges. + """ + edges: [OncallParticipantTypeEdge] + + """ + A list of nodes. + """ + nodes: [OncallParticipantType] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type OncallParticipantTypeEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: OncallParticipantType +} + +""" +Autogenerated input type of OncallRotationCreate +""" +input OncallRotationCreateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the on-call rotation. + """ + name: String! + + """ + The usernames of users participating in the on-call rotation. + """ + participants: [OncallUserInputType!]! + + """ + The project to create the on-call schedule in. + """ + projectPath: ID! + + """ + The rotation length of the on-call rotation. + """ + rotationLength: OncallRotationLengthInputType! + + """ + The IID of the on-call schedule to create the on-call rotation in. + """ + scheduleIid: String! + + """ + The start date and time of the on-call rotation, in the timezone of the on-call schedule. + """ + startsAt: OncallRotationDateInputType! +} + +""" +Autogenerated return type of OncallRotationCreate +""" +type OncallRotationCreatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The on-call rotation. + """ + oncallRotation: IncidentManagementOncallRotation +} + +""" +Date input type for on-call rotation +""" +input OncallRotationDateInputType { + """ + The date component of the date in YYYY-MM-DD format. + """ + date: String! + + """ + The time component of the date in 24hr HH:MM format. + """ + time: String! +} + +""" +The rotation length of the on-call rotation +""" +input OncallRotationLengthInputType { + """ + The rotation length of the on-call rotation. + """ + length: Int! + + """ + The unit of the rotation length of the on-call rotation. + """ + unit: OncallRotationUnitEnum! +} + +""" +Rotation length unit of an on-call rotation +""" +enum OncallRotationUnitEnum { + """ + Days + """ + DAYS + + """ + Hours + """ + HOURS + + """ + Weeks + """ + WEEKS +} + +""" Autogenerated input type of OncallScheduleCreate """ input OncallScheduleCreateInput { @@ -15295,22 +16485,22 @@ input OncallScheduleCreateInput { clientMutationId: String """ - The description of the on-call schedule + The description of the on-call schedule. """ description: String """ - The name of the on-call schedule + The name of the on-call schedule. """ name: String! """ - The project to create the on-call schedule in + The project to create the on-call schedule in. """ projectPath: ID! """ - The timezone of the on-call schedule + The timezone of the on-call schedule. """ timezone: String! } @@ -15330,7 +16520,7 @@ type OncallScheduleCreatePayload { errors: [String!]! """ - The on-call schedule + The on-call schedule. """ oncallSchedule: IncidentManagementOncallSchedule } @@ -15345,12 +16535,12 @@ input OncallScheduleDestroyInput { clientMutationId: String """ - The on-call schedule internal ID to remove + The on-call schedule internal ID to remove. """ iid: String! """ - The project to remove the on-call schedule from + The project to remove the on-call schedule from. """ projectPath: ID! } @@ -15370,7 +16560,7 @@ type OncallScheduleDestroyPayload { errors: [String!]! """ - The on-call schedule + The on-call schedule. """ oncallSchedule: IncidentManagementOncallSchedule } @@ -15385,27 +16575,27 @@ input OncallScheduleUpdateInput { clientMutationId: String """ - The description of the on-call schedule + The description of the on-call schedule. """ description: String """ - The on-call schedule internal ID to update + The on-call schedule internal ID to update. """ iid: String! """ - The name of the on-call schedule + The name of the on-call schedule. """ name: String """ - The project to update the on-call schedule in + The project to update the on-call schedule in. """ projectPath: ID! """ - The timezone of the on-call schedule + The timezone of the on-call schedule. """ timezone: String } @@ -15425,44 +16615,304 @@ type OncallScheduleUpdatePayload { errors: [String!]! """ - The on-call schedule + The on-call schedule. """ oncallSchedule: IncidentManagementOncallSchedule } """ -Represents a package +The rotation user and color palette +""" +input OncallUserInputType { + """ + A value of DataVisualizationColorEnum. The color from the palette to assign to the on-call user. + """ + colorPalette: DataVisualizationColorEnum + + """ + A value of DataVisualizationWeightEnum. The color weight to assign to for the on-call user. + """ + colorWeight: DataVisualizationWeightEnum + + """ + The username of the user to participate in the on-call rotation, such as `user_one`. + """ + username: String! +} + +""" +Represents a package in the Package Registry """ type Package { """ - The created date + The created date. + """ + createdAt: Time! + + """ + The ID of the package. + """ + id: ID! + + """ + The name of the package. + """ + name: String! + + """ + The type of the package. + """ + packageType: PackageTypeEnum! + + """ + Pipelines that built the package. + """ + pipelines( + """ + 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 + ): PipelineConnection + + """ + Project where the package is stored. + """ + project: Project! + + """ + The package tags. + """ + tags( + """ + 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 + ): PackageTagConnection + + """ + The updated date. + """ + updatedAt: Time! + + """ + The version of the package. + """ + version: String + + """ + The other versions of the package. + """ + versions( + """ + 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 + ): PackageConnection +} + +""" +Details of a Composer package +""" +type PackageComposerDetails { + """ + The Composer metadatum. + """ + composerMetadatum: PackageComposerMetadatumType! + + """ + The created date. """ createdAt: Time! """ - The ID of the package + The ID of the package. """ id: ID! """ - The name of the package + The name of the package. """ name: String! """ - The type of the package + The type of the package. """ packageType: PackageTypeEnum! """ - The update date + Pipelines that built the package. + """ + pipelines( + """ + 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 + ): PipelineConnection + + """ + Project where the package is stored. + """ + project: Project! + + """ + The package tags. + """ + tags( + """ + 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 + ): PackageTagConnection + + """ + The updated date. """ updatedAt: Time! """ - The version of the package + The version of the package. """ version: String + + """ + The other versions of the package. + """ + versions( + """ + 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 + ): PackageConnection +} + +""" +Represents a composer JSON file +""" +type PackageComposerJsonType { + """ + The license set in the Composer JSON file. + """ + license: String + + """ + The name set in the Composer JSON file. + """ + name: String + + """ + The type set in the Composer JSON file. + """ + type: String + + """ + The version set in the Composer JSON file. + """ + version: String +} + +""" +Composer metadatum +""" +type PackageComposerMetadatumType { + """ + Data of the Composer JSON file. + """ + composerJson: PackageComposerJsonType! + + """ + Target SHA of the package. + """ + targetSha: String! } """ @@ -15580,6 +17030,82 @@ type PackageFileRegistryEdge { node: PackageFileRegistry } +""" +Namespace-level Package Registry settings +""" +type PackageSettings { + """ + When maven_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + mavenDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate Maven packages are allowed for this namespace. + """ + mavenDuplicatesAllowed: Boolean! +} + +""" +Represents a package tag +""" +type PackageTag { + """ + The created date. + """ + createdAt: Time! + + """ + The ID of the tag. + """ + id: ID! + + """ + The name of the tag. + """ + name: String! + + """ + The updated date. + """ + updatedAt: Time! +} + +""" +The connection type for PackageTag. +""" +type PackageTagConnection { + """ + A list of edges. + """ + edges: [PackageTagEdge] + + """ + A list of nodes. + """ + nodes: [PackageTag] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type PackageTagEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PackageTag +} + enum PackageTypeEnum { """ Packages from the Composer package manager @@ -15628,6 +17154,11 @@ enum PackageTypeEnum { } """ +Identifier of Packages::Package +""" +scalar PackagesPackageID + +""" Information about pagination in a connection. """ type PageInfo { @@ -15765,7 +17296,7 @@ type Pipeline { last: Int """ - Filter jobs by the type of security report they produce + Filter jobs by the type of security report they produce. """ securityReportTypes: [SecurityReportTypeEnum!] ): CiJobConnection @@ -15924,7 +17455,7 @@ input PipelineCancelInput { clientMutationId: String """ - The ID of the pipeline to mutate + The ID of the pipeline to mutate. """ id: CiPipelineID! } @@ -15990,7 +17521,7 @@ input PipelineDestroyInput { clientMutationId: String """ - The ID of the pipeline to mutate + The ID of the pipeline to mutate. """ id: CiPipelineID! } @@ -16052,7 +17583,7 @@ input PipelineRetryInput { clientMutationId: String """ - The ID of the pipeline to mutate + The ID of the pipeline to mutate. """ id: CiPipelineID! } @@ -16072,7 +17603,7 @@ type PipelineRetryPayload { errors: [String!]! """ - The pipeline after mutation + The pipeline after mutation. """ pipeline: Pipeline } @@ -16102,17 +17633,17 @@ type Project { """ alertManagementAlert( """ - Username of a user assigned to the issue + Username of a user assigned to the issue. """ assigneeUsername: String """ - Filter query for given domain + Filter query for given domain. """ domain: AlertManagementDomainFilter! = operations """ - IID of the alert. For example, "1" + IID of the alert. For example, "1". """ iid: String @@ -16122,12 +17653,12 @@ type Project { search: String """ - Sort alerts by this criteria + Sort alerts by this criteria. """ sort: AlertManagementAlertSort """ - Alerts with the specified statues. For example, [TRIGGERED] + Alerts with the specified statues. For example, [TRIGGERED]. """ statuses: [AlertManagementStatus!] ): AlertManagementAlert @@ -16137,7 +17668,7 @@ type Project { """ alertManagementAlertStatusCounts( """ - Username of a user assigned to the issue + Username of a user assigned to the issue. """ assigneeUsername: String @@ -16157,7 +17688,7 @@ type Project { after: String """ - Username of a user assigned to the issue + Username of a user assigned to the issue. """ assigneeUsername: String @@ -16167,7 +17698,7 @@ type Project { before: String """ - Filter query for given domain + Filter query for given domain. """ domain: AlertManagementDomainFilter! = operations @@ -16177,7 +17708,7 @@ type Project { first: Int """ - IID of the alert. For example, "1" + IID of the alert. For example, "1". """ iid: String @@ -16192,12 +17723,12 @@ type Project { search: String """ - Sort alerts by this criteria + Sort alerts by this criteria. """ sort: AlertManagementAlertSort """ - Alerts with the specified statues. For example, [TRIGGERED] + Alerts with the specified statues. For example, [TRIGGERED]. """ statuses: [AlertManagementStatus!] ): AlertManagementAlertConnection @@ -16253,7 +17784,7 @@ type Project { """ board( """ - The board's ID + The board's ID. """ id: BoardID! ): Board @@ -16278,7 +17809,7 @@ type Project { first: Int """ - Find a board by its ID + Find a board by its ID. """ id: BoardID @@ -16298,7 +17829,7 @@ type Project { """ clusterAgent( """ - Name of the cluster agent + Name of the cluster agent. """ name: String! ): ClusterAgent @@ -16393,7 +17924,7 @@ type Project { last: Int """ - Filter the container repositories by their name + Filter the container repositories by their name. """ name: String ): ContainerRepositoryConnection @@ -16438,7 +17969,7 @@ type Project { """ dastSiteProfile( """ - ID of the site profile + ID of the site profile. """ id: DastSiteProfileID! ): DastSiteProfile @@ -16469,22 +18000,6 @@ type Project { ): DastSiteProfileConnection """ - DAST Site Validation associated with the project. Will always return `null` if - `security_on_demand_scans_site_validation` is disabled - """ - dastSiteValidation( - """ - Normalized URL of the target to be scanned - """ - normalizedTargetUrls: [String!] - - """ - URL of the target to be scanned - """ - targetUrl: String! - ): DastSiteValidation - - """ DAST Site Validations associated with the project. Will always return no nodes if `security_on_demand_scans_site_validation` is disabled """ @@ -16510,7 +18025,7 @@ type Project { last: Int """ - Normalized URL of the target to be scanned + Normalized URL of the target to be scanned. """ normalizedTargetUrls: [String!] ): DastSiteValidationConnection @@ -16530,17 +18045,17 @@ type Project { """ environment( """ - Name of the environment + Name of the environment. """ name: String """ - Search query for environment name + Search query for environment name. """ search: String """ - States of environments that should be included in result + States of environments that should be included in result. """ states: [String!] ): Environment @@ -16570,17 +18085,17 @@ type Project { last: Int """ - Name of the environment + Name of the environment. """ name: String """ - Search query for environment name + Search query for environment name. """ search: String """ - States of environments that should be included in result + States of environments that should be included in result. """ states: [String!] ): EnvironmentConnection @@ -16650,102 +18165,102 @@ type Project { """ issue( """ - ID of a user assigned to the issues, "none" and "any" values are supported + ID of a user assigned to the issues, "none" and "any" values are supported. """ assigneeId: String """ - Username of a user assigned to the issue + Username of a user assigned to the issue. """ assigneeUsername: String """ - Usernames of users assigned to the issue + Usernames of users assigned to the issue. """ assigneeUsernames: [String!] """ - Username of the author of the issue + Username of the author of the issue. """ authorUsername: String """ - Issues closed after this date + Issues closed after this date. """ closedAfter: Time """ - Issues closed before this date + Issues closed before this date. """ closedBefore: Time """ - Issues created after this date + Issues created after this date. """ createdAfter: Time """ - Issues created before this date + Issues created before this date. """ createdBefore: Time """ - ID of an epic associated with the issues, "none" and "any" values are supported + ID of an epic associated with the issues, "none" and "any" values are supported. """ epicId: String """ - IID of the issue. For example, "1" + IID of the issue. For example, "1". """ iid: String """ - List of IIDs of issues. For example, [1, 2] + List of IIDs of issues. For example, [1, 2]. """ iids: [String!] """ - Iterations applied to the issue + Iterations applied to the issue. """ iterationId: [ID] """ - Labels applied to this issue + Labels applied to this issue. """ labelName: [String] """ - Milestone applied to this issue + Milestone applied to this issue. """ milestoneTitle: [String] """ - Search query for issue title or description + Search query for issue title or description. """ search: String """ - Sort issues by this criteria + Sort issues by this criteria. """ sort: IssueSort = created_desc """ - Current state of this issue + Current state of this issue. """ state: IssuableState """ - Filter issues by the given issue types + Filter issues by the given issue types. """ types: [IssueType!] """ - Issues updated after this date + Issues updated after this date. """ updatedAfter: Time """ - Issues updated before this date + Issues updated before this date. """ updatedBefore: Time ): Issue @@ -16755,82 +18270,82 @@ type Project { """ issueStatusCounts( """ - ID of a user assigned to the issues, "none" and "any" values are supported + ID of a user assigned to the issues, "none" and "any" values are supported. """ assigneeId: String """ - Username of a user assigned to the issue + Username of a user assigned to the issue. """ assigneeUsername: String """ - Usernames of users assigned to the issue + Usernames of users assigned to the issue. """ assigneeUsernames: [String!] """ - Username of the author of the issue + Username of the author of the issue. """ authorUsername: String """ - Issues closed after this date + Issues closed after this date. """ closedAfter: Time """ - Issues closed before this date + Issues closed before this date. """ closedBefore: Time """ - Issues created after this date + Issues created after this date. """ createdAfter: Time """ - Issues created before this date + Issues created before this date. """ createdBefore: Time """ - IID of the issue. For example, "1" + IID of the issue. For example, "1". """ iid: String """ - List of IIDs of issues. For example, [1, 2] + List of IIDs of issues. For example, [1, 2]. """ iids: [String!] """ - Labels applied to this issue + Labels applied to this issue. """ labelName: [String] """ - Milestone applied to this issue + Milestone applied to this issue. """ milestoneTitle: [String] """ - Search query for issue title or description + Search query for issue title or description. """ search: String """ - Filter issues by the given issue types + Filter issues by the given issue types. """ types: [IssueType!] """ - Issues updated after this date + Issues updated after this date. """ updatedAfter: Time """ - Issues updated before this date + Issues updated before this date. """ updatedBefore: Time ): IssueStatusCountsType @@ -16845,22 +18360,22 @@ type Project { after: String """ - ID of a user assigned to the issues, "none" and "any" values are supported + ID of a user assigned to the issues, "none" and "any" values are supported. """ assigneeId: String """ - Username of a user assigned to the issue + Username of a user assigned to the issue. """ assigneeUsername: String """ - Usernames of users assigned to the issue + Usernames of users assigned to the issue. """ assigneeUsernames: [String!] """ - Username of the author of the issue + Username of the author of the issue. """ authorUsername: String @@ -16870,27 +18385,27 @@ type Project { before: String """ - Issues closed after this date + Issues closed after this date. """ closedAfter: Time """ - Issues closed before this date + Issues closed before this date. """ closedBefore: Time """ - Issues created after this date + Issues created after this date. """ createdAfter: Time """ - Issues created before this date + Issues created before this date. """ createdBefore: Time """ - ID of an epic associated with the issues, "none" and "any" values are supported + ID of an epic associated with the issues, "none" and "any" values are supported. """ epicId: String @@ -16900,22 +18415,22 @@ type Project { first: Int """ - IID of the issue. For example, "1" + IID of the issue. For example, "1". """ iid: String """ - List of IIDs of issues. For example, [1, 2] + List of IIDs of issues. For example, [1, 2]. """ iids: [String!] """ - Iterations applied to the issue + Iterations applied to the issue. """ iterationId: [ID] """ - Labels applied to this issue + Labels applied to this issue. """ labelName: [String] @@ -16925,37 +18440,37 @@ type Project { last: Int """ - Milestone applied to this issue + Milestone applied to this issue. """ milestoneTitle: [String] """ - Search query for issue title or description + Search query for issue title or description. """ search: String """ - Sort issues by this criteria + Sort issues by this criteria. """ sort: IssueSort = created_desc """ - Current state of this issue + Current state of this issue. """ state: IssuableState """ - Filter issues by the given issue types + Filter issues by the given issue types. """ types: [IssueType!] """ - Issues updated after this date + Issues updated after this date. """ updatedAfter: Time """ - Issues updated before this date + Issues updated before this date. """ updatedBefore: Time ): IssueConnection @@ -17023,7 +18538,7 @@ type Project { state: IterationState """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe @@ -17123,7 +18638,7 @@ type Project { """ mergeRequest( """ - IID of the merge request, for example `1` + IID of the merge request, for example `1`. """ iid: String! ): MergeRequest @@ -17138,12 +18653,12 @@ type Project { after: String """ - Username of the assignee + Username of the assignee. """ assigneeUsername: String """ - Username of the author + Username of the author. """ authorUsername: String @@ -17158,7 +18673,7 @@ type Project { first: Int """ - Array of IIDs of merge requests, for example `[1, 2]` + Array of IIDs of merge requests, for example `[1, 2]`. """ iids: [String!] @@ -17173,27 +18688,27 @@ type Project { last: Int """ - Merge requests merged after this date + Merge requests merged after this date. """ mergedAfter: Time """ - Merge requests merged before this date + Merge requests merged before this date. """ mergedBefore: Time """ - Title of the milestone + Title of the milestone. """ milestoneTitle: String """ - Username of the reviewer + Username of the reviewer. """ reviewerUsername: String """ - Sort merge requests by this criteria + Sort merge requests by this criteria. """ sort: MergeRequestSort = created_desc @@ -17240,7 +18755,7 @@ type Project { before: String """ - A date that the milestone contains + A date that the milestone contains. """ containingDate: Time @@ -17256,12 +18771,12 @@ type Project { first: Int """ - Array of global milestone IDs, e.g., "gid://gitlab/Milestone/1" + Array of global milestone IDs, e.g., "gid://gitlab/Milestone/1". """ ids: [ID!] """ - Also return milestones in the project's parent group and its ancestors + Also return milestones in the project's parent group and its ancestors. """ includeAncestors: Boolean @@ -17271,7 +18786,7 @@ type Project { last: Int """ - A search string for the title + A search string for the title. """ searchTitle: String @@ -17283,17 +18798,17 @@ type Project { startDate: Time """ - Filter milestones by state + Filter milestones by state. """ state: MilestoneStateEnum """ - List items overlapping the given timeframe + List items overlapping the given timeframe. """ timeframe: Timeframe """ - The title of the milestone + The title of the milestone. """ title: String ): MilestoneConnection @@ -17363,7 +18878,7 @@ type Project { """ pipeline( """ - IID of the Pipeline, e.g., "1" + IID of the Pipeline, e.g., "1". """ iid: ID! ): Pipeline @@ -17398,17 +18913,17 @@ type Project { last: Int """ - Filter pipelines by the ref they are run for + Filter pipelines by the ref they are run for. """ ref: String """ - Filter pipelines by the sha of the commit they are run for + Filter pipelines by the sha of the commit they are run for. """ sha: String """ - Filter pipelines by their status + Filter pipelines by their status. """ status: PipelineStatusEnum ): PipelineConnection @@ -17444,12 +18959,12 @@ type Project { last: Int """ - Filter members by the given member relations + Filter members by the given member relations. """ relations: [ProjectMemberRelation!] = [DIRECT, INHERITED] """ - Search query + Search query. """ search: String ): MemberInterfaceConnection @@ -17464,7 +18979,7 @@ type Project { """ release( """ - The name of the tag associated to the release + The name of the tag associated to the release. """ tagName: String! ): Release @@ -17494,7 +19009,7 @@ type Project { last: Int """ - Sort releases by this criteria + Sort releases by this criteria. """ sort: ReleaseSort = RELEASED_AT_DESC ): ReleaseConnection @@ -17524,32 +19039,32 @@ type Project { """ requirement( """ - Filter requirements by author username + Filter requirements by author username. """ authorUsername: [String!] """ - IID of the requirement, e.g., "1" + IID of the requirement, e.g., "1". """ iid: ID """ - List of IIDs of requirements, e.g., [1, 2] + List of IIDs of requirements, e.g., [1, 2]. """ iids: [ID!] """ - Search query for requirement title + Search query for requirement title. """ search: String """ - List requirements by sort order + List requirements by sort order. """ sort: Sort """ - Filter requirements by state + Filter requirements by state. """ state: RequirementState ): Requirement @@ -17569,7 +19084,7 @@ type Project { after: String """ - Filter requirements by author username + Filter requirements by author username. """ authorUsername: [String!] @@ -17584,12 +19099,12 @@ type Project { first: Int """ - IID of the requirement, e.g., "1" + IID of the requirement, e.g., "1". """ iid: ID """ - List of IIDs of requirements, e.g., [1, 2] + List of IIDs of requirements, e.g., [1, 2]. """ iids: [ID!] @@ -17599,17 +19114,17 @@ type Project { last: Int """ - Search query for requirement title + Search query for requirement title. """ search: String """ - List requirements by sort order + List requirements by sort order. """ sort: Sort """ - Filter requirements by state + Filter requirements by state. """ state: RequirementState ): RequirementConnection @@ -17634,7 +19149,7 @@ type Project { """ sentryDetailedError( """ - ID of the Sentry issue + ID of the Sentry issue. """ id: GitlabErrorTrackingDetailedErrorID! ): SentryDetailedError @@ -17659,7 +19174,7 @@ type Project { """ services( """ - Indicates if the service is active + Indicates if the service is active. """ active: Boolean @@ -17684,7 +19199,7 @@ type Project { last: Int """ - Class name of the service + Class name of the service. """ type: ServiceType ): ServiceConnection @@ -17714,7 +19229,7 @@ type Project { first: Int """ - Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1" + Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1". """ ids: [SnippetID!] @@ -17724,7 +19239,7 @@ type Project { last: Int """ - The visibility of the snippet + The visibility of the snippet. """ visibility: VisibilityScopesEnum ): SnippetConnection @@ -17790,11 +19305,6 @@ type Project { ): TerraformStateConnection """ - Total pipeline duration for all of the pipelines in a project - """ - totalPipelineDuration: Int - - """ Permissions for the current user on the resource """ userPermissions: ProjectPermissions! @@ -17824,12 +19334,12 @@ type Project { first: Int """ - Returns only the vulnerabilities which have linked issues + Returns only the vulnerabilities which have linked issues. """ hasIssues: Boolean """ - Returns only the vulnerabilities which have been resolved on default branch + Returns only the vulnerabilities which have been resolved on default branch. """ hasResolution: Boolean @@ -17839,32 +19349,32 @@ type Project { last: Int """ - Filter vulnerabilities by project + Filter vulnerabilities by project. """ projectId: [ID!] """ - Filter vulnerabilities by report type + Filter vulnerabilities by report type. """ reportType: [VulnerabilityReportType!] """ - Filter vulnerabilities by scanner + Filter vulnerabilities by VulnerabilityScanner.externalId. """ scanner: [String!] """ - Filter vulnerabilities by severity + Filter vulnerabilities by severity. """ severity: [VulnerabilitySeverity!] """ - List vulnerabilities by sort order + List vulnerabilities by sort order. """ sort: VulnerabilitySort = severity_desc """ - Filter vulnerabilities by state + Filter vulnerabilities by state. """ state: [VulnerabilityState!] ): VulnerabilityConnection @@ -17884,7 +19394,7 @@ type Project { before: String """ - Last day for which to fetch vulnerability history + Last day for which to fetch vulnerability history. """ endDate: ISO8601Date! @@ -17899,7 +19409,7 @@ type Project { last: Int """ - First day for which to fetch vulnerability history + First day for which to fetch vulnerability history. """ startDate: ISO8601Date! ): VulnerabilitiesCountByDayConnection @@ -17934,27 +19444,27 @@ type Project { """ vulnerabilitySeveritiesCount( """ - Filter vulnerabilities by project + Filter vulnerabilities by project. """ projectId: [ID!] """ - Filter vulnerabilities by report type + Filter vulnerabilities by report type. """ reportType: [VulnerabilityReportType!] """ - Filter vulnerabilities by scanner + Filter vulnerabilities by scanner. """ scanner: [String!] """ - Filter vulnerabilities by severity + Filter vulnerabilities by severity. """ severity: [VulnerabilitySeverity!] """ - Filter vulnerabilities by state + Filter vulnerabilities by state. """ state: [VulnerabilityState!] ): VulnerabilitySeveritiesCount @@ -17972,6 +19482,11 @@ type Project { type ProjectCiCdSetting { """ + Whether to keep the latest builds artifacts. + """ + keepLatestArtifact: Boolean + + """ Whether merge pipelines are enabled. """ mergePipelinesEnabled: Boolean @@ -18416,12 +19931,12 @@ Autogenerated input type of PrometheusIntegrationCreate """ input PrometheusIntegrationCreateInput { """ - Whether the integration is receiving alerts + Whether the integration is receiving alerts. """ active: Boolean! """ - Endpoint at which prometheus can be queried + Endpoint at which prometheus can be queried. """ apiUrl: String! @@ -18431,7 +19946,7 @@ input PrometheusIntegrationCreateInput { clientMutationId: String """ - The project to create the integration in + The project to create the integration in. """ projectPath: ID! } @@ -18451,7 +19966,7 @@ type PrometheusIntegrationCreatePayload { errors: [String!]! """ - The newly created integration + The newly created integration. """ integration: AlertManagementPrometheusIntegration } @@ -18466,7 +19981,7 @@ input PrometheusIntegrationResetTokenInput { clientMutationId: String """ - The ID of the integration to mutate + The ID of the integration to mutate. """ id: PrometheusServiceID! } @@ -18486,7 +20001,7 @@ type PrometheusIntegrationResetTokenPayload { errors: [String!]! """ - The newly created integration + The newly created integration. """ integration: AlertManagementPrometheusIntegration } @@ -18496,12 +20011,12 @@ Autogenerated input type of PrometheusIntegrationUpdate """ input PrometheusIntegrationUpdateInput { """ - Whether the integration is receiving alerts + Whether the integration is receiving alerts. """ active: Boolean """ - Endpoint at which prometheus can be queried + Endpoint at which prometheus can be queried. """ apiUrl: String @@ -18511,7 +20026,7 @@ input PrometheusIntegrationUpdateInput { clientMutationId: String """ - The ID of the integration to mutate + The ID of the integration to mutate. """ id: PrometheusServiceID! } @@ -18531,7 +20046,7 @@ type PrometheusIntegrationUpdatePayload { errors: [String!]! """ - The newly created integration + The newly created integration. """ integration: AlertManagementPrometheusIntegration } @@ -18551,17 +20066,17 @@ input PromoteToEpicInput { clientMutationId: String """ - The group the promoted epic will belong to + The group the promoted epic will belong to. """ groupPath: ID """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! } @@ -18576,7 +20091,7 @@ type PromoteToEpicPayload { clientMutationId: String """ - The epic after issue promotion + The epic after issue promotion. """ epic: Epic @@ -18586,7 +20101,7 @@ type PromoteToEpicPayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -18597,9 +20112,19 @@ type Query { """ ciConfig( """ - Contents of .gitlab-ci.yml + Contents of '.gitlab-ci.yml'. """ content: String! + + """ + Run pipeline creation simulation, or only do static check. + """ + dryRun: Boolean + + """ + The project of the CI config. + """ + projectPath: ID! ): CiConfig """ @@ -18652,7 +20177,7 @@ type Query { """ echo( """ - Text to echo back + Text to echo back. """ text: String! ): String! @@ -18672,7 +20197,7 @@ type Query { """ group( """ - The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss" + The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss". """ fullPath: ID! ): Group @@ -18702,7 +20227,7 @@ type Query { first: Int """ - The type of measurement/statistics to retrieve + The type of measurement/statistics to retrieve. """ identifier: MeasurementIdentifier! @@ -18712,12 +20237,12 @@ type Query { last: Int """ - Measurement recorded after this date + Measurement recorded after this date. """ recordedAfter: Time """ - Measurement recorded before this date + Measurement recorded before this date. """ recordedBefore: Time ): InstanceStatisticsMeasurementConnection @@ -18762,17 +20287,27 @@ type Query { """ namespace( """ - The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss" + The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss". """ fullPath: ID! ): Namespace """ + Find a composer package + """ + packageComposerDetails( + """ + The global ID of the package. + """ + id: PackagesPackageID! + ): PackageComposerDetails + + """ Find a project """ project( """ - The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss" + The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss". """ fullPath: ID! ): Project @@ -18797,7 +20332,7 @@ type Query { first: Int """ - Filter projects by IDs + Filter projects by IDs. """ ids: [ID!] @@ -18807,22 +20342,22 @@ type Query { last: Int """ - Limit projects that the current user is a member of + Limit projects that the current user is a member of. """ membership: Boolean """ - Search query for project name, path, or description + Search query for project name, path, or description. """ search: String """ - Include namespace in project search + Include namespace in project search. """ searchNamespaces: Boolean """ - Sort order of results + Sort order of results. """ sort: String ): ProjectConnection @@ -18857,22 +20392,22 @@ type Query { """ runnerSetup( """ - Architecture to generate the instructions for + Architecture to generate the instructions for. """ architecture: String! """ - Group to register the runner for + Group to register the runner for. """ groupId: GroupID """ - Platform to generate the instructions for + Platform to generate the instructions for. """ platform: String! """ - Project to register the runner for + Project to register the runner for. """ projectId: ProjectID ): RunnerSetup @@ -18887,7 +20422,7 @@ type Query { after: String """ - The ID of an author + The ID of an author. """ authorId: UserID @@ -18897,7 +20432,7 @@ type Query { before: String """ - Explore personal snippets + Explore personal snippets. """ explore: Boolean @@ -18907,7 +20442,7 @@ type Query { first: Int """ - Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1" + Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1". """ ids: [SnippetID!] @@ -18917,17 +20452,17 @@ type Query { last: Int """ - The ID of a project + The ID of a project. """ projectId: ProjectID """ - The type of snippet + The type of snippet. """ type: TypeEnum """ - The visibility of the snippet + The visibility of the snippet. """ visibility: VisibilityScopesEnum ): SnippetConnection @@ -18937,12 +20472,12 @@ type Query { """ user( """ - ID of the User + ID of the User. """ id: UserID """ - Username of the User + Username of the User. """ username: String ): User @@ -18952,6 +20487,11 @@ type Query { """ users( """ + Return only admin users. + """ + admins: Boolean = false + + """ Returns the elements in the list that come after the specified cursor. """ after: String @@ -18967,7 +20507,7 @@ type Query { first: Int """ - List of user Global IDs + List of user Global IDs. """ ids: [ID!] @@ -18982,12 +20522,12 @@ type Query { search: String """ - Sort users by this criteria + Sort users by this criteria. """ sort: Sort = created_desc """ - List of usernames + List of usernames. """ usernames: [String!] ): UserConnection @@ -19012,12 +20552,12 @@ type Query { first: Int """ - Returns only the vulnerabilities which have linked issues + Returns only the vulnerabilities which have linked issues. """ hasIssues: Boolean """ - Returns only the vulnerabilities which have been resolved on default branch + Returns only the vulnerabilities which have been resolved on default branch. """ hasResolution: Boolean @@ -19027,32 +20567,32 @@ type Query { last: Int """ - Filter vulnerabilities by project + Filter vulnerabilities by project. """ projectId: [ID!] """ - Filter vulnerabilities by report type + Filter vulnerabilities by report type. """ reportType: [VulnerabilityReportType!] """ - Filter vulnerabilities by scanner + Filter vulnerabilities by VulnerabilityScanner.externalId. """ scanner: [String!] """ - Filter vulnerabilities by severity + Filter vulnerabilities by severity. """ severity: [VulnerabilitySeverity!] """ - List vulnerabilities by sort order + List vulnerabilities by sort order. """ sort: VulnerabilitySort = severity_desc """ - Filter vulnerabilities by state + Filter vulnerabilities by state. """ state: [VulnerabilityState!] ): VulnerabilityConnection @@ -19072,7 +20612,7 @@ type Query { before: String """ - Last day for which to fetch vulnerability history + Last day for which to fetch vulnerability history. """ endDate: ISO8601Date! @@ -19087,7 +20627,7 @@ type Query { last: Int """ - First day for which to fetch vulnerability history + First day for which to fetch vulnerability history. """ startDate: ISO8601Date! ): VulnerabilitiesCountByDayConnection @@ -19109,7 +20649,7 @@ type Query { before: String """ - Last day for which to fetch vulnerability history + Last day for which to fetch vulnerability history. """ endDate: ISO8601Date! @@ -19124,7 +20664,7 @@ type Query { last: Int """ - First day for which to fetch vulnerability history + First day for which to fetch vulnerability history. """ startDate: ISO8601Date! ): VulnerabilitiesCountByDayAndSeverityConnection @deprecated(reason: "Use `vulnerabilitiesCountByDay`. Deprecated in 13.3.") @@ -19500,7 +21040,7 @@ Autogenerated input type of ReleaseCreate """ input ReleaseCreateInput { """ - Assets associated to the release + Assets associated to the release. """ assets: ReleaseAssetsInput @@ -19510,7 +21050,7 @@ input ReleaseCreateInput { clientMutationId: String """ - Description (also known as "release notes") of the release + Description (also known as "release notes") of the release. """ description: String @@ -19520,17 +21060,17 @@ input ReleaseCreateInput { milestones: [String!] """ - Name of the release + Name of the release. """ name: String """ - Full path of the project the release is associated with + Full path of the project the release is associated with. """ projectPath: ID! """ - The commit SHA or branch name to use if creating a new tag + The commit SHA or branch name to use if creating a new tag. """ ref: String @@ -19540,7 +21080,7 @@ input ReleaseCreateInput { releasedAt: Time """ - Name of the tag to associate with the release + Name of the tag to associate with the release. """ tagName: String! } @@ -19560,7 +21100,7 @@ type ReleaseCreatePayload { errors: [String!]! """ - The release after mutation + The release after mutation. """ release: Release } @@ -19575,7 +21115,7 @@ input ReleaseDeleteInput { clientMutationId: String """ - Full path of the project the release is associated with + Full path of the project the release is associated with. """ projectPath: ID! @@ -19802,7 +21342,7 @@ input ReleaseUpdateInput { clientMutationId: String """ - Description (release notes) of the release + Description (release notes) of the release. """ description: String @@ -19812,22 +21352,22 @@ input ReleaseUpdateInput { milestones: [String!] """ - Name of the release + Name of the release. """ name: String """ - Full path of the project the release is associated with + Full path of the project the release is associated with. """ projectPath: ID! """ - The release date + The release date. """ releasedAt: Time """ - Name of the tag associated with the release + Name of the tag associated with the release. """ tagName: String! } @@ -19857,7 +21397,7 @@ Autogenerated input type of RemoveAwardEmoji """ input RemoveAwardEmojiInput { """ - The global ID of the awardable resource + The global ID of the awardable resource. """ awardableId: AwardableID! @@ -19877,7 +21417,7 @@ Autogenerated return type of RemoveAwardEmoji """ type RemoveAwardEmojiPayload { """ - The award emoji after mutation + The award emoji after mutation. """ awardEmoji: AwardEmoji @@ -19902,7 +21442,7 @@ input RemoveProjectFromSecurityDashboardInput { clientMutationId: String """ - ID of the project to remove from the Instance Security Dashboard + ID of the project to remove from the Instance Security Dashboard. """ id: ProjectID! } @@ -19932,7 +21472,7 @@ input RepositionImageDiffNoteInput { clientMutationId: String """ - The global ID of the DiffNote to update + The global ID of the DiffNote to update. """ id: DiffNoteID! @@ -19957,7 +21497,7 @@ type RepositionImageDiffNotePayload { errors: [String!]! """ - The note after mutation + The note after mutation. """ note: Note } @@ -19983,17 +21523,17 @@ type Repository { """ tree( """ - The path to get the tree for. Default value is the root of the repository + The path to get the tree for. Default value is the root of the repository. """ path: String = "" """ - Used to get a recursive tree. Default is false + Used to get a recursive tree. Default is false. """ recursive: Boolean = false """ - The commit ref to get the tree for. Default value is HEAD + The commit ref to get the tree for. Default value is HEAD. """ ref: String = "head" ): Tree @@ -20078,7 +21618,7 @@ type Requirement { last: Int """ - List test reports by sort order + List test reports by sort order. """ sort: Sort ): TestReportConnection @@ -20224,7 +21764,7 @@ input RevertVulnerabilityToDetectedInput { clientMutationId: String """ - ID of the vulnerability to be reverted + ID of the vulnerability to be reverted. """ id: VulnerabilityID! } @@ -20244,7 +21784,7 @@ type RevertVulnerabilityToDetectedPayload { errors: [String!]! """ - The vulnerability after revert + The vulnerability after revert. """ vulnerability: Vulnerability } @@ -21310,7 +22850,7 @@ type SentryErrorCollection { """ detailedError( """ - ID of the Sentry issue + ID of the Sentry issue. """ id: GitlabErrorTrackingDetailedErrorID! ): SentryDetailedError @@ -21320,7 +22860,7 @@ type SentryErrorCollection { """ errorStackTrace( """ - ID of the Sentry issue + ID of the Sentry issue. """ id: GitlabErrorTrackingDetailedErrorID! ): SentryErrorStackTrace @@ -21350,12 +22890,12 @@ type SentryErrorCollection { last: Int """ - Search query for the Sentry error details + Search query for the Sentry error details. """ searchTerm: String """ - Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default + Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default. """ sort: String ): SentryErrorConnection @@ -21566,7 +23106,6 @@ type ServiceEdge { } enum ServiceType { - ALERTS_SERVICE ASANA_SERVICE ASSEMBLA_SERVICE BAMBOO_SERVICE @@ -21644,7 +23183,7 @@ type Snippet implements Noteable { last: Int """ - Paths of the blobs + Paths of the blobs. """ paths: [String!] ): SnippetBlobConnection @@ -22333,7 +23872,7 @@ input TerraformStateDeleteInput { clientMutationId: String """ - Global ID of the Terraform state + Global ID of the Terraform state. """ id: TerraformStateID! } @@ -22383,7 +23922,7 @@ input TerraformStateLockInput { clientMutationId: String """ - Global ID of the Terraform state + Global ID of the Terraform state. """ id: TerraformStateID! } @@ -22413,7 +23952,7 @@ input TerraformStateUnlockInput { clientMutationId: String """ - Global ID of the Terraform state + Global ID of the Terraform state. """ id: TerraformStateID! } @@ -22847,7 +24386,7 @@ input TodoCreateInput { clientMutationId: String """ - The global ID of the to-do item's parent. Issues, merge requests, designs and epics are supported + The global ID of the to-do item's parent. Issues, merge requests, designs and epics are supported. """ targetId: TodoableID! } @@ -22867,7 +24406,7 @@ type TodoCreatePayload { errors: [String!]! """ - The to-do created + The to-do created. """ todo: Todo } @@ -22902,7 +24441,7 @@ input TodoMarkDoneInput { clientMutationId: String """ - The global ID of the todo to mark as done + The global ID of the todo to mark as done. """ id: TodoID! } @@ -22922,7 +24461,7 @@ type TodoMarkDonePayload { errors: [String!]! """ - The requested todo + The requested todo. """ todo: Todo! } @@ -22937,7 +24476,7 @@ input TodoRestoreInput { clientMutationId: String """ - The global ID of the todo to restore + The global ID of the todo to restore. """ id: TodoID! } @@ -22952,7 +24491,7 @@ input TodoRestoreManyInput { clientMutationId: String """ - The global IDs of the todos to restore (a maximum of 50 is supported at once) + The global IDs of the todos to restore (a maximum of 50 is supported at once). """ ids: [TodoID!]! } @@ -22972,12 +24511,12 @@ type TodoRestoreManyPayload { errors: [String!]! """ - Updated todos + Updated todos. """ todos: [Todo!]! """ - The IDs of the updated todo items Deprecated in 13.2: Use todos. + The IDs of the updated todo items. Deprecated in 13.2: Use todos. """ updatedIds: [TodoID!]! @deprecated(reason: "Use todos. Deprecated in 13.2.") } @@ -22997,7 +24536,7 @@ type TodoRestorePayload { errors: [String!]! """ - The requested todo + The requested todo. """ todo: Todo! } @@ -23069,12 +24608,12 @@ type TodosMarkAllDonePayload { errors: [String!]! """ - Updated todos + Updated todos. """ todos: [Todo!]! """ - Ids of the updated todos Deprecated in 13.2: Use todos. + Ids of the updated todos. Deprecated in 13.2: Use todos. """ updatedIds: [TodoID!]! @deprecated(reason: "Use todos. Deprecated in 13.2.") } @@ -23084,7 +24623,7 @@ Autogenerated input type of ToggleAwardEmoji """ input ToggleAwardEmojiInput { """ - The global ID of the awardable resource + The global ID of the awardable resource. """ awardableId: AwardableID! @@ -23104,7 +24643,7 @@ Autogenerated return type of ToggleAwardEmoji """ type ToggleAwardEmojiPayload { """ - The award emoji after mutation + The award emoji after mutation. """ awardEmoji: AwardEmoji @@ -23306,17 +24845,17 @@ input UpdateAlertStatusInput { clientMutationId: String """ - The IID of the alert to mutate + The IID of the alert to mutate. """ iid: String! """ - The project the alert to mutate is in + The project the alert to mutate is in. """ projectPath: ID! """ - The status to set the alert + The status to set the alert. """ status: AlertManagementStatus! } @@ -23326,7 +24865,7 @@ Autogenerated return type of UpdateAlertStatus """ type UpdateAlertStatusPayload { """ - The alert after mutation + The alert after mutation. """ alert: AlertManagementAlert @@ -23341,12 +24880,12 @@ type UpdateAlertStatusPayload { errors: [String!]! """ - The issue created after mutation + The issue created after mutation. """ issue: Issue """ - The todo after mutation + The todo after mutation. """ todo: Todo } @@ -23356,7 +24895,7 @@ Autogenerated input type of UpdateBoardEpicUserPreferences """ input UpdateBoardEpicUserPreferencesInput { """ - The board global ID + The board global ID. """ boardId: BoardID! @@ -23366,12 +24905,12 @@ input UpdateBoardEpicUserPreferencesInput { clientMutationId: String """ - Whether the epic should be collapsed in the board + Whether the epic should be collapsed in the board. """ collapsed: Boolean! """ - ID of an epic to set preferences for + ID of an epic to set preferences for. """ epicId: EpicID! } @@ -23386,7 +24925,7 @@ type UpdateBoardEpicUserPreferencesPayload { clientMutationId: String """ - User preferences for the epic in the board after mutation + User preferences for the epic in the board after mutation. """ epicUserPreferences: BoardEpicUserPreferences @@ -23401,6 +24940,11 @@ Autogenerated input type of UpdateBoard """ input UpdateBoardInput { """ + The ID of user to be assigned to the board. + """ + assigneeId: UserID + + """ A unique identifier for the client performing the mutation. """ clientMutationId: String @@ -23421,9 +24965,34 @@ input UpdateBoardInput { id: BoardID! """ + The ID of iteration to be assigned to the board. + """ + iterationId: IterationID + + """ + The IDs of labels to be added to the board. + """ + labelIds: [LabelID!] + + """ + Labels of the issue + """ + labels: [String!] + + """ + The ID of milestone to be assigned to the board. + """ + milestoneId: MilestoneID + + """ The board name. """ name: String + + """ + The weight value to be assigned to the board. + """ + weight: Int } """ @@ -23436,7 +25005,7 @@ input UpdateBoardListInput { clientMutationId: String """ - Indicates if list is collapsed for this user + Indicates if list is collapsed for this user. """ collapsed: Boolean @@ -23446,7 +25015,7 @@ input UpdateBoardListInput { listId: ListID! """ - Position of list within the board + Position of list within the board. """ position: Int } @@ -23466,7 +25035,7 @@ type UpdateBoardListPayload { errors: [String!]! """ - Mutated list + Mutated list. """ list: BoardList } @@ -23501,24 +25070,14 @@ input UpdateComplianceFrameworkInput { clientMutationId: String """ - New color representation of the compliance framework in hex format. e.g. #FCA121 - """ - color: String - - """ - New description for the compliance framework - """ - description: String - - """ - The global ID of the compliance framework to update + The global ID of the compliance framework to update. """ id: ComplianceManagementFrameworkID! """ - New name for the compliance framework + Parameters to update the compliance framework with. """ - name: String + params: ComplianceFrameworkInput! } """ @@ -23531,7 +25090,7 @@ type UpdateComplianceFrameworkPayload { clientMutationId: String """ - The compliance framework after mutation + The compliance framework after mutation. """ complianceFramework: ComplianceFramework @@ -23581,7 +25140,7 @@ input UpdateContainerExpirationPolicyInput { olderThan: ContainerExpirationPolicyOlderThanEnum """ - The project path where the container expiration policy is located + The project path where the container expiration policy is located. """ projectPath: ID! } @@ -23596,7 +25155,7 @@ type UpdateContainerExpirationPolicyPayload { clientMutationId: String """ - The container expiration policy after mutation + The container expiration policy after mutation. """ containerExpirationPolicy: ContainerExpirationPolicy @@ -23616,17 +25175,17 @@ input UpdateDevopsAdoptionSegmentInput { clientMutationId: String """ - The array of group IDs to set for the segment + The array of group IDs to set for the segment. """ groupIds: [GroupID!] """ - ID of the segment + ID of the segment. """ id: AnalyticsDevopsAdoptionSegmentID! """ - Name of the segment + Name of the segment. """ name: String! } @@ -23646,7 +25205,7 @@ type UpdateDevopsAdoptionSegmentPayload { errors: [String!]! """ - The segment after mutation + The segment after mutation. """ segment: DevopsAdoptionSegment } @@ -23688,32 +25247,32 @@ input UpdateEpicInput { clientMutationId: String """ - Indicates if the epic is confidential + Indicates if the epic is confidential. """ confidential: Boolean """ - The description of the epic + The description of the epic. """ description: String """ - The end date of the epic + The end date of the epic. """ dueDateFixed: String """ - Indicates end date should be sourced from due_date_fixed field not the issue milestones + Indicates end date should be sourced from due_date_fixed field not the issue milestones. """ dueDateIsFixed: Boolean """ - The group the epic to mutate is in + The group the epic to mutate is in. """ groupPath: ID! """ - The IID of the epic to mutate + The IID of the epic to mutate. """ iid: ID! @@ -23723,22 +25282,22 @@ input UpdateEpicInput { removeLabelIds: [ID!] """ - The start date of the epic + The start date of the epic. """ startDateFixed: String """ - Indicates start date should be sourced from start_date_fixed field not the issue milestones + Indicates start date should be sourced from start_date_fixed field not the issue milestones. """ startDateIsFixed: Boolean """ - State event for the epic + State event for the epic. """ stateEvent: EpicStateEvent """ - The title of the epic + The title of the epic. """ title: String } @@ -23753,7 +25312,7 @@ type UpdateEpicPayload { clientMutationId: String """ - The epic after mutation + The epic after mutation. """ epic: Epic @@ -23778,7 +25337,7 @@ input UpdateImageDiffNoteInput { clientMutationId: String """ - The global ID of the note to update + The global ID of the note to update. """ id: NoteID! @@ -23803,7 +25362,7 @@ type UpdateImageDiffNotePayload { errors: [String!]! """ - The note after mutation + The note after mutation. """ note: Note } @@ -23813,7 +25372,7 @@ Autogenerated input type of UpdateIssue """ input UpdateIssueInput { """ - The IDs of labels to be added to the issue + The IDs of labels to be added to the issue. """ addLabelIds: [ID!] @@ -23838,17 +25397,17 @@ input UpdateIssueInput { dueDate: ISO8601Date """ - The ID of the parent epic. NULL when removing the association + The ID of the parent epic. NULL when removing the association. """ epicId: EpicID """ - The desired health status + The desired health status. """ healthStatus: HealthStatus """ - The IID of the issue to mutate + The IID of the issue to mutate. """ iid: String! @@ -23858,22 +25417,22 @@ input UpdateIssueInput { locked: Boolean """ - The ID of the milestone to assign to the issue. On update milestone will be removed if set to null + The ID of the milestone to assign to the issue. On update milestone will be removed if set to null. """ milestoneId: ID """ - The project the issue to mutate is in + The project the issue to mutate is in. """ projectPath: ID! """ - The IDs of labels to be removed from the issue + The IDs of labels to be removed from the issue. """ removeLabelIds: [ID!] """ - Close or reopen an issue + Close or reopen an issue. """ stateEvent: IssueStateEvent @@ -23883,7 +25442,7 @@ input UpdateIssueInput { title: String """ - The weight of the issue + The weight of the issue. """ weight: Int } @@ -23903,7 +25462,7 @@ type UpdateIssuePayload { errors: [String!]! """ - The issue after mutation + The issue after mutation. """ issue: Issue } @@ -23969,6 +25528,52 @@ type UpdateIterationPayload { } """ +Autogenerated input type of UpdateNamespacePackageSettings +""" +input UpdateNamespacePackageSettingsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + When maven_duplicates_allowed is false, you can publish duplicate packages + with names that match this regex. Otherwise, this setting has no effect. + """ + mavenDuplicateExceptionRegex: UntrustedRegexp + + """ + Indicates whether duplicate Maven packages are allowed for this namespace. + """ + mavenDuplicatesAllowed: Boolean + + """ + The namespace path where the namespace package setting is located. + """ + namespacePath: ID! +} + +""" +Autogenerated return type of UpdateNamespacePackageSettings +""" +type UpdateNamespacePackageSettingsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The namespace package setting after mutation. + """ + packageSettings: PackageSettings +} + +""" Autogenerated input type of UpdateNote """ input UpdateNoteInput { @@ -23988,7 +25593,7 @@ input UpdateNoteInput { confidential: Boolean """ - The global ID of the note to update + The global ID of the note to update. """ id: NoteID! } @@ -24008,7 +25613,7 @@ type UpdateNotePayload { errors: [String!]! """ - The note after mutation + The note after mutation. """ note: Note } @@ -24023,32 +25628,32 @@ input UpdateRequirementInput { clientMutationId: String """ - Description of the requirement + Description of the requirement. """ description: String """ - The IID of the requirement to update + The IID of the requirement to update. """ iid: String! """ - Creates a test report for the requirement with the given state + Creates a test report for the requirement with the given state. """ lastTestReportState: TestReportState """ - Full project path the requirement is associated with + Full project path the requirement is associated with. """ projectPath: ID! """ - State of the requirement + State of the requirement. """ state: RequirementState """ - Title of the requirement + Title of the requirement. """ title: String } @@ -24068,7 +25673,7 @@ type UpdateRequirementPayload { errors: [String!]! """ - Requirement after mutation + Requirement after mutation. """ requirement: Requirement } @@ -24078,7 +25683,7 @@ Autogenerated input type of UpdateSnippet """ input UpdateSnippetInput { """ - Actions to perform over the snippet repository and blobs + Actions to perform over the snippet repository and blobs. """ blobActions: [SnippetBlobActionInputType!] @@ -24088,22 +25693,22 @@ input UpdateSnippetInput { clientMutationId: String """ - Description of the snippet + Description of the snippet. """ description: String """ - The global ID of the snippet to update + The global ID of the snippet to update. """ id: SnippetID! """ - Title of the snippet + Title of the snippet. """ title: String """ - The visibility level of the snippet + The visibility level of the snippet. """ visibilityLevel: VisibilityLevelsEnum } @@ -24123,12 +25728,12 @@ type UpdateSnippetPayload { errors: [String!]! """ - The snippet after mutation + The snippet after mutation. """ snippet: Snippet """ - Indicates whether the operation returns a record detected as spam + Indicates whether the operation returns a record detected as spam. """ spam: Boolean } @@ -24146,7 +25751,7 @@ type User { after: String """ - Username of the author + Username of the author. """ authorUsername: String @@ -24161,7 +25766,7 @@ type User { first: Int """ - Array of IIDs of merge requests, for example `[1, 2]` + Array of IIDs of merge requests, for example `[1, 2]`. """ iids: [String!] @@ -24176,17 +25781,17 @@ type User { last: Int """ - Merge requests merged after this date + Merge requests merged after this date. """ mergedAfter: Time """ - Merge requests merged before this date + Merge requests merged before this date. """ mergedBefore: Time """ - Title of the milestone + Title of the milestone. """ milestoneTitle: String @@ -24201,12 +25806,12 @@ type User { projectPath: String """ - Username of the reviewer + Username of the reviewer. """ reviewerUsername: String """ - Sort merge requests by this criteria + Sort merge requests by this criteria. """ sort: MergeRequestSort = created_desc @@ -24236,7 +25841,7 @@ type User { after: String """ - Username of the assignee + Username of the assignee. """ assigneeUsername: String @@ -24251,7 +25856,7 @@ type User { first: Int """ - Array of IIDs of merge requests, for example `[1, 2]` + Array of IIDs of merge requests, for example `[1, 2]`. """ iids: [String!] @@ -24266,17 +25871,17 @@ type User { last: Int """ - Merge requests merged after this date + Merge requests merged after this date. """ mergedAfter: Time """ - Merge requests merged before this date + Merge requests merged before this date. """ mergedBefore: Time """ - Title of the milestone + Title of the milestone. """ milestoneTitle: String @@ -24291,12 +25896,12 @@ type User { projectPath: String """ - Username of the reviewer + Username of the reviewer. """ reviewerUsername: String """ - Sort merge requests by this criteria + Sort merge requests by this criteria. """ sort: MergeRequestSort = created_desc @@ -24411,12 +26016,12 @@ type User { after: String """ - Username of the assignee + Username of the assignee. """ assigneeUsername: String """ - Username of the author + Username of the author. """ authorUsername: String @@ -24431,7 +26036,7 @@ type User { first: Int """ - Array of IIDs of merge requests, for example `[1, 2]` + Array of IIDs of merge requests, for example `[1, 2]`. """ iids: [String!] @@ -24446,17 +26051,17 @@ type User { last: Int """ - Merge requests merged after this date + Merge requests merged after this date. """ mergedAfter: Time """ - Merge requests merged before this date + Merge requests merged before this date. """ mergedBefore: Time """ - Title of the milestone + Title of the milestone. """ milestoneTitle: String @@ -24471,7 +26076,7 @@ type User { projectPath: String """ - Sort merge requests by this criteria + Sort merge requests by this criteria. """ sort: MergeRequestSort = created_desc @@ -24511,7 +26116,7 @@ type User { first: Int """ - Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1" + Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1". """ ids: [SnippetID!] @@ -24521,12 +26126,12 @@ type User { last: Int """ - The type of snippet + The type of snippet. """ type: TypeEnum """ - The visibility of the snippet + The visibility of the snippet. """ visibility: VisibilityScopesEnum ): SnippetConnection @@ -24556,7 +26161,7 @@ type User { last: Int """ - Search query + Search query. """ search: String ): ProjectConnection @@ -24576,7 +26181,7 @@ type User { """ todos( """ - The action to be filtered + The action to be filtered. """ action: [TodoActionEnum!] @@ -24586,7 +26191,7 @@ type User { after: String """ - The ID of an author + The ID of an author. """ authorId: [ID!] @@ -24601,7 +26206,7 @@ type User { first: Int """ - The ID of a group + The ID of a group. """ groupId: [ID!] @@ -24611,17 +26216,17 @@ type User { last: Int """ - The ID of a project + The ID of a project. """ projectId: [ID!] """ - The state of the todo + The state of the todo. """ state: [TodoStateEnum!] """ - The type of the todo + The type of the todo. """ type: [TodoTargetEnum!] ): TodoConnection! @@ -24898,6 +26503,11 @@ type Vulnerability implements Noteable { confirmedAt: Time """ + The user that confirmed the vulnerability. + """ + confirmedBy: User + + """ Description of the vulnerability """ description: String @@ -24938,6 +26548,11 @@ type Vulnerability implements Noteable { dismissedAt: Time """ + The user that dismissed the vulnerability. + """ + dismissedBy: User + + """ List of external issue links related to the vulnerability """ externalIssueLinks( @@ -25002,7 +26617,7 @@ type Vulnerability implements Noteable { last: Int """ - Filter issue links by link type + Filter issue links by link type. """ linkType: VulnerabilityIssueLinkType ): VulnerabilityIssueLinkConnection! @@ -25065,6 +26680,11 @@ type Vulnerability implements Noteable { resolvedAt: Time """ + The user that resolved the vulnerability. + """ + resolvedBy: User + + """ Indicates whether the vulnerability is fixed on the default branch or not """ resolvedOnDefaultBranch: Boolean! @@ -25115,7 +26735,7 @@ input VulnerabilityConfirmInput { clientMutationId: String """ - ID of the vulnerability to be confirmed + ID of the vulnerability to be confirmed. """ id: VulnerabilityID! } @@ -25135,7 +26755,7 @@ type VulnerabilityConfirmPayload { errors: [String!]! """ - The vulnerability after state change + The vulnerability after state change. """ vulnerability: Vulnerability } @@ -25170,12 +26790,17 @@ input VulnerabilityDismissInput { clientMutationId: String """ - Reason why vulnerability should be dismissed + Comment why vulnerability should be dismissed. """ comment: String """ - ID of the vulnerability to be dismissed + Reason why vulnerability should be dismissed. + """ + dismissalReason: VulnerabilityDismissalReason + + """ + ID of the vulnerability to be dismissed. """ id: VulnerabilityID! } @@ -25195,12 +26820,42 @@ type VulnerabilityDismissPayload { errors: [String!]! """ - The vulnerability after dismissal + The vulnerability after dismissal. """ vulnerability: Vulnerability } """ +The dismissal reason of the Vulnerability +""" +enum VulnerabilityDismissalReason { + """ + The likelihood of the Vulnerability occurring and its impact are deemed acceptable + """ + ACCEPTABLE_RISK + + """ + The Vulnerability was incorrectly identified as being present + """ + FALSE_POSITIVE + + """ + There is a mitigating control that eliminates the Vulnerability or makes its risk acceptable + """ + MITIGATING_CONTROL + + """ + Other reasons for dismissal + """ + NOT_APPLICABLE + + """ + The Vulnerability is used in tests and does not pose an actual risk + """ + USED_IN_TESTS +} + +""" An edge in a connection. """ type VulnerabilityEdge { @@ -25697,7 +27352,7 @@ input VulnerabilityResolveInput { clientMutationId: String """ - ID of the vulnerability to be resolved + ID of the vulnerability to be resolved. """ id: VulnerabilityID! } @@ -25717,7 +27372,7 @@ type VulnerabilityResolvePayload { errors: [String!]! """ - The vulnerability after state change + The vulnerability after state change. """ vulnerability: Vulnerability } @@ -25732,7 +27387,7 @@ input VulnerabilityRevertToDetectedInput { clientMutationId: String """ - ID of the vulnerability to be reverted + ID of the vulnerability to be reverted. """ id: VulnerabilityID! } @@ -25752,7 +27407,7 @@ type VulnerabilityRevertToDetectedPayload { errors: [String!]! """ - The vulnerability after revert + The vulnerability after revert. """ vulnerability: Vulnerability } diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json index 3494e0c8300..138530abb17 100644 --- a/doc/api/graphql/reference/gitlab_schema.json +++ b/doc/api/graphql/reference/gitlab_schema.json @@ -105,7 +105,7 @@ "inputFields": [ { "name": "awardableId", - "description": "The global ID of the awardable resource", + "description": "The global ID of the awardable resource.", "type": { "kind": "NON_NULL", "name": null, @@ -153,7 +153,7 @@ "fields": [ { "name": "awardEmoji", - "description": "The award emoji after mutation", + "description": "The award emoji after mutation.", "args": [ ], @@ -221,7 +221,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the project to be added to Instance Security Dashboard", + "description": "ID of the project to be added to Instance Security Dashboard.", "type": { "kind": "NON_NULL", "name": null, @@ -295,7 +295,7 @@ }, { "name": "project", - "description": "Project that was added to the Instance Security Dashboard", + "description": "Project that was added to the Instance Security Dashboard.", "args": [ ], @@ -372,6 +372,16 @@ "defaultValue": null }, { + "name": "remoteIp", + "description": "Delete jobs matching remote_ip in the context metadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { "name": "relatedClass", "description": "Delete jobs matching related_class in the context metadata", "type": { @@ -393,7 +403,7 @@ }, { "name": "queueName", - "description": "The name of the queue to delete jobs from", + "description": "The name of the queue to delete jobs from.", "type": { "kind": "NON_NULL", "name": null, @@ -467,7 +477,7 @@ }, { "name": "result", - "description": "Information about the status of the deletion request", + "description": "Information about the status of the deletion request.", "args": [ ], @@ -947,7 +957,7 @@ "args": [ { "name": "action", - "description": "The action to be filtered", + "description": "The action to be filtered.", "type": { "kind": "LIST", "name": null, @@ -965,7 +975,7 @@ }, { "name": "authorId", - "description": "The ID of an author", + "description": "The ID of an author.", "type": { "kind": "LIST", "name": null, @@ -983,7 +993,7 @@ }, { "name": "projectId", - "description": "The ID of a project", + "description": "The ID of a project.", "type": { "kind": "LIST", "name": null, @@ -1001,7 +1011,7 @@ }, { "name": "groupId", - "description": "The ID of a group", + "description": "The ID of a group.", "type": { "kind": "LIST", "name": null, @@ -1019,7 +1029,7 @@ }, { "name": "state", - "description": "The state of the todo", + "description": "The state of the todo.", "type": { "kind": "LIST", "name": null, @@ -1037,7 +1047,7 @@ }, { "name": "type", - "description": "The type of the todo", + "description": "The type of the todo.", "type": { "kind": "LIST", "name": null, @@ -1490,7 +1500,7 @@ "enumValues": [ { "name": "operations", - "description": "Alerts for operations domain ", + "description": "Alerts for operations domain", "isDeprecated": false, "deprecationReason": null }, @@ -1900,6 +1910,177 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "AlertManagementPayloadAlertFieldInput", + "description": "Field that are available while modifying the custom mapping attributes for an HTTP integration", + "fields": null, + "inputFields": [ + { + "name": "fieldName", + "description": "A GitLab alert field name.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AlertManagementPayloadAlertFieldName", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "path", + "description": "Path to value inside payload JSON.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "defaultValue": null + }, + { + "name": "label", + "description": "Human-readable label of the payload path.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "type", + "description": "Type of the parsed value.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AlertManagementPayloadAlertFieldType", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "AlertManagementPayloadAlertFieldName", + "description": "Values for alert field names used in the custom mapping", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "TITLE", + "description": "The title of the incident.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DESCRIPTION", + "description": "A high-level summary of the problem.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "START_TIME", + "description": "The time of the incident.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "END_TIME", + "description": "The resolved time of the incident.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SERVICE", + "description": "The affected service.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MONITORING_TOOL", + "description": "The name of the associated monitoring tool.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "HOSTS", + "description": "One or more hosts, as to where this incident occurred.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SEVERITY", + "description": "The severity of the alert.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FINGERPRINT", + "description": "The unique identifier of the alert. This can be used to group occurrences of the same alert.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GITLAB_ENVIRONMENT_NAME", + "description": "The name of the associated GitLab environment.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "AlertManagementPayloadAlertFieldType", + "description": "Values for alert field types used in the custom mapping", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ARRAY", + "description": "Array field type", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DATETIME", + "description": "DateTime field type", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "STRING", + "description": "String field type", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "AlertManagementPrometheusIntegration", "description": "An endpoint and credentials used to accept Prometheus alerts for a project", @@ -2112,7 +2293,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the alert to mutate is in", + "description": "The project the alert to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -2126,7 +2307,7 @@ }, { "name": "iid", - "description": "The IID of the alert to mutate", + "description": "The IID of the alert to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -2192,7 +2373,7 @@ "fields": [ { "name": "alert", - "description": "The alert after mutation", + "description": "The alert after mutation.", "args": [ ], @@ -2246,7 +2427,7 @@ }, { "name": "issue", - "description": "The issue created after mutation", + "description": "The issue created after mutation.", "args": [ ], @@ -2260,7 +2441,7 @@ }, { "name": "todo", - "description": "The todo after mutation", + "description": "The todo after mutation.", "args": [ ], @@ -2288,7 +2469,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the alert to mutate is in", + "description": "The project the alert to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -2302,7 +2483,7 @@ }, { "name": "iid", - "description": "The IID of the alert to mutate", + "description": "The IID of the alert to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -2336,7 +2517,7 @@ "fields": [ { "name": "alert", - "description": "The alert after mutation", + "description": "The alert after mutation.", "args": [ ], @@ -2390,7 +2571,7 @@ }, { "name": "issue", - "description": "The issue created after mutation", + "description": "The issue created after mutation.", "args": [ ], @@ -2404,7 +2585,7 @@ }, { "name": "todo", - "description": "The todo after mutation", + "description": "The todo after mutation.", "args": [ ], @@ -2586,7 +2767,7 @@ "inputFields": [ { "name": "awardableId", - "description": "The global ID of the awardable resource", + "description": "The global ID of the awardable resource.", "type": { "kind": "NON_NULL", "name": null, @@ -2634,7 +2815,7 @@ "fields": [ { "name": "awardEmoji", - "description": "The award emoji after mutation", + "description": "The award emoji after mutation.", "args": [ ], @@ -2702,7 +2883,7 @@ "inputFields": [ { "name": "awardableId", - "description": "The global ID of the awardable resource", + "description": "The global ID of the awardable resource.", "type": { "kind": "NON_NULL", "name": null, @@ -2750,7 +2931,7 @@ "fields": [ { "name": "awardEmoji", - "description": "The award emoji after mutation", + "description": "The award emoji after mutation.", "args": [ ], @@ -2818,7 +2999,7 @@ "inputFields": [ { "name": "awardableId", - "description": "The global ID of the awardable resource", + "description": "The global ID of the awardable resource.", "type": { "kind": "NON_NULL", "name": null, @@ -2866,7 +3047,7 @@ "fields": [ { "name": "awardEmoji", - "description": "The award emoji after mutation", + "description": "The award emoji after mutation.", "args": [ ], @@ -3356,7 +3537,7 @@ "args": [ { "name": "issueFilters", - "description": "Filters applied when selecting issues on the board", + "description": "Filters applied when selecting issues on the board.", "type": { "kind": "INPUT_OBJECT", "name": "BoardIssueInput", @@ -3532,7 +3713,7 @@ "args": [ { "name": "id", - "description": "Find a list by its global ID", + "description": "Find a list by its global ID.", "type": { "kind": "SCALAR", "name": "ListID", @@ -3542,7 +3723,7 @@ }, { "name": "issueFilters", - "description": "Filters applied when getting issue metadata in the board list", + "description": "Filters applied when getting issue metadata in the board list.", "type": { "kind": "INPUT_OBJECT", "name": "BoardIssueInput", @@ -3628,6 +3809,42 @@ "deprecationReason": null }, { + "name": "webPath", + "description": "Web path of the board.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "webUrl", + "description": "Web URL of the board.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "weight", "description": "Weight of the board", "args": [ @@ -3810,7 +4027,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -3820,7 +4037,7 @@ }, { "name": "iid", - "description": "IID of the epic, e.g., \"1\"", + "description": "IID of the epic, e.g., \"1\".", "type": { "kind": "SCALAR", "name": "ID", @@ -3830,7 +4047,7 @@ }, { "name": "iids", - "description": "List of IIDs of epics, e.g., [1, 2]", + "description": "List of IIDs of epics, e.g., [1, 2].", "type": { "kind": "LIST", "name": null, @@ -3848,7 +4065,7 @@ }, { "name": "state", - "description": "Filter epics by state", + "description": "Filter epics by state.", "type": { "kind": "ENUM", "name": "EpicState", @@ -3858,7 +4075,7 @@ }, { "name": "search", - "description": "Search query for epic title or description", + "description": "Search query for epic title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -3868,7 +4085,7 @@ }, { "name": "sort", - "description": "List epics by sort order", + "description": "List epics by sort order.", "type": { "kind": "ENUM", "name": "EpicSort", @@ -3878,7 +4095,7 @@ }, { "name": "authorUsername", - "description": "Filter epics by author", + "description": "Filter epics by author.", "type": { "kind": "SCALAR", "name": "String", @@ -3888,7 +4105,7 @@ }, { "name": "labelName", - "description": "Filter epics by labels", + "description": "Filter epics by labels.", "type": { "kind": "LIST", "name": null, @@ -3906,7 +4123,7 @@ }, { "name": "milestoneTitle", - "description": "Filter epics by milestone title, computed from epic's issues", + "description": "Filter epics by milestone title, computed from epic's issues.", "type": { "kind": "SCALAR", "name": "String", @@ -3916,7 +4133,7 @@ }, { "name": "iidStartsWith", - "description": "Filter epics by IID for autocomplete", + "description": "Filter epics by IID for autocomplete.", "type": { "kind": "SCALAR", "name": "String", @@ -3926,7 +4143,7 @@ }, { "name": "includeDescendantGroups", - "description": "Include epics from descendant groups", + "description": "Include epics from descendant groups.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -3935,6 +4152,16 @@ "defaultValue": "true" }, { + "name": "confidential", + "description": "Filter epics by given confidentiality.", + "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": { @@ -5290,7 +5517,7 @@ "args": [ { "name": "filters", - "description": "Filters applied when selecting issues in the board list", + "description": "Filters applied when selecting issues in the board list.", "type": { "kind": "INPUT_OBJECT", "name": "BoardIssueInput", @@ -5362,6 +5589,20 @@ "deprecationReason": null }, { + "name": "iteration", + "description": "Iteration of the list", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Iteration", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "label", "description": "Label of the list", "args": [ @@ -5578,7 +5819,7 @@ "inputFields": [ { "name": "boardId", - "description": "Global ID of the issue board to mutate", + "description": "Global ID of the issue board to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -5592,7 +5833,7 @@ }, { "name": "backlog", - "description": "Create the backlog list", + "description": "Create the backlog list.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -5602,7 +5843,7 @@ }, { "name": "labelId", - "description": "Global ID of an existing label", + "description": "Global ID of an existing label.", "type": { "kind": "SCALAR", "name": "LabelID", @@ -5612,7 +5853,7 @@ }, { "name": "milestoneId", - "description": "Global ID of an existing milestone", + "description": "Global ID of an existing milestone.", "type": { "kind": "SCALAR", "name": "MilestoneID", @@ -5622,7 +5863,7 @@ }, { "name": "iterationId", - "description": "Global ID of an existing iteration", + "description": "Global ID of an existing iteration.", "type": { "kind": "SCALAR", "name": "IterationID", @@ -5632,7 +5873,7 @@ }, { "name": "assigneeId", - "description": "Global ID of an existing user", + "description": "Global ID of an existing user.", "type": { "kind": "SCALAR", "name": "UserID", @@ -5702,7 +5943,7 @@ }, { "name": "list", - "description": "List of the issue board", + "description": "List of the issue board.", "args": [ ], @@ -5879,7 +6120,7 @@ }, { "name": "list", - "description": "The updated list", + "description": "The updated list.", "args": [ ], @@ -5911,6 +6152,16 @@ }, { "kind": "SCALAR", + "name": "BoardsEpicListID", + "description": "Identifier of Boards::EpicList", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", "name": "Boolean", "description": "Represents `true` or `false` values.", "fields": null, @@ -6069,6 +6320,243 @@ }, { "kind": "OBJECT", + "name": "CiBuildNeed", + "description": null, + "fields": [ + { + "name": "name", + "description": "Name of the job we need to complete.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CiBuildNeedConnection", + "description": "The connection type for CiBuildNeed.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiBuildNeedEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiBuildNeed", + "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": "CiBuildNeedEdge", + "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": "CiBuildNeed", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CiCdSettingsUpdateInput", + "description": "Autogenerated input type of CiCdSettingsUpdate", + "fields": null, + "inputFields": [ + { + "name": "fullPath", + "description": "Full Path of the project the settings belong to.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "keepLatestArtifact", + "description": "Indicates if the latest artifact should be kept for this project.", + "type": { + "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": "CiCdSettingsUpdatePayload", + "description": "Autogenerated return type of CiCdSettingsUpdate", + "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 + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "CiConfig", "description": null, "fields": [ @@ -6112,20 +6600,51 @@ "name": "stages", "description": "Stages of the pipeline", "args": [ - - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CiConfigStage", + { + "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": "CiConfigStageConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -6161,20 +6680,51 @@ "name": "jobs", "description": "Jobs in group", "args": [ - - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CiConfigJob", + { + "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": "CiConfigJobConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -6217,12 +6767,210 @@ }, { "kind": "OBJECT", + "name": "CiConfigGroupConnection", + "description": "The connection type for CiConfigGroup.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiConfigGroupEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiConfigGroup", + "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": "CiConfigGroupEdge", + "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": "CiConfigGroup", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "CiConfigJob", "description": null, "fields": [ { + "name": "afterScript", + "description": "Override a set of commands that are executed after the job.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "allowFailure", + "description": "Allow job to fail.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "beforeScript", + "description": "Override a set of commands that are executed before the job.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environment", + "description": "Name of an environment to which the job deploys.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "except", + "description": "Limit when jobs are not created.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "CiConfigJobRestriction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "groupName", - "description": "Name of the job group", + "description": "Name of the job group.", "args": [ ], @@ -6236,7 +6984,7 @@ }, { "name": "name", - "description": "Name of the job", + "description": "Name of the job.", "args": [ ], @@ -6250,7 +6998,74 @@ }, { "name": "needs", - "description": "Builds that must complete before the jobs run", + "description": "Builds that must complete before the jobs run.", + "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": "CiConfigNeedConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "only", + "description": "Jobs are created when these conditions do not apply.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "CiConfigJobRestriction", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "script", + "description": "Shell script that is executed by a runner.", "args": [ ], @@ -6261,8 +7076,8 @@ "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "CiConfigNeed", + "kind": "SCALAR", + "name": "String", "ofType": null } } @@ -6272,7 +7087,43 @@ }, { "name": "stage", - "description": "Name of the job stage", + "description": "Name of the job stage.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tags", + "description": "List of tags that are used to select a runner.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "when", + "description": "When to run the job.", "args": [ ], @@ -6294,6 +7145,153 @@ }, { "kind": "OBJECT", + "name": "CiConfigJobConnection", + "description": "The connection type for CiConfigJob.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiConfigJobEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiConfigJob", + "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": "CiConfigJobEdge", + "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": "CiConfigJob", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CiConfigJobRestriction", + "description": null, + "fields": [ + { + "name": "refs", + "description": "The Git refs the job restriction applies to.", + "args": [ + + ], + "type": { + "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": "OBJECT", "name": "CiConfigNeed", "description": null, "fields": [ @@ -6321,12 +7319,12 @@ }, { "kind": "OBJECT", - "name": "CiConfigStage", - "description": null, + "name": "CiConfigNeedConnection", + "description": "The connection type for CiConfigNeed.", "fields": [ { - "name": "groups", - "description": "Groups of jobs for the stage", + "name": "edges", + "description": "A list of edges.", "args": [ ], @@ -6334,14 +7332,157 @@ "kind": "LIST", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CiConfigGroup", + "kind": "OBJECT", + "name": "CiConfigNeedEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiConfigNeed", + "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": "CiConfigNeedEdge", + "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": "CiConfigNeed", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CiConfigStage", + "description": null, + "fields": [ + { + "name": "groups", + "description": "Groups of jobs for the stage", + "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": "CiConfigGroupConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -6369,6 +7510,118 @@ "possibleTypes": null }, { + "kind": "OBJECT", + "name": "CiConfigStageConnection", + "description": "The connection type for CiConfigStage.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiConfigStageEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CiConfigStage", + "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": "CiConfigStageEdge", + "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": "CiConfigStage", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "ENUM", "name": "CiConfigStatus", "description": "Values for YAML processor result", @@ -6699,7 +7952,7 @@ }, { "name": "needs", - "description": "Builds that must complete before the jobs run", + "description": "References to builds that must complete before the jobs run", "args": [ { "name": "after", @@ -6744,7 +7997,7 @@ ], "type": { "kind": "OBJECT", - "name": "CiJobConnection", + "name": "CiBuildNeedConnection", "ofType": null }, "isDeprecated": false, @@ -7500,7 +8753,7 @@ "inputFields": [ { "name": "id", - "description": "Global ID of the cluster agent that will be deleted", + "description": "Global ID of the cluster agent that will be deleted.", "type": { "kind": "NON_NULL", "name": null, @@ -7777,7 +9030,7 @@ "inputFields": [ { "name": "clusterAgentId", - "description": "Global ID of the cluster agent that will be associated with the new token", + "description": "Global ID of the cluster agent that will be associated with the new token.", "type": { "kind": "NON_NULL", "name": null, @@ -7851,7 +9104,7 @@ }, { "name": "secret", - "description": "Token secret value. Make sure you save it - you won't be able to access it again", + "description": "Token secret value. Make sure you save it - you won't be able to access it again.", "args": [ ], @@ -7865,7 +9118,7 @@ }, { "name": "token", - "description": "Token created after mutation", + "description": "Token created after mutation.", "args": [ ], @@ -7893,7 +9146,7 @@ "inputFields": [ { "name": "id", - "description": "Global ID of the cluster agent token that will be deleted", + "description": "Global ID of the cluster agent token that will be deleted.", "type": { "kind": "NON_NULL", "name": null, @@ -8415,7 +9668,7 @@ "args": [ { "name": "status", - "description": "Filter pipelines by their status", + "description": "Filter pipelines by their status.", "type": { "kind": "ENUM", "name": "PipelineStatusEnum", @@ -8425,7 +9678,7 @@ }, { "name": "ref", - "description": "Filter pipelines by the ref they are run for", + "description": "Filter pipelines by the ref they are run for.", "type": { "kind": "SCALAR", "name": "String", @@ -8435,7 +9688,7 @@ }, { "name": "sha", - "description": "Filter pipelines by the sha of the commit they are run for", + "description": "Filter pipelines by the sha of the commit they are run for.", "type": { "kind": "SCALAR", "name": "String", @@ -8819,7 +10072,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Project full path the branch is associated with", + "description": "Project full path the branch is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -8833,7 +10086,7 @@ }, { "name": "branch", - "description": "Name of the branch to commit into, it can be a new branch", + "description": "Name of the branch to commit into, it can be a new branch.", "type": { "kind": "NON_NULL", "name": null, @@ -8847,7 +10100,7 @@ }, { "name": "startBranch", - "description": "If on a new branch, name of the original branch", + "description": "If on a new branch, name of the original branch.", "type": { "kind": "SCALAR", "name": "String", @@ -8871,7 +10124,7 @@ }, { "name": "actions", - "description": "Array of action hashes to commit as a batch", + "description": "Array of action hashes to commit as a batch.", "type": { "kind": "NON_NULL", "name": null, @@ -8927,7 +10180,7 @@ }, { "name": "commit", - "description": "The commit after mutation", + "description": "The commit after mutation.", "args": [ ], @@ -9239,6 +10492,47 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "ComplianceFrameworkInput", + "description": null, + "fields": null, + "inputFields": [ + { + "name": "name", + "description": "New name for the compliance framework.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "description", + "description": "New description for the compliance framework.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "color", + "description": "New color representation of the compliance framework in hex format. e.g. #FCA121.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "SCALAR", "name": "ComplianceManagementFrameworkID", "description": "Identifier of ComplianceManagement::Framework", @@ -9256,7 +10550,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Full path of the project", + "description": "Full path of the project.", "type": { "kind": "NON_NULL", "name": null, @@ -9270,7 +10564,7 @@ }, { "name": "configuration", - "description": "SAST CI configuration for the project", + "description": "SAST CI configuration for the project.", "type": { "kind": "NON_NULL", "name": null, @@ -9344,7 +10638,7 @@ }, { "name": "status", - "description": "Status of creating the commit for the supplied SAST CI configuration", + "description": "Status of creating the commit for the supplied SAST CI configuration.", "args": [ ], @@ -9362,7 +10656,7 @@ }, { "name": "successPath", - "description": "Redirect path to use when the response is successful", + "description": "Redirect path to use when the response is successful.", "args": [ ], @@ -10602,7 +11896,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the alert to mutate is in", + "description": "The project the alert to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -10616,7 +11910,7 @@ }, { "name": "iid", - "description": "The IID of the alert to mutate", + "description": "The IID of the alert to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -10650,7 +11944,7 @@ "fields": [ { "name": "alert", - "description": "The alert after mutation", + "description": "The alert after mutation.", "args": [ ], @@ -10704,7 +11998,7 @@ }, { "name": "issue", - "description": "The issue created after mutation", + "description": "The issue created after mutation.", "args": [ ], @@ -10718,7 +12012,7 @@ }, { "name": "todo", - "description": "The todo after mutation", + "description": "The todo after mutation.", "args": [ ], @@ -10746,7 +12040,7 @@ "inputFields": [ { "name": "environmentId", - "description": "The global ID of the environment to add an annotation to", + "description": "The global ID of the environment to add an annotation to.", "type": { "kind": "SCALAR", "name": "EnvironmentID", @@ -10756,7 +12050,7 @@ }, { "name": "clusterId", - "description": "The global ID of the cluster to add an annotation to", + "description": "The global ID of the cluster to add an annotation to.", "type": { "kind": "SCALAR", "name": "ClustersClusterID", @@ -10766,7 +12060,7 @@ }, { "name": "startingAt", - "description": "Timestamp indicating starting moment to which the annotation relates", + "description": "Timestamp indicating starting moment to which the annotation relates.", "type": { "kind": "NON_NULL", "name": null, @@ -10780,7 +12074,7 @@ }, { "name": "endingAt", - "description": "Timestamp indicating ending moment to which the annotation relates", + "description": "Timestamp indicating ending moment to which the annotation relates.", "type": { "kind": "SCALAR", "name": "Time", @@ -10790,7 +12084,7 @@ }, { "name": "dashboardPath", - "description": "The path to a file defining the dashboard on which the annotation should be added", + "description": "The path to a file defining the dashboard on which the annotation should be added.", "type": { "kind": "NON_NULL", "name": null, @@ -10804,7 +12098,7 @@ }, { "name": "description", - "description": "The description of the annotation", + "description": "The description of the annotation.", "type": { "kind": "NON_NULL", "name": null, @@ -10838,7 +12132,7 @@ "fields": [ { "name": "annotation", - "description": "The created annotation", + "description": "The created annotation.", "args": [ ], @@ -10906,7 +12200,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project full path the resource is associated with", + "description": "The project full path the resource is associated with.", "type": { "kind": "SCALAR", "name": "ID", @@ -10916,7 +12210,7 @@ }, { "name": "groupPath", - "description": "The group full path the resource is associated with", + "description": "The group full path the resource is associated with.", "type": { "kind": "SCALAR", "name": "ID", @@ -10955,6 +12249,82 @@ "defaultValue": null }, { + "name": "assigneeId", + "description": "The ID of user to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "UserID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "milestoneId", + "description": "The ID of milestone to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "MilestoneID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "iterationId", + "description": "The ID of iteration to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "IterationID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "weight", + "description": "The weight value to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "labels", + "description": "Labels of the issue", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "labelIds", + "description": "The IDs of labels to be added to the board.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LabelID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -11044,7 +12414,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Project full path the branch is associated with", + "description": "Project full path the branch is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -11058,7 +12428,7 @@ }, { "name": "name", - "description": "Name of the branch", + "description": "Name of the branch.", "type": { "kind": "NON_NULL", "name": null, @@ -11072,7 +12442,7 @@ }, { "name": "ref", - "description": "Branch name or commit SHA to create branch from", + "description": "Branch name or commit SHA to create branch from.", "type": { "kind": "NON_NULL", "name": null, @@ -11106,7 +12476,7 @@ "fields": [ { "name": "branch", - "description": "Branch after mutation", + "description": "Branch after mutation.", "args": [ ], @@ -11174,7 +12544,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Full path of the associated project for this cluster agent", + "description": "Full path of the associated project for this cluster agent.", "type": { "kind": "NON_NULL", "name": null, @@ -11188,7 +12558,7 @@ }, { "name": "name", - "description": "Name of the cluster agent", + "description": "Name of the cluster agent.", "type": { "kind": "NON_NULL", "name": null, @@ -11236,7 +12606,7 @@ }, { "name": "clusterAgent", - "description": "Cluster agent created after mutation", + "description": "Cluster agent created after mutation.", "args": [ ], @@ -11303,42 +12673,14 @@ "defaultValue": null }, { - "name": "name", - "description": "Name of the compliance framework.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "description", - "description": "Description of the compliance framework.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "color", - "description": "Color to represent the compliance framework as a hexadecimal value. e.g. #ABC123.", + "name": "params", + "description": "Parameters to update the compliance framework with.", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", + "kind": "INPUT_OBJECT", + "name": "ComplianceFrameworkInput", "ofType": null } }, @@ -11434,7 +12776,7 @@ "inputFields": [ { "name": "groupPath", - "description": "Namespace full path the emoji is associated with", + "description": "Namespace full path the emoji is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -11448,7 +12790,7 @@ }, { "name": "name", - "description": "Name of the emoji", + "description": "Name of the emoji.", "type": { "kind": "NON_NULL", "name": null, @@ -11462,7 +12804,7 @@ }, { "name": "url", - "description": "Location of the emoji file", + "description": "Location of the emoji file.", "type": { "kind": "NON_NULL", "name": null, @@ -11510,7 +12852,7 @@ }, { "name": "customEmoji", - "description": "The new custom emoji", + "description": "The new custom emoji.", "args": [ ], @@ -11564,7 +12906,7 @@ "inputFields": [ { "name": "name", - "description": "Name of the segment", + "description": "Name of the segment.", "type": { "kind": "NON_NULL", "name": null, @@ -11578,7 +12920,7 @@ }, { "name": "groupIds", - "description": "The array of group IDs to set for the segment", + "description": "The array of group IDs to set for the segment.", "type": { "kind": "LIST", "name": null, @@ -11656,7 +12998,7 @@ }, { "name": "segment", - "description": "The segment after mutation", + "description": "The segment after mutation.", "args": [ ], @@ -11684,7 +13026,7 @@ "inputFields": [ { "name": "noteableId", - "description": "The global ID of the resource to add a note to", + "description": "The global ID of the resource to add a note to.", "type": { "kind": "NON_NULL", "name": null, @@ -11796,7 +13138,7 @@ }, { "name": "note", - "description": "The note after mutation", + "description": "The note after mutation.", "args": [ ], @@ -11824,7 +13166,7 @@ "inputFields": [ { "name": "groupPath", - "description": "The group the epic to mutate is in", + "description": "The group the epic to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -11838,7 +13180,7 @@ }, { "name": "title", - "description": "The title of the epic", + "description": "The title of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -11848,7 +13190,7 @@ }, { "name": "description", - "description": "The description of the epic", + "description": "The description of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -11858,7 +13200,7 @@ }, { "name": "confidential", - "description": "Indicates if the epic is confidential", + "description": "Indicates if the epic is confidential.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -11868,7 +13210,7 @@ }, { "name": "startDateFixed", - "description": "The start date of the epic", + "description": "The start date of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -11878,7 +13220,7 @@ }, { "name": "dueDateFixed", - "description": "The end date of the epic", + "description": "The end date of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -11888,7 +13230,7 @@ }, { "name": "startDateIsFixed", - "description": "Indicates start date should be sourced from start_date_fixed field not the issue milestones", + "description": "Indicates start date should be sourced from start_date_fixed field not the issue milestones.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -11898,7 +13240,7 @@ }, { "name": "dueDateIsFixed", - "description": "Indicates end date should be sourced from due_date_fixed field not the issue milestones", + "description": "Indicates end date should be sourced from due_date_fixed field not the issue milestones.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -11978,7 +13320,7 @@ }, { "name": "epic", - "description": "The created epic", + "description": "The created epic.", "args": [ ], @@ -12032,7 +13374,7 @@ "inputFields": [ { "name": "noteableId", - "description": "The global ID of the resource to add a note to", + "description": "The global ID of the resource to add a note to.", "type": { "kind": "NON_NULL", "name": null, @@ -12144,7 +13486,7 @@ }, { "name": "note", - "description": "The note after mutation", + "description": "The note after mutation.", "args": [ ], @@ -12212,7 +13554,7 @@ }, { "name": "projectPath", - "description": "Project full path the issue is associated with", + "description": "Project full path the issue is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -12226,7 +13568,7 @@ }, { "name": "iid", - "description": "The IID (internal ID) of a project issue. Only admins and project owners can modify", + "description": "The IID (internal ID) of a project issue. Only admins and project owners can modify.", "type": { "kind": "SCALAR", "name": "Int", @@ -12250,7 +13592,7 @@ }, { "name": "milestoneId", - "description": "The ID of the milestone to assign to the issue. On update milestone will be removed if set to null", + "description": "The ID of the milestone to assign to the issue. On update milestone will be removed if set to null.", "type": { "kind": "SCALAR", "name": "MilestoneID", @@ -12278,7 +13620,7 @@ }, { "name": "labelIds", - "description": "The IDs of labels to be added to the issue", + "description": "The IDs of labels to be added to the issue.", "type": { "kind": "LIST", "name": null, @@ -12296,7 +13638,7 @@ }, { "name": "createdAt", - "description": "Timestamp when the issue was created. Available only for admins and project owners", + "description": "Timestamp when the issue was created. Available only for admins and project owners.", "type": { "kind": "SCALAR", "name": "Time", @@ -12306,7 +13648,7 @@ }, { "name": "mergeRequestToResolveDiscussionsOf", - "description": "The IID of a merge request for which to resolve discussions", + "description": "The IID of a merge request for which to resolve discussions.", "type": { "kind": "SCALAR", "name": "MergeRequestID", @@ -12316,7 +13658,7 @@ }, { "name": "discussionToResolve", - "description": "The ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of`", + "description": "The ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of`.", "type": { "kind": "SCALAR", "name": "String", @@ -12326,7 +13668,7 @@ }, { "name": "assigneeIds", - "description": "The array of user IDs to assign to the issue", + "description": "The array of user IDs to assign to the issue.", "type": { "kind": "LIST", "name": null, @@ -12344,7 +13686,7 @@ }, { "name": "healthStatus", - "description": "The desired health status", + "description": "The desired health status.", "type": { "kind": "ENUM", "name": "HealthStatus", @@ -12354,7 +13696,7 @@ }, { "name": "weight", - "description": "The weight of the issue", + "description": "The weight of the issue.", "type": { "kind": "SCALAR", "name": "Int", @@ -12364,7 +13706,7 @@ }, { "name": "epicId", - "description": "The ID of an epic to associate the issue with", + "description": "The ID of an epic to associate the issue with.", "type": { "kind": "SCALAR", "name": "EpicID", @@ -12434,7 +13776,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -12462,7 +13804,7 @@ "inputFields": [ { "name": "groupPath", - "description": "The target group for the iteration", + "description": "The target group for the iteration.", "type": { "kind": "SCALAR", "name": "ID", @@ -12472,7 +13814,7 @@ }, { "name": "projectPath", - "description": "The target project for the iteration", + "description": "The target project for the iteration.", "type": { "kind": "SCALAR", "name": "ID", @@ -12482,7 +13824,7 @@ }, { "name": "title", - "description": "The title of the iteration", + "description": "The title of the iteration.", "type": { "kind": "SCALAR", "name": "String", @@ -12492,7 +13834,7 @@ }, { "name": "description", - "description": "The description of the iteration", + "description": "The description of the iteration.", "type": { "kind": "SCALAR", "name": "String", @@ -12502,7 +13844,7 @@ }, { "name": "startDate", - "description": "The start date of the iteration", + "description": "The start date of the iteration.", "type": { "kind": "SCALAR", "name": "String", @@ -12512,7 +13854,7 @@ }, { "name": "dueDate", - "description": "The end date of the iteration", + "description": "The end date of the iteration.", "type": { "kind": "SCALAR", "name": "String", @@ -12582,7 +13924,7 @@ }, { "name": "iteration", - "description": "The created iteration", + "description": "The created iteration.", "args": [ ], @@ -12610,7 +13952,7 @@ "inputFields": [ { "name": "noteableId", - "description": "The global ID of the resource to add a note to", + "description": "The global ID of the resource to add a note to.", "type": { "kind": "NON_NULL", "name": null, @@ -12648,7 +13990,7 @@ }, { "name": "discussionId", - "description": "The global ID of the discussion this note is in reply to", + "description": "The global ID of the discussion this note is in reply to.", "type": { "kind": "SCALAR", "name": "DiscussionID", @@ -12718,7 +14060,7 @@ }, { "name": "note", - "description": "The note after mutation", + "description": "The note after mutation.", "args": [ ], @@ -12746,7 +14088,7 @@ "inputFields": [ { "name": "title", - "description": "Title of the requirement", + "description": "Title of the requirement.", "type": { "kind": "SCALAR", "name": "String", @@ -12756,7 +14098,7 @@ }, { "name": "description", - "description": "Description of the requirement", + "description": "Description of the requirement.", "type": { "kind": "SCALAR", "name": "String", @@ -12766,7 +14108,7 @@ }, { "name": "projectPath", - "description": "Full project path the requirement is associated with", + "description": "Full project path the requirement is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -12840,7 +14182,7 @@ }, { "name": "requirement", - "description": "Requirement after mutation", + "description": "Requirement after mutation.", "args": [ ], @@ -12868,7 +14210,7 @@ "inputFields": [ { "name": "title", - "description": "Title of the snippet", + "description": "Title of the snippet.", "type": { "kind": "NON_NULL", "name": null, @@ -12882,7 +14224,7 @@ }, { "name": "description", - "description": "Description of the snippet", + "description": "Description of the snippet.", "type": { "kind": "SCALAR", "name": "String", @@ -12892,7 +14234,7 @@ }, { "name": "visibilityLevel", - "description": "The visibility level of the snippet", + "description": "The visibility level of the snippet.", "type": { "kind": "NON_NULL", "name": null, @@ -12906,7 +14248,7 @@ }, { "name": "projectPath", - "description": "The project full path the snippet is associated with", + "description": "The project full path the snippet is associated with.", "type": { "kind": "SCALAR", "name": "ID", @@ -12916,7 +14258,7 @@ }, { "name": "uploadedFiles", - "description": "The paths to files uploaded in the snippet description", + "description": "The paths to files uploaded in the snippet description.", "type": { "kind": "LIST", "name": null, @@ -12934,7 +14276,7 @@ }, { "name": "blobActions", - "description": "Actions to perform over the snippet repository and blobs", + "description": "Actions to perform over the snippet repository and blobs.", "type": { "kind": "LIST", "name": null, @@ -13012,7 +14354,7 @@ }, { "name": "snippet", - "description": "The snippet after mutation", + "description": "The snippet after mutation.", "args": [ ], @@ -13026,7 +14368,7 @@ }, { "name": "spam", - "description": "Indicates whether the operation returns a record detected as spam", + "description": "Indicates whether the operation returns a record detected as spam.", "args": [ ], @@ -13054,7 +14396,7 @@ "inputFields": [ { "name": "title", - "description": "The test case title", + "description": "The test case title.", "type": { "kind": "NON_NULL", "name": null, @@ -13068,7 +14410,7 @@ }, { "name": "description", - "description": "The test case description", + "description": "The test case description.", "type": { "kind": "SCALAR", "name": "String", @@ -13096,7 +14438,7 @@ }, { "name": "projectPath", - "description": "The project full path to create the test case", + "description": "The project full path to create the test case.", "type": { "kind": "NON_NULL", "name": null, @@ -13170,7 +14512,7 @@ }, { "name": "testCase", - "description": "The test case created", + "description": "The test case created.", "args": [ ], @@ -15596,6 +16938,124 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "DataVisualizationColorEnum", + "description": "Color of the data visualization palette", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "BLUE", + "description": "Blue color", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ORANGE", + "description": "Orange color", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "AQUA", + "description": "Aqua color", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GREEN", + "description": "Green color", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MAGENTA", + "description": "Magenta color", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "DataVisualizationWeightEnum", + "description": "Weight of the data visualization palette", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "WEIGHT_50", + "description": "50 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_100", + "description": "100 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_200", + "description": "200 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_300", + "description": "300 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_400", + "description": "400 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_500", + "description": "500 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_600", + "description": "600 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_700", + "description": "700 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_800", + "description": "800 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_900", + "description": "900 weight", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEIGHT_950", + "description": "950 weight", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "SCALAR", "name": "Date", "description": "Date represented in ISO 8601", @@ -15613,7 +17073,7 @@ "inputFields": [ { "name": "id", - "description": "Global ID of the annotation to delete", + "description": "Global ID of the annotation to delete.", "type": { "kind": "NON_NULL", "name": null, @@ -15701,7 +17161,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the segment", + "description": "ID of the segment.", "type": { "kind": "NON_NULL", "name": null, @@ -16204,7 +17664,7 @@ "args": [ { "name": "earlierOrEqualToSha", - "description": "The SHA256 of the most recent acceptable version", + "description": "The SHA256 of the most recent acceptable version.", "type": { "kind": "SCALAR", "name": "String", @@ -16214,7 +17674,7 @@ }, { "name": "earlierOrEqualToId", - "description": "The Global ID of the most recent acceptable version", + "description": "The Global ID of the most recent acceptable version.", "type": { "kind": "SCALAR", "name": "DesignManagementVersionID", @@ -16663,7 +18123,7 @@ "args": [ { "name": "id", - "description": "Find a design by its ID", + "description": "Find a design by its ID.", "type": { "kind": "SCALAR", "name": "DesignManagementDesignID", @@ -16673,7 +18133,7 @@ }, { "name": "filename", - "description": "Find a design by its filename", + "description": "Find a design by its filename.", "type": { "kind": "SCALAR", "name": "String", @@ -16696,7 +18156,7 @@ "args": [ { "name": "id", - "description": "The Global ID of the design at this version", + "description": "The Global ID of the design at this version.", "type": { "kind": "NON_NULL", "name": null, @@ -16723,7 +18183,7 @@ "args": [ { "name": "ids", - "description": "Filters designs by their ID", + "description": "Filters designs by their ID.", "type": { "kind": "LIST", "name": null, @@ -16741,7 +18201,7 @@ }, { "name": "filenames", - "description": "Filters designs by their filename", + "description": "Filters designs by their filename.", "type": { "kind": "LIST", "name": null, @@ -16862,7 +18322,7 @@ "args": [ { "name": "sha", - "description": "The SHA256 of a specific version", + "description": "The SHA256 of a specific version.", "type": { "kind": "SCALAR", "name": "String", @@ -16872,7 +18332,7 @@ }, { "name": "id", - "description": "The Global ID of the version", + "description": "The Global ID of the version.", "type": { "kind": "SCALAR", "name": "DesignManagementVersionID", @@ -16895,7 +18355,7 @@ "args": [ { "name": "earlierOrEqualToSha", - "description": "The SHA256 of the most recent acceptable version", + "description": "The SHA256 of the most recent acceptable version.", "type": { "kind": "SCALAR", "name": "String", @@ -16905,7 +18365,7 @@ }, { "name": "earlierOrEqualToId", - "description": "The Global ID of the most recent acceptable version", + "description": "The Global ID of the most recent acceptable version.", "type": { "kind": "SCALAR", "name": "DesignManagementVersionID", @@ -17324,7 +18784,7 @@ "args": [ { "name": "id", - "description": "The Global ID of the design at this version", + "description": "The Global ID of the design at this version.", "type": { "kind": "NON_NULL", "name": null, @@ -17351,7 +18811,7 @@ "args": [ { "name": "id", - "description": "The Global ID of the version", + "description": "The Global ID of the version.", "type": { "kind": "NON_NULL", "name": null, @@ -17388,7 +18848,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project where the issue is to upload designs for", + "description": "The project where the issue is to upload designs for.", "type": { "kind": "NON_NULL", "name": null, @@ -17402,7 +18862,7 @@ }, { "name": "iid", - "description": "The IID of the issue to modify designs for", + "description": "The IID of the issue to modify designs for.", "type": { "kind": "NON_NULL", "name": null, @@ -17416,7 +18876,7 @@ }, { "name": "filenames", - "description": "The filenames of the designs to delete", + "description": "The filenames of the designs to delete.", "type": { "kind": "NON_NULL", "name": null, @@ -17498,7 +18958,7 @@ }, { "name": "version", - "description": "The new version in which the designs are deleted", + "description": "The new version in which the designs are deleted.", "args": [ ], @@ -17546,7 +19006,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the design to move", + "description": "ID of the design to move.", "type": { "kind": "NON_NULL", "name": null, @@ -17560,7 +19020,7 @@ }, { "name": "previous", - "description": "ID of the immediately preceding design", + "description": "ID of the immediately preceding design.", "type": { "kind": "SCALAR", "name": "DesignManagementDesignID", @@ -17570,7 +19030,7 @@ }, { "name": "next", - "description": "ID of the immediately following design", + "description": "ID of the immediately following design.", "type": { "kind": "SCALAR", "name": "DesignManagementDesignID", @@ -17614,7 +19074,7 @@ }, { "name": "designCollection", - "description": "The current state of the collection", + "description": "The current state of the collection.", "args": [ ], @@ -17668,7 +19128,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project where the issue is to upload designs for", + "description": "The project where the issue is to upload designs for.", "type": { "kind": "NON_NULL", "name": null, @@ -17682,7 +19142,7 @@ }, { "name": "iid", - "description": "The IID of the issue to modify designs for", + "description": "The IID of the issue to modify designs for.", "type": { "kind": "NON_NULL", "name": null, @@ -17696,7 +19156,7 @@ }, { "name": "files", - "description": "The files to upload", + "description": "The files to upload.", "type": { "kind": "NON_NULL", "name": null, @@ -17752,7 +19212,7 @@ }, { "name": "designs", - "description": "The designs that were uploaded by the mutation", + "description": "The designs that were uploaded by the mutation.", "args": [ ], @@ -17857,7 +19317,7 @@ "args": [ { "name": "id", - "description": "The ID of the DesignAtVersion", + "description": "The ID of the DesignAtVersion.", "type": { "kind": "SCALAR", "name": "DesignManagementDesignAtVersionID", @@ -17867,7 +19327,7 @@ }, { "name": "designId", - "description": "The ID of a specific design", + "description": "The ID of a specific design.", "type": { "kind": "SCALAR", "name": "DesignManagementDesignID", @@ -17877,7 +19337,7 @@ }, { "name": "filename", - "description": "The filename of a specific design", + "description": "The filename of a specific design.", "type": { "kind": "SCALAR", "name": "String", @@ -17961,7 +19421,7 @@ "args": [ { "name": "ids", - "description": "Filters designs by their ID", + "description": "Filters designs by their ID.", "type": { "kind": "LIST", "name": null, @@ -17979,7 +19439,7 @@ }, { "name": "filenames", - "description": "Filters designs by their filename", + "description": "Filters designs by their filename.", "type": { "kind": "LIST", "name": null, @@ -18247,7 +19707,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the board to destroy", + "description": "The global ID of the board to destroy.", "type": { "kind": "NON_NULL", "name": null, @@ -18383,7 +19843,7 @@ "fields": [ { "name": "board", - "description": "The board after mutation", + "description": "The board after mutation.", "args": [ ], @@ -18451,7 +19911,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the compliance framework to destroy", + "description": "The global ID of the compliance framework to destroy.", "type": { "kind": "NON_NULL", "name": null, @@ -18715,7 +20175,7 @@ }, { "name": "deletedTagNames", - "description": "Deleted container repository tags", + "description": "Deleted container repository tags.", "args": [ ], @@ -18781,7 +20241,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the note to destroy", + "description": "The global ID of the note to destroy.", "type": { "kind": "NON_NULL", "name": null, @@ -18855,7 +20315,7 @@ }, { "name": "note", - "description": "The note after mutation", + "description": "The note after mutation.", "args": [ ], @@ -18883,7 +20343,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the snippet to destroy", + "description": "The global ID of the snippet to destroy.", "type": { "kind": "NON_NULL", "name": null, @@ -18957,7 +20417,7 @@ }, { "name": "snippet", - "description": "The snippet after mutation", + "description": "The snippet after mutation.", "args": [ ], @@ -20492,7 +21952,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the discussion", + "description": "The global ID of the discussion.", "type": { "kind": "NON_NULL", "name": null, @@ -20506,7 +21966,7 @@ }, { "name": "resolve", - "description": "Will resolve the discussion when true, and unresolve the discussion when false", + "description": "Will resolve the discussion when true, and unresolve the discussion when false.", "type": { "kind": "NON_NULL", "name": null, @@ -20554,7 +22014,7 @@ }, { "name": "discussion", - "description": "The discussion after mutation", + "description": "The discussion after mutation.", "args": [ ], @@ -20608,7 +22068,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the vulnerability to be dismissed", + "description": "ID of the vulnerability to be dismissed.", "type": { "kind": "NON_NULL", "name": null, @@ -20622,7 +22082,7 @@ }, { "name": "comment", - "description": "Reason why vulnerability should be dismissed", + "description": "Comment why vulnerability should be dismissed.", "type": { "kind": "SCALAR", "name": "String", @@ -20631,6 +22091,16 @@ "defaultValue": null }, { + "name": "dismissalReason", + "description": "Reason why vulnerability should be dismissed.", + "type": { + "kind": "ENUM", + "name": "VulnerabilityDismissalReason", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -20692,7 +22162,7 @@ }, { "name": "vulnerability", - "description": "The vulnerability after dismissal", + "description": "The vulnerability after dismissal.", "args": [ ], @@ -20919,7 +22389,7 @@ "args": [ { "name": "path", - "description": "Path to a file which defines metrics dashboard eg: 'config/prometheus/common_metrics.yml'", + "description": "Path to a file which defines metrics dashboard eg: 'config/prometheus/common_metrics.yml'.", "type": { "kind": "NON_NULL", "name": null, @@ -21132,7 +22602,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the environment to update", + "description": "The global ID of the environment to update.", "type": { "kind": "NON_NULL", "name": null, @@ -21146,7 +22616,7 @@ }, { "name": "weight", - "description": "The weight of the Canary Ingress", + "description": "The weight of the Canary Ingress.", "type": { "kind": "NON_NULL", "name": null, @@ -21275,7 +22745,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -21285,7 +22755,7 @@ }, { "name": "iid", - "description": "IID of the epic, e.g., \"1\"", + "description": "IID of the epic, e.g., \"1\".", "type": { "kind": "SCALAR", "name": "ID", @@ -21295,7 +22765,7 @@ }, { "name": "iids", - "description": "List of IIDs of epics, e.g., [1, 2]", + "description": "List of IIDs of epics, e.g., [1, 2].", "type": { "kind": "LIST", "name": null, @@ -21313,7 +22783,7 @@ }, { "name": "state", - "description": "Filter epics by state", + "description": "Filter epics by state.", "type": { "kind": "ENUM", "name": "EpicState", @@ -21323,7 +22793,7 @@ }, { "name": "search", - "description": "Search query for epic title or description", + "description": "Search query for epic title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -21333,7 +22803,7 @@ }, { "name": "sort", - "description": "List epics by sort order", + "description": "List epics by sort order.", "type": { "kind": "ENUM", "name": "EpicSort", @@ -21343,7 +22813,7 @@ }, { "name": "authorUsername", - "description": "Filter epics by author", + "description": "Filter epics by author.", "type": { "kind": "SCALAR", "name": "String", @@ -21353,7 +22823,7 @@ }, { "name": "labelName", - "description": "Filter epics by labels", + "description": "Filter epics by labels.", "type": { "kind": "LIST", "name": null, @@ -21371,7 +22841,7 @@ }, { "name": "milestoneTitle", - "description": "Filter epics by milestone title, computed from epic's issues", + "description": "Filter epics by milestone title, computed from epic's issues.", "type": { "kind": "SCALAR", "name": "String", @@ -21381,7 +22851,7 @@ }, { "name": "iidStartsWith", - "description": "Filter epics by IID for autocomplete", + "description": "Filter epics by IID for autocomplete.", "type": { "kind": "SCALAR", "name": "String", @@ -21391,7 +22861,7 @@ }, { "name": "includeDescendantGroups", - "description": "Include epics from descendant groups", + "description": "Include epics from descendant groups.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -21400,6 +22870,16 @@ "defaultValue": "true" }, { + "name": "confidential", + "description": "Filter epics by given confidentiality.", + "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": { @@ -22390,7 +23870,7 @@ "inputFields": [ { "name": "iid", - "description": "The IID of the epic to mutate", + "description": "The IID of the epic to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -22404,7 +23884,7 @@ }, { "name": "groupPath", - "description": "The group the epic to mutate belongs to", + "description": "The group the epic to mutate belongs to.", "type": { "kind": "NON_NULL", "name": null, @@ -22418,7 +23898,7 @@ }, { "name": "projectPath", - "description": "The full path of the project the issue belongs to", + "description": "The full path of the project the issue belongs to.", "type": { "kind": "NON_NULL", "name": null, @@ -22432,7 +23912,7 @@ }, { "name": "issueIid", - "description": "The IID of the issue to be added", + "description": "The IID of the issue to be added.", "type": { "kind": "NON_NULL", "name": null, @@ -22480,7 +23960,7 @@ }, { "name": "epic", - "description": "The epic after mutation", + "description": "The epic after mutation.", "args": [ ], @@ -22494,7 +23974,7 @@ }, { "name": "epicIssue", - "description": "The epic-issue relation", + "description": "The epic-issue relation.", "args": [ ], @@ -22547,7 +24027,7 @@ "fields": [ { "name": "id", - "description": "Global ID of the board", + "description": "Global ID of the board.", "args": [ ], @@ -22564,8 +24044,71 @@ "deprecationReason": null }, { + "name": "lists", + "description": "Epic board lists.", + "args": [ + { + "name": "id", + "description": "Find an epic board list by ID.", + "type": { + "kind": "SCALAR", + "name": "BoardsEpicListID", + "ofType": null + }, + "defaultValue": null + }, + { + "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": "EpicListConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "name", - "description": "Name of the board", + "description": "Name of the board.", "args": [ ], @@ -23139,6 +24682,20 @@ "deprecationReason": null }, { + "name": "createNoteEmail", + "description": "User specific email address for the issue", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "createdAt", "description": "Timestamp of when the issue was created", "args": [ @@ -24291,6 +25848,266 @@ }, { "kind": "OBJECT", + "name": "EpicList", + "description": "Represents an epic board list", + "fields": [ + { + "name": "epics", + "description": "List epics.", + "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": "EpicConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "Global ID of the board list.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BoardsEpicListID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "label", + "description": "Label of the list.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Label", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "listType", + "description": "Type of the list.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "position", + "description": "Position of the list within the board.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "title", + "description": "Title of the list.", + "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": "EpicListConnection", + "description": "The connection type for EpicList.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpicListEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpicList", + "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": "EpicListEdge", + "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": "EpicList", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "EpicPermissions", "description": "Check permissions for the current user on an epic", "fields": [ @@ -24454,7 +26271,7 @@ "inputFields": [ { "name": "iid", - "description": "The IID of the epic to mutate", + "description": "The IID of the epic to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -24468,7 +26285,7 @@ }, { "name": "groupPath", - "description": "The group the epic to mutate belongs to", + "description": "The group the epic to mutate belongs to.", "type": { "kind": "NON_NULL", "name": null, @@ -24482,7 +26299,7 @@ }, { "name": "subscribedState", - "description": "The desired state of the subscription", + "description": "The desired state of the subscription.", "type": { "kind": "NON_NULL", "name": null, @@ -24530,7 +26347,7 @@ }, { "name": "epic", - "description": "The epic after mutation", + "description": "The epic after mutation.", "args": [ ], @@ -24726,7 +26543,7 @@ "inputFields": [ { "name": "baseEpicId", - "description": "The ID of the base epic of the tree", + "description": "The ID of the base epic of the tree.", "type": { "kind": "NON_NULL", "name": null, @@ -24740,7 +26557,7 @@ }, { "name": "moved", - "description": "Parameters for updating the tree positions", + "description": "Parameters for updating the tree positions.", "type": { "kind": "NON_NULL", "name": null, @@ -24854,6 +26671,142 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "ExportRequirementsInput", + "description": "Autogenerated input type of ExportRequirements", + "fields": null, + "inputFields": [ + { + "name": "sort", + "description": "List requirements by sort order.", + "type": { + "kind": "ENUM", + "name": "Sort", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "state", + "description": "Filter requirements by state.", + "type": { + "kind": "ENUM", + "name": "RequirementState", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "search", + "description": "Search query for requirement title.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "authorUsername", + "description": "Filter requirements by author username.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "projectPath", + "description": "Full project path the requirements are associated with.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "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": "ExportRequirementsPayload", + "description": "Autogenerated return type of ExportRequirements", + "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 + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "ExternalIssue", "description": "Represents an external issue", @@ -25059,7 +27012,7 @@ "args": [ { "name": "ids", - "description": "Filters registries by their ID", + "description": "Filters registries by their ID.", "type": { "kind": "LIST", "name": null, @@ -25158,7 +27111,7 @@ "args": [ { "name": "ids", - "description": "Filters registries by their ID", + "description": "Filters registries by their ID.", "type": { "kind": "LIST", "name": null, @@ -25346,7 +27299,7 @@ "args": [ { "name": "ids", - "description": "Filters registries by their ID", + "description": "Filters registries by their ID.", "type": { "kind": "LIST", "name": null, @@ -25431,7 +27384,7 @@ "args": [ { "name": "ids", - "description": "Filters registries by their ID", + "description": "Filters registries by their ID.", "type": { "kind": "LIST", "name": null, @@ -25712,7 +27665,7 @@ "args": [ { "name": "id", - "description": "The board's ID", + "description": "The board's ID.", "type": { "kind": "NON_NULL", "name": null, @@ -25739,7 +27692,7 @@ "args": [ { "name": "id", - "description": "Find a board by its ID", + "description": "Find a board by its ID.", "type": { "kind": "SCALAR", "name": "BoardID", @@ -25802,7 +27755,7 @@ "args": [ { "name": "startDate", - "description": "First day for which to fetch code coverage activity (maximum time window is set to 90 days)", + "description": "First day for which to fetch code coverage activity (maximum time window is set to 90 days).", "type": { "kind": "NON_NULL", "name": null, @@ -25865,7 +27818,7 @@ }, { "name": "complianceFrameworks", - "description": "Compliance frameworks available to projects in this namespace Available only when feature flag `ff_custom_compliance_frameworks` is enabled.", + "description": "Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled.", "args": [ { "name": "after", @@ -25906,6 +27859,16 @@ "ofType": null }, "defaultValue": null + }, + { + "name": "id", + "description": "Global ID of a specific compliance framework to return.", + "type": { + "kind": "SCALAR", + "name": "ComplianceManagementFrameworkID", + "ofType": null + }, + "defaultValue": null } ], "type": { @@ -25922,7 +27885,7 @@ "args": [ { "name": "name", - "description": "Filter the container repositories by their name", + "description": "Filter the container repositories by their name.", "type": { "kind": "SCALAR", "name": "String", @@ -26136,7 +28099,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -26146,7 +28109,7 @@ }, { "name": "iid", - "description": "IID of the epic, e.g., \"1\"", + "description": "IID of the epic, e.g., \"1\".", "type": { "kind": "SCALAR", "name": "ID", @@ -26156,7 +28119,7 @@ }, { "name": "iids", - "description": "List of IIDs of epics, e.g., [1, 2]", + "description": "List of IIDs of epics, e.g., [1, 2].", "type": { "kind": "LIST", "name": null, @@ -26174,7 +28137,7 @@ }, { "name": "state", - "description": "Filter epics by state", + "description": "Filter epics by state.", "type": { "kind": "ENUM", "name": "EpicState", @@ -26184,7 +28147,7 @@ }, { "name": "search", - "description": "Search query for epic title or description", + "description": "Search query for epic title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -26194,7 +28157,7 @@ }, { "name": "sort", - "description": "List epics by sort order", + "description": "List epics by sort order.", "type": { "kind": "ENUM", "name": "EpicSort", @@ -26204,7 +28167,7 @@ }, { "name": "authorUsername", - "description": "Filter epics by author", + "description": "Filter epics by author.", "type": { "kind": "SCALAR", "name": "String", @@ -26214,7 +28177,7 @@ }, { "name": "labelName", - "description": "Filter epics by labels", + "description": "Filter epics by labels.", "type": { "kind": "LIST", "name": null, @@ -26232,7 +28195,7 @@ }, { "name": "milestoneTitle", - "description": "Filter epics by milestone title, computed from epic's issues", + "description": "Filter epics by milestone title, computed from epic's issues.", "type": { "kind": "SCALAR", "name": "String", @@ -26242,7 +28205,7 @@ }, { "name": "iidStartsWith", - "description": "Filter epics by IID for autocomplete", + "description": "Filter epics by IID for autocomplete.", "type": { "kind": "SCALAR", "name": "String", @@ -26252,13 +28215,23 @@ }, { "name": "includeDescendantGroups", - "description": "Include epics from descendant groups", + "description": "Include epics from descendant groups.", "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, "defaultValue": "true" + }, + { + "name": "confidential", + "description": "Filter epics by given confidentiality.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null } ], "type": { @@ -26275,7 +28248,7 @@ "args": [ { "name": "id", - "description": "Find an epic board by ID", + "description": "Find an epic board by ID.", "type": { "kind": "NON_NULL", "name": null, @@ -26375,7 +28348,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -26385,7 +28358,7 @@ }, { "name": "iid", - "description": "IID of the epic, e.g., \"1\"", + "description": "IID of the epic, e.g., \"1\".", "type": { "kind": "SCALAR", "name": "ID", @@ -26395,7 +28368,7 @@ }, { "name": "iids", - "description": "List of IIDs of epics, e.g., [1, 2]", + "description": "List of IIDs of epics, e.g., [1, 2].", "type": { "kind": "LIST", "name": null, @@ -26413,7 +28386,7 @@ }, { "name": "state", - "description": "Filter epics by state", + "description": "Filter epics by state.", "type": { "kind": "ENUM", "name": "EpicState", @@ -26423,7 +28396,7 @@ }, { "name": "search", - "description": "Search query for epic title or description", + "description": "Search query for epic title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -26433,7 +28406,7 @@ }, { "name": "sort", - "description": "List epics by sort order", + "description": "List epics by sort order.", "type": { "kind": "ENUM", "name": "EpicSort", @@ -26443,7 +28416,7 @@ }, { "name": "authorUsername", - "description": "Filter epics by author", + "description": "Filter epics by author.", "type": { "kind": "SCALAR", "name": "String", @@ -26453,7 +28426,7 @@ }, { "name": "labelName", - "description": "Filter epics by labels", + "description": "Filter epics by labels.", "type": { "kind": "LIST", "name": null, @@ -26471,7 +28444,7 @@ }, { "name": "milestoneTitle", - "description": "Filter epics by milestone title, computed from epic's issues", + "description": "Filter epics by milestone title, computed from epic's issues.", "type": { "kind": "SCALAR", "name": "String", @@ -26481,7 +28454,7 @@ }, { "name": "iidStartsWith", - "description": "Filter epics by IID for autocomplete", + "description": "Filter epics by IID for autocomplete.", "type": { "kind": "SCALAR", "name": "String", @@ -26491,7 +28464,7 @@ }, { "name": "includeDescendantGroups", - "description": "Include epics from descendant groups", + "description": "Include epics from descendant groups.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -26500,6 +28473,16 @@ "defaultValue": "true" }, { + "name": "confidential", + "description": "Filter epics by given confidentiality.", + "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": { @@ -26604,7 +28587,7 @@ "args": [ { "name": "search", - "description": "Search query", + "description": "Search query.", "type": { "kind": "SCALAR", "name": "String", @@ -26614,7 +28597,7 @@ }, { "name": "relations", - "description": "Filter members by the given member relations", + "description": "Filter members by the given member relations.", "type": { "kind": "LIST", "name": null, @@ -26735,7 +28718,7 @@ "args": [ { "name": "iid", - "description": "IID of the issue. For example, \"1\"", + "description": "IID of the issue. For example, \"1\".", "type": { "kind": "SCALAR", "name": "String", @@ -26745,7 +28728,7 @@ }, { "name": "iids", - "description": "List of IIDs of issues. For example, [1, 2]", + "description": "List of IIDs of issues. For example, [1, 2].", "type": { "kind": "LIST", "name": null, @@ -26763,7 +28746,7 @@ }, { "name": "labelName", - "description": "Labels applied to this issue", + "description": "Labels applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -26777,7 +28760,7 @@ }, { "name": "milestoneTitle", - "description": "Milestone applied to this issue", + "description": "Milestone applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -26791,7 +28774,7 @@ }, { "name": "authorUsername", - "description": "Username of the author of the issue", + "description": "Username of the author of the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -26801,7 +28784,7 @@ }, { "name": "assigneeUsername", - "description": "Username of a user assigned to the issue", + "description": "Username of a user assigned to the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -26811,7 +28794,7 @@ }, { "name": "assigneeUsernames", - "description": "Usernames of users assigned to the issue", + "description": "Usernames of users assigned to the issue.", "type": { "kind": "LIST", "name": null, @@ -26829,7 +28812,7 @@ }, { "name": "assigneeId", - "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported", + "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported.", "type": { "kind": "SCALAR", "name": "String", @@ -26839,7 +28822,7 @@ }, { "name": "createdBefore", - "description": "Issues created before this date", + "description": "Issues created before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -26849,7 +28832,7 @@ }, { "name": "createdAfter", - "description": "Issues created after this date", + "description": "Issues created after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -26859,7 +28842,7 @@ }, { "name": "updatedBefore", - "description": "Issues updated before this date", + "description": "Issues updated before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -26869,7 +28852,7 @@ }, { "name": "updatedAfter", - "description": "Issues updated after this date", + "description": "Issues updated after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -26879,7 +28862,7 @@ }, { "name": "closedBefore", - "description": "Issues closed before this date", + "description": "Issues closed before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -26889,7 +28872,7 @@ }, { "name": "closedAfter", - "description": "Issues closed after this date", + "description": "Issues closed after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -26899,7 +28882,7 @@ }, { "name": "search", - "description": "Search query for issue title or description", + "description": "Search query for issue title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -26909,7 +28892,7 @@ }, { "name": "types", - "description": "Filter issues by the given issue types", + "description": "Filter issues by the given issue types.", "type": { "kind": "LIST", "name": null, @@ -26927,7 +28910,7 @@ }, { "name": "state", - "description": "Current state of this issue", + "description": "Current state of this issue.", "type": { "kind": "ENUM", "name": "IssuableState", @@ -26937,7 +28920,7 @@ }, { "name": "sort", - "description": "Sort issues by this criteria", + "description": "Sort issues by this criteria.", "type": { "kind": "ENUM", "name": "IssueSort", @@ -26947,7 +28930,7 @@ }, { "name": "iterationId", - "description": "Iterations applied to the issue", + "description": "Iterations applied to the issue.", "type": { "kind": "LIST", "name": null, @@ -26961,7 +28944,7 @@ }, { "name": "epicId", - "description": "ID of an epic associated with the issues, \"none\" and \"any\" values are supported", + "description": "ID of an epic associated with the issues, \"none\" and \"any\" values are supported.", "type": { "kind": "SCALAR", "name": "String", @@ -27054,7 +29037,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -27285,7 +29268,7 @@ "args": [ { "name": "iids", - "description": "Array of IIDs of merge requests, for example `[1, 2]`", + "description": "Array of IIDs of merge requests, for example `[1, 2]`.", "type": { "kind": "LIST", "name": null, @@ -27367,7 +29350,7 @@ }, { "name": "mergedAfter", - "description": "Merge requests merged after this date", + "description": "Merge requests merged after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -27377,7 +29360,7 @@ }, { "name": "mergedBefore", - "description": "Merge requests merged before this date", + "description": "Merge requests merged before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -27387,7 +29370,7 @@ }, { "name": "milestoneTitle", - "description": "Title of the milestone", + "description": "Title of the milestone.", "type": { "kind": "SCALAR", "name": "String", @@ -27397,7 +29380,7 @@ }, { "name": "sort", - "description": "Sort merge requests by this criteria", + "description": "Sort merge requests by this criteria.", "type": { "kind": "ENUM", "name": "MergeRequestSort", @@ -27417,7 +29400,7 @@ }, { "name": "assigneeUsername", - "description": "Username of the assignee", + "description": "Username of the assignee.", "type": { "kind": "SCALAR", "name": "String", @@ -27427,7 +29410,7 @@ }, { "name": "authorUsername", - "description": "Username of the author", + "description": "Username of the author.", "type": { "kind": "SCALAR", "name": "String", @@ -27510,7 +29493,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -27520,7 +29503,7 @@ }, { "name": "ids", - "description": "Array of global milestone IDs, e.g., \"gid://gitlab/Milestone/1\"", + "description": "Array of global milestone IDs, e.g., \"gid://gitlab/Milestone/1\".", "type": { "kind": "LIST", "name": null, @@ -27538,7 +29521,7 @@ }, { "name": "state", - "description": "Filter milestones by state", + "description": "Filter milestones by state.", "type": { "kind": "ENUM", "name": "MilestoneStateEnum", @@ -27548,7 +29531,7 @@ }, { "name": "title", - "description": "The title of the milestone", + "description": "The title of the milestone.", "type": { "kind": "SCALAR", "name": "String", @@ -27558,7 +29541,7 @@ }, { "name": "searchTitle", - "description": "A search string for the title", + "description": "A search string for the title.", "type": { "kind": "SCALAR", "name": "String", @@ -27568,7 +29551,7 @@ }, { "name": "containingDate", - "description": "A date that the milestone contains", + "description": "A date that the milestone contains.", "type": { "kind": "SCALAR", "name": "Time", @@ -27578,7 +29561,7 @@ }, { "name": "includeDescendants", - "description": "Also return milestones in all subgroups and subprojects", + "description": "Also return milestones in all subgroups and subprojects.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -27654,6 +29637,20 @@ "deprecationReason": null }, { + "name": "packageSettings", + "description": "The package settings for the namespace", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "PackageSettings", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "parent", "description": "Parent group", "args": [ @@ -27705,7 +29702,7 @@ "args": [ { "name": "includeSubgroups", - "description": "Include also subgroup projects", + "description": "Include also subgroup projects.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -27715,7 +29712,7 @@ }, { "name": "search", - "description": "Search project with most similar names or paths", + "description": "Search project with most similar names or paths.", "type": { "kind": "SCALAR", "name": "String", @@ -27725,7 +29722,7 @@ }, { "name": "sort", - "description": "Sort projects by this criteria", + "description": "Sort projects by this criteria.", "type": { "kind": "ENUM", "name": "NamespaceProjectSort", @@ -27735,7 +29732,7 @@ }, { "name": "hasVulnerabilities", - "description": "Returns only the projects which have vulnerabilities", + "description": "Returns only the projects which have vulnerabilities.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -27932,7 +29929,7 @@ "args": [ { "name": "startDate", - "description": "List time logs within a date range where the logged date is equal to or after startDate", + "description": "List time logs within a date range where the logged date is equal to or after startDate.", "type": { "kind": "SCALAR", "name": "Time", @@ -27942,7 +29939,7 @@ }, { "name": "endDate", - "description": "List time logs within a date range where the logged date is equal to or before endDate", + "description": "List time logs within a date range where the logged date is equal to or before endDate.", "type": { "kind": "SCALAR", "name": "Time", @@ -27952,7 +29949,7 @@ }, { "name": "startTime", - "description": "List time-logs within a time range where the logged time is equal to or after startTime", + "description": "List time-logs within a time range where the logged time is equal to or after startTime.", "type": { "kind": "SCALAR", "name": "Time", @@ -27962,7 +29959,7 @@ }, { "name": "endTime", - "description": "List time-logs within a time range where the logged time is equal to or before endTime", + "description": "List time-logs within a time range where the logged time is equal to or before endTime.", "type": { "kind": "SCALAR", "name": "Time", @@ -28103,7 +30100,7 @@ "args": [ { "name": "projectId", - "description": "Filter vulnerabilities by project", + "description": "Filter vulnerabilities by project.", "type": { "kind": "LIST", "name": null, @@ -28121,7 +30118,7 @@ }, { "name": "reportType", - "description": "Filter vulnerabilities by report type", + "description": "Filter vulnerabilities by report type.", "type": { "kind": "LIST", "name": null, @@ -28139,7 +30136,7 @@ }, { "name": "severity", - "description": "Filter vulnerabilities by severity", + "description": "Filter vulnerabilities by severity.", "type": { "kind": "LIST", "name": null, @@ -28157,7 +30154,7 @@ }, { "name": "state", - "description": "Filter vulnerabilities by state", + "description": "Filter vulnerabilities by state.", "type": { "kind": "LIST", "name": null, @@ -28175,7 +30172,7 @@ }, { "name": "scanner", - "description": "Filter vulnerabilities by scanner", + "description": "Filter vulnerabilities by VulnerabilityScanner.externalId.", "type": { "kind": "LIST", "name": null, @@ -28193,7 +30190,7 @@ }, { "name": "sort", - "description": "List vulnerabilities by sort order", + "description": "List vulnerabilities by sort order.", "type": { "kind": "ENUM", "name": "VulnerabilitySort", @@ -28203,7 +30200,7 @@ }, { "name": "hasResolution", - "description": "Returns only the vulnerabilities which have been resolved on default branch", + "description": "Returns only the vulnerabilities which have been resolved on default branch.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -28213,7 +30210,7 @@ }, { "name": "hasIssues", - "description": "Returns only the vulnerabilities which have linked issues", + "description": "Returns only the vulnerabilities which have linked issues.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -28276,7 +30273,7 @@ "args": [ { "name": "startDate", - "description": "First day for which to fetch vulnerability history", + "description": "First day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -28290,7 +30287,7 @@ }, { "name": "endDate", - "description": "Last day for which to fetch vulnerability history", + "description": "Last day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -28357,7 +30354,7 @@ "args": [ { "name": "startDate", - "description": "First day for which to fetch vulnerability history", + "description": "First day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -28371,7 +30368,7 @@ }, { "name": "endDate", - "description": "Last day for which to fetch vulnerability history", + "description": "Last day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -28438,7 +30435,7 @@ "args": [ { "name": "includeSubgroups", - "description": "Include grades belonging to subgroups", + "description": "Include grades belonging to subgroups.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -28526,7 +30523,7 @@ "args": [ { "name": "projectId", - "description": "Filter vulnerabilities by project", + "description": "Filter vulnerabilities by project.", "type": { "kind": "LIST", "name": null, @@ -28544,7 +30541,7 @@ }, { "name": "reportType", - "description": "Filter vulnerabilities by report type", + "description": "Filter vulnerabilities by report type.", "type": { "kind": "LIST", "name": null, @@ -28562,7 +30559,7 @@ }, { "name": "severity", - "description": "Filter vulnerabilities by severity", + "description": "Filter vulnerabilities by severity.", "type": { "kind": "LIST", "name": null, @@ -28580,7 +30577,7 @@ }, { "name": "state", - "description": "Filter vulnerabilities by state", + "description": "Filter vulnerabilities by state.", "type": { "kind": "LIST", "name": null, @@ -28598,7 +30595,7 @@ }, { "name": "scanner", - "description": "Filter vulnerabilities by scanner", + "description": "Filter vulnerabilities by scanner.", "type": { "kind": "LIST", "name": null, @@ -29091,7 +31088,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project to create the integration in", + "description": "The project to create the integration in.", "type": { "kind": "NON_NULL", "name": null, @@ -29105,7 +31102,7 @@ }, { "name": "name", - "description": "The name of the integration", + "description": "The name of the integration.", "type": { "kind": "NON_NULL", "name": null, @@ -29119,7 +31116,7 @@ }, { "name": "active", - "description": "Whether the integration is receiving alerts", + "description": "Whether the integration is receiving alerts.", "type": { "kind": "NON_NULL", "name": null, @@ -29132,6 +31129,34 @@ "defaultValue": null }, { + "name": "payloadExample", + "description": "The example of an alert payload.", + "type": { + "kind": "SCALAR", + "name": "JsonString", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "payloadAttributeMappings", + "description": "The custom mapping of GitLab alert attributes to fields from the payload_example.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AlertManagementPayloadAlertFieldInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -29193,7 +31218,7 @@ }, { "name": "integration", - "description": "The HTTP integration", + "description": "The HTTP integration.", "args": [ ], @@ -29221,7 +31246,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the integration to remove", + "description": "The ID of the integration to remove.", "type": { "kind": "NON_NULL", "name": null, @@ -29295,7 +31320,7 @@ }, { "name": "integration", - "description": "The HTTP integration", + "description": "The HTTP integration.", "args": [ ], @@ -29323,7 +31348,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the integration to mutate", + "description": "The ID of the integration to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -29397,7 +31422,7 @@ }, { "name": "integration", - "description": "The HTTP integration", + "description": "The HTTP integration.", "args": [ ], @@ -29425,7 +31450,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the integration to mutate", + "description": "The ID of the integration to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -29439,7 +31464,7 @@ }, { "name": "name", - "description": "The name of the integration", + "description": "The name of the integration.", "type": { "kind": "SCALAR", "name": "String", @@ -29449,7 +31474,7 @@ }, { "name": "active", - "description": "Whether the integration is receiving alerts", + "description": "Whether the integration is receiving alerts.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -29519,7 +31544,7 @@ }, { "name": "integration", - "description": "The HTTP integration", + "description": "The HTTP integration.", "args": [ ], @@ -29560,6 +31585,282 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "IncidentManagementOncallParticipantID", + "description": "Identifier of IncidentManagement::OncallParticipant", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IncidentManagementOncallRotation", + "description": "Describes an incident management on-call rotation", + "fields": [ + { + "name": "id", + "description": "ID of the on-call rotation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "IncidentManagementOncallRotationID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "length", + "description": "Length of the on-call schedule, in the units specified by lengthUnit.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lengthUnit", + "description": "Unit of the on-call rotation length.", + "args": [ + + ], + "type": { + "kind": "ENUM", + "name": "OncallRotationUnitEnum", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Name of the on-call rotation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "participants", + "description": "Participants of the on-call rotation.", + "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": "OncallParticipantTypeConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startsAt", + "description": "Start date of the on-call rotation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IncidentManagementOncallRotationConnection", + "description": "The connection type for IncidentManagementOncallRotation.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IncidentManagementOncallRotationEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IncidentManagementOncallRotation", + "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": "IncidentManagementOncallRotationEdge", + "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": "IncidentManagementOncallRotation", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "IncidentManagementOncallRotationID", + "description": "Identifier of IncidentManagement::OncallRotation", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "IncidentManagementOncallSchedule", "description": "Describes an incident management on-call schedule", @@ -29615,6 +31916,63 @@ "deprecationReason": null }, { + "name": "rotations", + "description": "On-call rotations for the on-call schedule", + "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": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IncidentManagementOncallRotationConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "timezone", "description": "Time zone of the on-call schedule", "args": [ @@ -29899,7 +32257,7 @@ "args": [ { "name": "projectId", - "description": "Filter vulnerabilities by project", + "description": "Filter vulnerabilities by project.", "type": { "kind": "LIST", "name": null, @@ -29917,7 +32275,7 @@ }, { "name": "reportType", - "description": "Filter vulnerabilities by report type", + "description": "Filter vulnerabilities by report type.", "type": { "kind": "LIST", "name": null, @@ -29935,7 +32293,7 @@ }, { "name": "severity", - "description": "Filter vulnerabilities by severity", + "description": "Filter vulnerabilities by severity.", "type": { "kind": "LIST", "name": null, @@ -29953,7 +32311,7 @@ }, { "name": "state", - "description": "Filter vulnerabilities by state", + "description": "Filter vulnerabilities by state.", "type": { "kind": "LIST", "name": null, @@ -29971,7 +32329,7 @@ }, { "name": "scanner", - "description": "Filter vulnerabilities by scanner", + "description": "Filter vulnerabilities by scanner.", "type": { "kind": "LIST", "name": null, @@ -30420,6 +32778,20 @@ "deprecationReason": null }, { + "name": "createNoteEmail", + "description": "User specific email address for the issue", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "createdAt", "description": "Timestamp of when the issue was created", "args": [ @@ -31560,7 +33932,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -31574,7 +33946,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -31588,7 +33960,7 @@ }, { "name": "targetProjectPath", - "description": "The project to move the issue to", + "description": "The project to move the issue to.", "type": { "kind": "NON_NULL", "name": null, @@ -31623,7 +33995,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Project the issue to mutate is in", + "description": "Project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -31637,7 +34009,7 @@ }, { "name": "iid", - "description": "IID of the issue to mutate", + "description": "IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -31651,7 +34023,7 @@ }, { "name": "boardId", - "description": "Global ID of the board that the issue is in", + "description": "Global ID of the board that the issue is in.", "type": { "kind": "NON_NULL", "name": null, @@ -31665,7 +34037,7 @@ }, { "name": "fromListId", - "description": "ID of the board list that the issue will be moved from", + "description": "ID of the board list that the issue will be moved from.", "type": { "kind": "SCALAR", "name": "ID", @@ -31675,7 +34047,7 @@ }, { "name": "toListId", - "description": "ID of the board list that the issue will be moved to", + "description": "ID of the board list that the issue will be moved to.", "type": { "kind": "SCALAR", "name": "ID", @@ -31685,7 +34057,7 @@ }, { "name": "moveBeforeId", - "description": "ID of issue that should be placed before the current issue", + "description": "ID of issue that should be placed before the current issue.", "type": { "kind": "SCALAR", "name": "ID", @@ -31695,7 +34067,7 @@ }, { "name": "moveAfterId", - "description": "ID of issue that should be placed after the current issue", + "description": "ID of issue that should be placed after the current issue.", "type": { "kind": "SCALAR", "name": "ID", @@ -31705,7 +34077,7 @@ }, { "name": "epicId", - "description": "The ID of the parent epic. NULL when removing the association", + "description": "The ID of the parent epic. NULL when removing the association.", "type": { "kind": "SCALAR", "name": "EpicID", @@ -31775,7 +34147,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -31842,7 +34214,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32027,7 +34399,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32041,7 +34413,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32147,7 +34519,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32175,7 +34547,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32189,7 +34561,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32277,7 +34649,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32305,7 +34677,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32319,7 +34691,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32333,7 +34705,7 @@ }, { "name": "dueDate", - "description": "The desired due date for the issue", + "description": "The desired due date for the issue.", "type": { "kind": "NON_NULL", "name": null, @@ -32407,7 +34779,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32435,7 +34807,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32449,7 +34821,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32533,7 +34905,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32561,7 +34933,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32575,7 +34947,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32659,7 +35031,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32687,7 +35059,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32701,7 +35073,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32715,7 +35087,7 @@ }, { "name": "locked", - "description": "Whether or not to lock discussion on the issue", + "description": "Whether or not to lock discussion on the issue.", "type": { "kind": "NON_NULL", "name": null, @@ -32789,7 +35161,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32817,7 +35189,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32831,7 +35203,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32919,7 +35291,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -32947,7 +35319,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -32961,7 +35333,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -32975,7 +35347,7 @@ }, { "name": "subscribedState", - "description": "The desired state of the subscription", + "description": "The desired state of the subscription.", "type": { "kind": "NON_NULL", "name": null, @@ -33049,7 +35421,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -33077,7 +35449,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -33091,7 +35463,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -33105,7 +35477,7 @@ }, { "name": "weight", - "description": "The desired weight for the issue", + "description": "The desired weight for the issue.", "type": { "kind": "NON_NULL", "name": null, @@ -33179,7 +35551,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -34210,7 +36582,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project to import the Jira project into", + "description": "The project to import the Jira project into.", "type": { "kind": "NON_NULL", "name": null, @@ -34224,7 +36596,7 @@ }, { "name": "jiraProjectKey", - "description": "Project key of the importer Jira project", + "description": "Project key of the importer Jira project.", "type": { "kind": "NON_NULL", "name": null, @@ -34238,7 +36610,7 @@ }, { "name": "jiraProjectName", - "description": "Project name of the importer Jira project", + "description": "Project name of the importer Jira project.", "type": { "kind": "SCALAR", "name": "String", @@ -34248,7 +36620,7 @@ }, { "name": "usersMapping", - "description": "The mapping of Jira to GitLab users", + "description": "The mapping of Jira to GitLab users.", "type": { "kind": "LIST", "name": null, @@ -34326,7 +36698,7 @@ }, { "name": "jiraImport", - "description": "The Jira import data after mutation", + "description": "The Jira import data after mutation.", "args": [ ], @@ -34354,7 +36726,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project to import the Jira users into", + "description": "The project to import the Jira users into.", "type": { "kind": "NON_NULL", "name": null, @@ -34368,7 +36740,7 @@ }, { "name": "startAt", - "description": "The index of the record the import should started at, default 0 (50 records returned)", + "description": "The index of the record the import should started at, default 0 (50 records returned).", "type": { "kind": "SCALAR", "name": "Int", @@ -34666,7 +37038,7 @@ "args": [ { "name": "name", - "description": "Project name or key", + "description": "Project name or key.", "type": { "kind": "SCALAR", "name": "String", @@ -35063,6 +37435,16 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "JsonString", + "description": "JSON object as raw string", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "Label", "description": null, @@ -35268,7 +37650,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project full path the resource is associated with", + "description": "The project full path the resource is associated with.", "type": { "kind": "SCALAR", "name": "ID", @@ -35278,7 +37660,7 @@ }, { "name": "groupPath", - "description": "The group full path the resource is associated with", + "description": "The group full path the resource is associated with.", "type": { "kind": "SCALAR", "name": "ID", @@ -35288,7 +37670,7 @@ }, { "name": "title", - "description": "Title of the label", + "description": "Title of the label.", "type": { "kind": "NON_NULL", "name": null, @@ -35302,7 +37684,7 @@ }, { "name": "description", - "description": "Description of the label", + "description": "Description of the label.", "type": { "kind": "SCALAR", "name": "String", @@ -35312,7 +37694,7 @@ }, { "name": "color", - "description": "The color of the label given in 6-digit hex notation with leading '#' sign (e.g. #FFAABB) or one of the CSS color names in https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords", + "description": "The color of the label given in 6-digit hex notation with leading '#' sign (e.g. #FFAABB) or one of the CSS color names in https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords.", "type": { "kind": "SCALAR", "name": "String", @@ -35382,7 +37764,7 @@ }, { "name": "label", - "description": "The label after mutation", + "description": "The label after mutation.", "args": [ ], @@ -35504,7 +37886,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the snippet to update", + "description": "The global ID of the snippet to update.", "type": { "kind": "NON_NULL", "name": null, @@ -35578,7 +37960,7 @@ }, { "name": "snippet", - "description": "The snippet after mutation", + "description": "The snippet after mutation.", "args": [ ], @@ -36113,6 +38495,20 @@ "deprecationReason": null }, { + "name": "autoMergeStrategy", + "description": "Selected auto merge strategy", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "availableAutoMergeStrategies", "description": "Array of available auto merge strategies", "args": [ @@ -36333,6 +38729,20 @@ "deprecationReason": null }, { + "name": "defaultSquashCommitMessage", + "description": "Default squash commit message of the merge request", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "description", "description": "Description of the merge request (Markdown rendered as HTML for caching)", "args": [ @@ -36750,6 +39160,20 @@ "deprecationReason": null }, { + "name": "mergeUser", + "description": "User who merged this merge request", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "User", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "mergeWhenPipelineSucceeds", "description": "Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS)", "args": [ @@ -36882,7 +39306,7 @@ }, { "name": "participants", - "description": "Participants in the merge request", + "description": "Participants in the merge request. This includes the author, assignees, reviewers, and users mentioned in notes.", "args": [ { "name": "after", @@ -36939,7 +39363,7 @@ "args": [ { "name": "status", - "description": "Filter pipelines by their status", + "description": "Filter pipelines by their status.", "type": { "kind": "ENUM", "name": "PipelineStatusEnum", @@ -36949,7 +39373,7 @@ }, { "name": "ref", - "description": "Filter pipelines by the ref they are run for", + "description": "Filter pipelines by the ref they are run for.", "type": { "kind": "SCALAR", "name": "String", @@ -36959,7 +39383,7 @@ }, { "name": "sha", - "description": "Filter pipelines by the sha of the commit they are run for", + "description": "Filter pipelines by the sha of the commit they are run for.", "type": { "kind": "SCALAR", "name": "String", @@ -37112,6 +39536,59 @@ "deprecationReason": null }, { + "name": "reviewers", + "description": "Users from whom a review has been requested.", + "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": "UserConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "securityAutoFix", "description": "Indicates if the merge request is created by @GitLab-Security-Bot.", "args": [ @@ -37240,6 +39717,24 @@ "deprecationReason": null }, { + "name": "squash", + "description": "Indicates if squash on merge is enabled", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "squashOnMerge", "description": "Indicates if squash on merge is enabled", "args": [ @@ -37689,7 +40184,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Project full path the merge request is associated with", + "description": "Project full path the merge request is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -37833,7 +40328,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -38336,7 +40831,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the merge request to mutate is in", + "description": "The project the merge request to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -38350,7 +40845,7 @@ }, { "name": "iid", - "description": "The IID of the merge request to mutate", + "description": "The IID of the merge request to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -38456,7 +40951,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -38484,7 +40979,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the merge request to mutate is in", + "description": "The project the merge request to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -38498,7 +40993,7 @@ }, { "name": "iid", - "description": "The IID of the merge request to mutate", + "description": "The IID of the merge request to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -38604,7 +41099,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -38632,7 +41127,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the merge request to mutate is in", + "description": "The project the merge request to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -38646,7 +41141,7 @@ }, { "name": "iid", - "description": "The IID of the merge request to mutate", + "description": "The IID of the merge request to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -38734,7 +41229,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -38762,7 +41257,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the merge request to mutate is in", + "description": "The project the merge request to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -38776,7 +41271,7 @@ }, { "name": "iid", - "description": "The IID of the merge request to mutate", + "description": "The IID of the merge request to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -38860,7 +41355,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -38888,7 +41383,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the merge request to mutate is in", + "description": "The project the merge request to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -38902,7 +41397,7 @@ }, { "name": "iid", - "description": "The IID of the merge request to mutate", + "description": "The IID of the merge request to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -38916,7 +41411,7 @@ }, { "name": "subscribedState", - "description": "The desired state of the subscription", + "description": "The desired state of the subscription.", "type": { "kind": "NON_NULL", "name": null, @@ -38990,7 +41485,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -39018,7 +41513,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the merge request to mutate is in", + "description": "The project the merge request to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -39032,7 +41527,7 @@ }, { "name": "iid", - "description": "The IID of the merge request to mutate", + "description": "The IID of the merge request to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -39120,7 +41615,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -39296,7 +41791,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the merge request to mutate is in", + "description": "The project the merge request to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -39310,7 +41805,7 @@ }, { "name": "iid", - "description": "The IID of the merge request to mutate", + "description": "The IID of the merge request to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -39414,7 +41909,7 @@ }, { "name": "mergeRequest", - "description": "The merge request after mutation", + "description": "The merge request after mutation.", "args": [ ], @@ -39589,7 +42084,7 @@ "args": [ { "name": "from", - "description": "Timestamp marking date and time from which annotations need to be fetched", + "description": "Timestamp marking date and time from which annotations need to be fetched.", "type": { "kind": "NON_NULL", "name": null, @@ -39603,7 +42098,7 @@ }, { "name": "to", - "description": "Timestamp marking date and time to which annotations need to be fetched", + "description": "Timestamp marking date and time to which annotations need to be fetched.", "type": { "kind": "SCALAR", "name": "Time", @@ -40647,6 +43142,33 @@ "deprecationReason": null }, { + "name": "ciCdSettingsUpdate", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CiCdSettingsUpdateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CiCdSettingsUpdatePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "clusterAgentDelete", "description": null, "args": [ @@ -41970,6 +44492,33 @@ "deprecationReason": null }, { + "name": "exportRequirements", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ExportRequirementsInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ExportRequirementsPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "httpIntegrationCreate", "description": null, "args": [ @@ -42726,6 +45275,33 @@ "deprecationReason": null }, { + "name": "oncallRotationCreate", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OncallRotationCreateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "OncallRotationCreatePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "oncallScheduleCreate", "description": null, "args": [ @@ -43752,6 +46328,33 @@ "deprecationReason": null }, { + "name": "updateNamespacePackageSettings", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateNamespacePackageSettingsInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "UpdateNamespacePackageSettingsPayload", + "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": [ @@ -44066,7 +46669,7 @@ }, { "name": "complianceFrameworks", - "description": "Compliance frameworks available to projects in this namespace Available only when feature flag `ff_custom_compliance_frameworks` is enabled.", + "description": "Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled.", "args": [ { "name": "after", @@ -44107,6 +46710,16 @@ "ofType": null }, "defaultValue": null + }, + { + "name": "id", + "description": "Global ID of a specific compliance framework to return.", + "type": { + "kind": "SCALAR", + "name": "ComplianceManagementFrameworkID", + "ofType": null + }, + "defaultValue": null } ], "type": { @@ -44268,6 +46881,20 @@ "deprecationReason": null }, { + "name": "packageSettings", + "description": "The package settings for the namespace", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "PackageSettings", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "path", "description": "Path of the namespace", "args": [ @@ -44291,7 +46918,7 @@ "args": [ { "name": "includeSubgroups", - "description": "Include also subgroup projects", + "description": "Include also subgroup projects.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -44301,7 +46928,7 @@ }, { "name": "search", - "description": "Search project with most similar names or paths", + "description": "Search project with most similar names or paths.", "type": { "kind": "SCALAR", "name": "String", @@ -44311,7 +46938,7 @@ }, { "name": "sort", - "description": "Sort projects by this criteria", + "description": "Sort projects by this criteria.", "type": { "kind": "ENUM", "name": "NamespaceProjectSort", @@ -44321,7 +46948,7 @@ }, { "name": "hasVulnerabilities", - "description": "Returns only the projects which have vulnerabilities", + "description": "Returns only the projects which have vulnerabilities.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -44636,7 +47263,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the namespace to mutate", + "description": "The global ID of the namespace to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -44710,7 +47337,7 @@ }, { "name": "namespace", - "description": "The namespace after mutation", + "description": "The namespace after mutation.", "args": [ ], @@ -45124,6 +47751,20 @@ "deprecationReason": null }, { + "name": "url", + "description": "URL to view this Note in the Web UI", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "userPermissions", "description": "Permissions for the current user on the resource", "args": [ @@ -45578,6 +48219,482 @@ "possibleTypes": null }, { + "kind": "OBJECT", + "name": "OncallParticipantType", + "description": "The rotation participant and color palette", + "fields": [ + { + "name": "colorPalette", + "description": "The color palette to assign to the on-call user. For example \"blue\".", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "colorWeight", + "description": "The color weight to assign to for the on-call user, for example \"500\". Max 4 chars. For easy identification of the user.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "ID of the on-call participant.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "IncidentManagementOncallParticipantID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "user", + "description": "The user who is participating.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "OncallParticipantTypeConnection", + "description": "The connection type for OncallParticipantType.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OncallParticipantTypeEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OncallParticipantType", + "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": "OncallParticipantTypeEdge", + "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": "OncallParticipantType", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "OncallRotationCreateInput", + "description": "Autogenerated input type of OncallRotationCreate", + "fields": null, + "inputFields": [ + { + "name": "projectPath", + "description": "The project to create the on-call schedule in.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "scheduleIid", + "description": "The IID of the on-call schedule to create the on-call rotation in.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "name", + "description": "The name of the on-call rotation.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "startsAt", + "description": "The start date and time of the on-call rotation, in the timezone of the on-call schedule.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OncallRotationDateInputType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "rotationLength", + "description": "The rotation length of the on-call rotation.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OncallRotationLengthInputType", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "participants", + "description": "The usernames of users participating in the on-call rotation.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OncallUserInputType", + "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": "OncallRotationCreatePayload", + "description": "Autogenerated return type of OncallRotationCreate", + "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": "oncallRotation", + "description": "The on-call rotation.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "IncidentManagementOncallRotation", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "OncallRotationDateInputType", + "description": "Date input type for on-call rotation", + "fields": null, + "inputFields": [ + { + "name": "date", + "description": "The date component of the date in YYYY-MM-DD format.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "time", + "description": "The time component of the date in 24hr HH:MM format.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "OncallRotationLengthInputType", + "description": "The rotation length of the on-call rotation", + "fields": null, + "inputFields": [ + { + "name": "length", + "description": "The rotation length of the on-call rotation.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "unit", + "description": "The unit of the rotation length of the on-call rotation.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "OncallRotationUnitEnum", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "OncallRotationUnitEnum", + "description": "Rotation length unit of an on-call rotation", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "HOURS", + "description": "Hours", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "DAYS", + "description": "Days", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "WEEKS", + "description": "Weeks", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "INPUT_OBJECT", "name": "OncallScheduleCreateInput", "description": "Autogenerated input type of OncallScheduleCreate", @@ -45585,7 +48702,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project to create the on-call schedule in", + "description": "The project to create the on-call schedule in.", "type": { "kind": "NON_NULL", "name": null, @@ -45599,7 +48716,7 @@ }, { "name": "name", - "description": "The name of the on-call schedule", + "description": "The name of the on-call schedule.", "type": { "kind": "NON_NULL", "name": null, @@ -45613,7 +48730,7 @@ }, { "name": "description", - "description": "The description of the on-call schedule", + "description": "The description of the on-call schedule.", "type": { "kind": "SCALAR", "name": "String", @@ -45623,7 +48740,7 @@ }, { "name": "timezone", - "description": "The timezone of the on-call schedule", + "description": "The timezone of the on-call schedule.", "type": { "kind": "NON_NULL", "name": null, @@ -45697,7 +48814,7 @@ }, { "name": "oncallSchedule", - "description": "The on-call schedule", + "description": "The on-call schedule.", "args": [ ], @@ -45725,7 +48842,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project to remove the on-call schedule from", + "description": "The project to remove the on-call schedule from.", "type": { "kind": "NON_NULL", "name": null, @@ -45739,7 +48856,7 @@ }, { "name": "iid", - "description": "The on-call schedule internal ID to remove", + "description": "The on-call schedule internal ID to remove.", "type": { "kind": "NON_NULL", "name": null, @@ -45813,7 +48930,7 @@ }, { "name": "oncallSchedule", - "description": "The on-call schedule", + "description": "The on-call schedule.", "args": [ ], @@ -45841,7 +48958,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project to update the on-call schedule in", + "description": "The project to update the on-call schedule in.", "type": { "kind": "NON_NULL", "name": null, @@ -45855,7 +48972,7 @@ }, { "name": "iid", - "description": "The on-call schedule internal ID to update", + "description": "The on-call schedule internal ID to update.", "type": { "kind": "NON_NULL", "name": null, @@ -45869,7 +48986,7 @@ }, { "name": "name", - "description": "The name of the on-call schedule", + "description": "The name of the on-call schedule.", "type": { "kind": "SCALAR", "name": "String", @@ -45879,7 +48996,7 @@ }, { "name": "description", - "description": "The description of the on-call schedule", + "description": "The description of the on-call schedule.", "type": { "kind": "SCALAR", "name": "String", @@ -45889,7 +49006,7 @@ }, { "name": "timezone", - "description": "The timezone of the on-call schedule", + "description": "The timezone of the on-call schedule.", "type": { "kind": "SCALAR", "name": "String", @@ -45959,7 +49076,7 @@ }, { "name": "oncallSchedule", - "description": "The on-call schedule", + "description": "The on-call schedule.", "args": [ ], @@ -45980,13 +49097,370 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "OncallUserInputType", + "description": "The rotation user and color palette", + "fields": null, + "inputFields": [ + { + "name": "username", + "description": "The username of the user to participate in the on-call rotation, such as `user_one`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "colorPalette", + "description": "A value of DataVisualizationColorEnum. The color from the palette to assign to the on-call user.", + "type": { + "kind": "ENUM", + "name": "DataVisualizationColorEnum", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "colorWeight", + "description": "A value of DataVisualizationWeightEnum. The color weight to assign to for the on-call user.", + "type": { + "kind": "ENUM", + "name": "DataVisualizationWeightEnum", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "Package", - "description": "Represents a package", + "description": "Represents a package in the Package Registry", + "fields": [ + { + "name": "createdAt", + "description": "The created date.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "The ID of the package.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "The name of the package.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "packageType", + "description": "The type of the package.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PackageTypeEnum", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelines", + "description": "Pipelines that built the package.", + "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": "PipelineConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "project", + "description": "Project where the package is stored.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Project", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tags", + "description": "The package tags.", + "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": "PackageTagConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updatedAt", + "description": "The updated date.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": "The version of the package.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "versions", + "description": "The other versions of the package.", + "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": "PackageConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PackageComposerDetails", + "description": "Details of a Composer package", "fields": [ { + "name": "composerMetadatum", + "description": "The Composer metadatum.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PackageComposerMetadatumType", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "createdAt", - "description": "The created date", + "description": "The created date.", "args": [ ], @@ -46004,7 +49478,7 @@ }, { "name": "id", - "description": "The ID of the package", + "description": "The ID of the package.", "args": [ ], @@ -46022,7 +49496,7 @@ }, { "name": "name", - "description": "The name of the package", + "description": "The name of the package.", "args": [ ], @@ -46040,7 +49514,7 @@ }, { "name": "packageType", - "description": "The type of the package", + "description": "The type of the package.", "args": [ ], @@ -46057,8 +49531,132 @@ "deprecationReason": null }, { + "name": "pipelines", + "description": "Pipelines that built the package.", + "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": "PipelineConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "project", + "description": "Project where the package is stored.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Project", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tags", + "description": "The package tags.", + "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": "PackageTagConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updatedAt", - "description": "The update date", + "description": "The updated date.", "args": [ ], @@ -46076,7 +49674,129 @@ }, { "name": "version", - "description": "The version of the package", + "description": "The version of the package.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "versions", + "description": "The other versions of the package.", + "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": "PackageConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PackageComposerJsonType", + "description": "Represents a composer JSON file", + "fields": [ + { + "name": "license", + "description": "The license set in the Composer JSON file.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "The name set in the Composer JSON file.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": "The type set in the Composer JSON file.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": "The version set in the Composer JSON file.", "args": [ ], @@ -46098,6 +49818,55 @@ }, { "kind": "OBJECT", + "name": "PackageComposerMetadatumType", + "description": "Composer metadatum", + "fields": [ + { + "name": "composerJson", + "description": "Data of the Composer JSON file.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PackageComposerJsonType", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetSha", + "description": "Target SHA of the package.", + "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": "PackageConnection", "description": "The connection type for Package.", "fields": [ @@ -46454,6 +50223,248 @@ "possibleTypes": null }, { + "kind": "OBJECT", + "name": "PackageSettings", + "description": "Namespace-level Package Registry settings", + "fields": [ + { + "name": "mavenDuplicateExceptionRegex", + "description": "When maven_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "UntrustedRegexp", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mavenDuplicatesAllowed", + "description": "Indicates whether duplicate Maven packages are allowed for this namespace.", + "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": "PackageTag", + "description": "Represents a package tag", + "fields": [ + { + "name": "createdAt", + "description": "The created date.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "The ID of the tag.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "The name of the tag.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updatedAt", + "description": "The updated date.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PackageTagConnection", + "description": "The connection type for PackageTag.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PackageTagEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PackageTag", + "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": "PackageTagEdge", + "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": "PackageTag", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "ENUM", "name": "PackageTypeEnum", "description": null, @@ -46519,6 +50530,16 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "PackagesPackageID", + "description": "Identifier of Packages::Package", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "PageInfo", "description": "Information about pagination in a connection.", @@ -46851,7 +50872,7 @@ "args": [ { "name": "securityReportTypes", - "description": "Filter jobs by the type of security report they produce", + "description": "Filter jobs by the type of security report they produce.", "type": { "kind": "LIST", "name": null, @@ -47428,7 +51449,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the pipeline to mutate", + "description": "The ID of the pipeline to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -47660,7 +51681,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the pipeline to mutate", + "description": "The ID of the pipeline to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -47860,7 +51881,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the pipeline to mutate", + "description": "The ID of the pipeline to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -47934,7 +51955,7 @@ }, { "name": "pipeline", - "description": "The pipeline after mutation", + "description": "The pipeline after mutation.", "args": [ ], @@ -48056,7 +52077,7 @@ "args": [ { "name": "iid", - "description": "IID of the alert. For example, \"1\"", + "description": "IID of the alert. For example, \"1\".", "type": { "kind": "SCALAR", "name": "String", @@ -48066,7 +52087,7 @@ }, { "name": "statuses", - "description": "Alerts with the specified statues. For example, [TRIGGERED]", + "description": "Alerts with the specified statues. For example, [TRIGGERED].", "type": { "kind": "LIST", "name": null, @@ -48084,7 +52105,7 @@ }, { "name": "sort", - "description": "Sort alerts by this criteria", + "description": "Sort alerts by this criteria.", "type": { "kind": "ENUM", "name": "AlertManagementAlertSort", @@ -48094,7 +52115,7 @@ }, { "name": "domain", - "description": "Filter query for given domain", + "description": "Filter query for given domain.", "type": { "kind": "NON_NULL", "name": null, @@ -48118,7 +52139,7 @@ }, { "name": "assigneeUsername", - "description": "Username of a user assigned to the issue", + "description": "Username of a user assigned to the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -48151,7 +52172,7 @@ }, { "name": "assigneeUsername", - "description": "Username of a user assigned to the issue", + "description": "Username of a user assigned to the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -48174,7 +52195,7 @@ "args": [ { "name": "iid", - "description": "IID of the alert. For example, \"1\"", + "description": "IID of the alert. For example, \"1\".", "type": { "kind": "SCALAR", "name": "String", @@ -48184,7 +52205,7 @@ }, { "name": "statuses", - "description": "Alerts with the specified statues. For example, [TRIGGERED]", + "description": "Alerts with the specified statues. For example, [TRIGGERED].", "type": { "kind": "LIST", "name": null, @@ -48202,7 +52223,7 @@ }, { "name": "sort", - "description": "Sort alerts by this criteria", + "description": "Sort alerts by this criteria.", "type": { "kind": "ENUM", "name": "AlertManagementAlertSort", @@ -48212,7 +52233,7 @@ }, { "name": "domain", - "description": "Filter query for given domain", + "description": "Filter query for given domain.", "type": { "kind": "NON_NULL", "name": null, @@ -48236,7 +52257,7 @@ }, { "name": "assigneeUsername", - "description": "Username of a user assigned to the issue", + "description": "Username of a user assigned to the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -48408,7 +52429,7 @@ "args": [ { "name": "id", - "description": "The board's ID", + "description": "The board's ID.", "type": { "kind": "NON_NULL", "name": null, @@ -48435,7 +52456,7 @@ "args": [ { "name": "id", - "description": "Find a board by its ID", + "description": "Find a board by its ID.", "type": { "kind": "SCALAR", "name": "BoardID", @@ -48512,7 +52533,7 @@ "args": [ { "name": "name", - "description": "Name of the cluster agent", + "description": "Name of the cluster agent.", "type": { "kind": "NON_NULL", "name": null, @@ -48687,7 +52708,7 @@ "args": [ { "name": "name", - "description": "Filter the container repositories by their name", + "description": "Filter the container repositories by their name.", "type": { "kind": "SCALAR", "name": "String", @@ -48835,7 +52856,7 @@ "args": [ { "name": "id", - "description": "ID of the site profile", + "description": "ID of the site profile.", "type": { "kind": "NON_NULL", "name": null, @@ -48910,57 +52931,12 @@ "deprecationReason": null }, { - "name": "dastSiteValidation", - "description": "DAST Site Validation associated with the project. Will always return `null` if `security_on_demand_scans_site_validation` is disabled", - "args": [ - { - "name": "normalizedTargetUrls", - "description": "Normalized URL of the target to be scanned", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "targetUrl", - "description": "URL of the target to be scanned", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DastSiteValidation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { "name": "dastSiteValidations", "description": "DAST Site Validations associated with the project. Will always return no nodes if `security_on_demand_scans_site_validation` is disabled", "args": [ { "name": "normalizedTargetUrls", - "description": "Normalized URL of the target to be scanned", + "description": "Normalized URL of the target to be scanned.", "type": { "kind": "LIST", "name": null, @@ -49059,7 +53035,7 @@ "args": [ { "name": "name", - "description": "Name of the environment", + "description": "Name of the environment.", "type": { "kind": "SCALAR", "name": "String", @@ -49069,7 +53045,7 @@ }, { "name": "search", - "description": "Search query for environment name", + "description": "Search query for environment name.", "type": { "kind": "SCALAR", "name": "String", @@ -49079,7 +53055,7 @@ }, { "name": "states", - "description": "States of environments that should be included in result", + "description": "States of environments that should be included in result.", "type": { "kind": "LIST", "name": null, @@ -49110,7 +53086,7 @@ "args": [ { "name": "name", - "description": "Name of the environment", + "description": "Name of the environment.", "type": { "kind": "SCALAR", "name": "String", @@ -49120,7 +53096,7 @@ }, { "name": "search", - "description": "Search query for environment name", + "description": "Search query for environment name.", "type": { "kind": "SCALAR", "name": "String", @@ -49130,7 +53106,7 @@ }, { "name": "states", - "description": "States of environments that should be included in result", + "description": "States of environments that should be included in result.", "type": { "kind": "LIST", "name": null, @@ -49364,7 +53340,7 @@ "args": [ { "name": "iid", - "description": "IID of the issue. For example, \"1\"", + "description": "IID of the issue. For example, \"1\".", "type": { "kind": "SCALAR", "name": "String", @@ -49374,7 +53350,7 @@ }, { "name": "iids", - "description": "List of IIDs of issues. For example, [1, 2]", + "description": "List of IIDs of issues. For example, [1, 2].", "type": { "kind": "LIST", "name": null, @@ -49392,7 +53368,7 @@ }, { "name": "labelName", - "description": "Labels applied to this issue", + "description": "Labels applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -49406,7 +53382,7 @@ }, { "name": "milestoneTitle", - "description": "Milestone applied to this issue", + "description": "Milestone applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -49420,7 +53396,7 @@ }, { "name": "authorUsername", - "description": "Username of the author of the issue", + "description": "Username of the author of the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -49430,7 +53406,7 @@ }, { "name": "assigneeUsername", - "description": "Username of a user assigned to the issue", + "description": "Username of a user assigned to the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -49440,7 +53416,7 @@ }, { "name": "assigneeUsernames", - "description": "Usernames of users assigned to the issue", + "description": "Usernames of users assigned to the issue.", "type": { "kind": "LIST", "name": null, @@ -49458,7 +53434,7 @@ }, { "name": "assigneeId", - "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported", + "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported.", "type": { "kind": "SCALAR", "name": "String", @@ -49468,7 +53444,7 @@ }, { "name": "createdBefore", - "description": "Issues created before this date", + "description": "Issues created before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49478,7 +53454,7 @@ }, { "name": "createdAfter", - "description": "Issues created after this date", + "description": "Issues created after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49488,7 +53464,7 @@ }, { "name": "updatedBefore", - "description": "Issues updated before this date", + "description": "Issues updated before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49498,7 +53474,7 @@ }, { "name": "updatedAfter", - "description": "Issues updated after this date", + "description": "Issues updated after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49508,7 +53484,7 @@ }, { "name": "closedBefore", - "description": "Issues closed before this date", + "description": "Issues closed before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49518,7 +53494,7 @@ }, { "name": "closedAfter", - "description": "Issues closed after this date", + "description": "Issues closed after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49528,7 +53504,7 @@ }, { "name": "search", - "description": "Search query for issue title or description", + "description": "Search query for issue title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -49538,7 +53514,7 @@ }, { "name": "types", - "description": "Filter issues by the given issue types", + "description": "Filter issues by the given issue types.", "type": { "kind": "LIST", "name": null, @@ -49556,7 +53532,7 @@ }, { "name": "state", - "description": "Current state of this issue", + "description": "Current state of this issue.", "type": { "kind": "ENUM", "name": "IssuableState", @@ -49566,7 +53542,7 @@ }, { "name": "sort", - "description": "Sort issues by this criteria", + "description": "Sort issues by this criteria.", "type": { "kind": "ENUM", "name": "IssueSort", @@ -49576,7 +53552,7 @@ }, { "name": "iterationId", - "description": "Iterations applied to the issue", + "description": "Iterations applied to the issue.", "type": { "kind": "LIST", "name": null, @@ -49590,7 +53566,7 @@ }, { "name": "epicId", - "description": "ID of an epic associated with the issues, \"none\" and \"any\" values are supported", + "description": "ID of an epic associated with the issues, \"none\" and \"any\" values are supported.", "type": { "kind": "SCALAR", "name": "String", @@ -49613,7 +53589,7 @@ "args": [ { "name": "iid", - "description": "IID of the issue. For example, \"1\"", + "description": "IID of the issue. For example, \"1\".", "type": { "kind": "SCALAR", "name": "String", @@ -49623,7 +53599,7 @@ }, { "name": "iids", - "description": "List of IIDs of issues. For example, [1, 2]", + "description": "List of IIDs of issues. For example, [1, 2].", "type": { "kind": "LIST", "name": null, @@ -49641,7 +53617,7 @@ }, { "name": "labelName", - "description": "Labels applied to this issue", + "description": "Labels applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -49655,7 +53631,7 @@ }, { "name": "milestoneTitle", - "description": "Milestone applied to this issue", + "description": "Milestone applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -49669,7 +53645,7 @@ }, { "name": "authorUsername", - "description": "Username of the author of the issue", + "description": "Username of the author of the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -49679,7 +53655,7 @@ }, { "name": "assigneeUsername", - "description": "Username of a user assigned to the issue", + "description": "Username of a user assigned to the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -49689,7 +53665,7 @@ }, { "name": "assigneeUsernames", - "description": "Usernames of users assigned to the issue", + "description": "Usernames of users assigned to the issue.", "type": { "kind": "LIST", "name": null, @@ -49707,7 +53683,7 @@ }, { "name": "assigneeId", - "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported", + "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported.", "type": { "kind": "SCALAR", "name": "String", @@ -49717,7 +53693,7 @@ }, { "name": "createdBefore", - "description": "Issues created before this date", + "description": "Issues created before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49727,7 +53703,7 @@ }, { "name": "createdAfter", - "description": "Issues created after this date", + "description": "Issues created after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49737,7 +53713,7 @@ }, { "name": "updatedBefore", - "description": "Issues updated before this date", + "description": "Issues updated before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49747,7 +53723,7 @@ }, { "name": "updatedAfter", - "description": "Issues updated after this date", + "description": "Issues updated after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49757,7 +53733,7 @@ }, { "name": "closedBefore", - "description": "Issues closed before this date", + "description": "Issues closed before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49767,7 +53743,7 @@ }, { "name": "closedAfter", - "description": "Issues closed after this date", + "description": "Issues closed after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49777,7 +53753,7 @@ }, { "name": "search", - "description": "Search query for issue title or description", + "description": "Search query for issue title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -49787,7 +53763,7 @@ }, { "name": "types", - "description": "Filter issues by the given issue types", + "description": "Filter issues by the given issue types.", "type": { "kind": "LIST", "name": null, @@ -49818,7 +53794,7 @@ "args": [ { "name": "iid", - "description": "IID of the issue. For example, \"1\"", + "description": "IID of the issue. For example, \"1\".", "type": { "kind": "SCALAR", "name": "String", @@ -49828,7 +53804,7 @@ }, { "name": "iids", - "description": "List of IIDs of issues. For example, [1, 2]", + "description": "List of IIDs of issues. For example, [1, 2].", "type": { "kind": "LIST", "name": null, @@ -49846,7 +53822,7 @@ }, { "name": "labelName", - "description": "Labels applied to this issue", + "description": "Labels applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -49860,7 +53836,7 @@ }, { "name": "milestoneTitle", - "description": "Milestone applied to this issue", + "description": "Milestone applied to this issue.", "type": { "kind": "LIST", "name": null, @@ -49874,7 +53850,7 @@ }, { "name": "authorUsername", - "description": "Username of the author of the issue", + "description": "Username of the author of the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -49884,7 +53860,7 @@ }, { "name": "assigneeUsername", - "description": "Username of a user assigned to the issue", + "description": "Username of a user assigned to the issue.", "type": { "kind": "SCALAR", "name": "String", @@ -49894,7 +53870,7 @@ }, { "name": "assigneeUsernames", - "description": "Usernames of users assigned to the issue", + "description": "Usernames of users assigned to the issue.", "type": { "kind": "LIST", "name": null, @@ -49912,7 +53888,7 @@ }, { "name": "assigneeId", - "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported", + "description": "ID of a user assigned to the issues, \"none\" and \"any\" values are supported.", "type": { "kind": "SCALAR", "name": "String", @@ -49922,7 +53898,7 @@ }, { "name": "createdBefore", - "description": "Issues created before this date", + "description": "Issues created before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49932,7 +53908,7 @@ }, { "name": "createdAfter", - "description": "Issues created after this date", + "description": "Issues created after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49942,7 +53918,7 @@ }, { "name": "updatedBefore", - "description": "Issues updated before this date", + "description": "Issues updated before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49952,7 +53928,7 @@ }, { "name": "updatedAfter", - "description": "Issues updated after this date", + "description": "Issues updated after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49962,7 +53938,7 @@ }, { "name": "closedBefore", - "description": "Issues closed before this date", + "description": "Issues closed before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49972,7 +53948,7 @@ }, { "name": "closedAfter", - "description": "Issues closed after this date", + "description": "Issues closed after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -49982,7 +53958,7 @@ }, { "name": "search", - "description": "Search query for issue title or description", + "description": "Search query for issue title or description.", "type": { "kind": "SCALAR", "name": "String", @@ -49992,7 +53968,7 @@ }, { "name": "types", - "description": "Filter issues by the given issue types", + "description": "Filter issues by the given issue types.", "type": { "kind": "LIST", "name": null, @@ -50010,7 +53986,7 @@ }, { "name": "state", - "description": "Current state of this issue", + "description": "Current state of this issue.", "type": { "kind": "ENUM", "name": "IssuableState", @@ -50020,7 +53996,7 @@ }, { "name": "sort", - "description": "Sort issues by this criteria", + "description": "Sort issues by this criteria.", "type": { "kind": "ENUM", "name": "IssueSort", @@ -50030,7 +54006,7 @@ }, { "name": "iterationId", - "description": "Iterations applied to the issue", + "description": "Iterations applied to the issue.", "type": { "kind": "LIST", "name": null, @@ -50044,7 +54020,7 @@ }, { "name": "epicId", - "description": "ID of an epic associated with the issues, \"none\" and \"any\" values are supported", + "description": "ID of an epic associated with the issues, \"none\" and \"any\" values are supported.", "type": { "kind": "SCALAR", "name": "String", @@ -50141,7 +54117,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -50453,7 +54429,7 @@ "args": [ { "name": "iid", - "description": "IID of the merge request, for example `1`", + "description": "IID of the merge request, for example `1`.", "type": { "kind": "NON_NULL", "name": null, @@ -50480,7 +54456,7 @@ "args": [ { "name": "iids", - "description": "Array of IIDs of merge requests, for example `[1, 2]`", + "description": "Array of IIDs of merge requests, for example `[1, 2]`.", "type": { "kind": "LIST", "name": null, @@ -50562,7 +54538,7 @@ }, { "name": "mergedAfter", - "description": "Merge requests merged after this date", + "description": "Merge requests merged after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -50572,7 +54548,7 @@ }, { "name": "mergedBefore", - "description": "Merge requests merged before this date", + "description": "Merge requests merged before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -50582,7 +54558,7 @@ }, { "name": "milestoneTitle", - "description": "Title of the milestone", + "description": "Title of the milestone.", "type": { "kind": "SCALAR", "name": "String", @@ -50592,7 +54568,7 @@ }, { "name": "sort", - "description": "Sort merge requests by this criteria", + "description": "Sort merge requests by this criteria.", "type": { "kind": "ENUM", "name": "MergeRequestSort", @@ -50602,7 +54578,7 @@ }, { "name": "assigneeUsername", - "description": "Username of the assignee", + "description": "Username of the assignee.", "type": { "kind": "SCALAR", "name": "String", @@ -50612,7 +54588,7 @@ }, { "name": "authorUsername", - "description": "Username of the author", + "description": "Username of the author.", "type": { "kind": "SCALAR", "name": "String", @@ -50622,7 +54598,7 @@ }, { "name": "reviewerUsername", - "description": "Username of the reviewer", + "description": "Username of the reviewer.", "type": { "kind": "SCALAR", "name": "String", @@ -50733,7 +54709,7 @@ }, { "name": "timeframe", - "description": "List items overlapping the given timeframe", + "description": "List items overlapping the given timeframe.", "type": { "kind": "INPUT_OBJECT", "name": "Timeframe", @@ -50743,7 +54719,7 @@ }, { "name": "ids", - "description": "Array of global milestone IDs, e.g., \"gid://gitlab/Milestone/1\"", + "description": "Array of global milestone IDs, e.g., \"gid://gitlab/Milestone/1\".", "type": { "kind": "LIST", "name": null, @@ -50761,7 +54737,7 @@ }, { "name": "state", - "description": "Filter milestones by state", + "description": "Filter milestones by state.", "type": { "kind": "ENUM", "name": "MilestoneStateEnum", @@ -50771,7 +54747,7 @@ }, { "name": "title", - "description": "The title of the milestone", + "description": "The title of the milestone.", "type": { "kind": "SCALAR", "name": "String", @@ -50781,7 +54757,7 @@ }, { "name": "searchTitle", - "description": "A search string for the title", + "description": "A search string for the title.", "type": { "kind": "SCALAR", "name": "String", @@ -50791,7 +54767,7 @@ }, { "name": "containingDate", - "description": "A date that the milestone contains", + "description": "A date that the milestone contains.", "type": { "kind": "SCALAR", "name": "Time", @@ -50801,7 +54777,7 @@ }, { "name": "includeAncestors", - "description": "Also return milestones in the project's parent group and its ancestors", + "description": "Also return milestones in the project's parent group and its ancestors.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -51027,7 +55003,7 @@ "args": [ { "name": "iid", - "description": "IID of the Pipeline, e.g., \"1\"", + "description": "IID of the Pipeline, e.g., \"1\".", "type": { "kind": "NON_NULL", "name": null, @@ -51068,7 +55044,7 @@ "args": [ { "name": "status", - "description": "Filter pipelines by their status", + "description": "Filter pipelines by their status.", "type": { "kind": "ENUM", "name": "PipelineStatusEnum", @@ -51078,7 +55054,7 @@ }, { "name": "ref", - "description": "Filter pipelines by the ref they are run for", + "description": "Filter pipelines by the ref they are run for.", "type": { "kind": "SCALAR", "name": "String", @@ -51088,7 +55064,7 @@ }, { "name": "sha", - "description": "Filter pipelines by the sha of the commit they are run for", + "description": "Filter pipelines by the sha of the commit they are run for.", "type": { "kind": "SCALAR", "name": "String", @@ -51165,7 +55141,7 @@ "args": [ { "name": "search", - "description": "Search query", + "description": "Search query.", "type": { "kind": "SCALAR", "name": "String", @@ -51175,7 +55151,7 @@ }, { "name": "relations", - "description": "Filter members by the given member relations", + "description": "Filter members by the given member relations.", "type": { "kind": "LIST", "name": null, @@ -51260,7 +55236,7 @@ "args": [ { "name": "tagName", - "description": "The name of the tag associated to the release", + "description": "The name of the tag associated to the release.", "type": { "kind": "NON_NULL", "name": null, @@ -51287,7 +55263,7 @@ "args": [ { "name": "sort", - "description": "Sort releases by this criteria", + "description": "Sort releases by this criteria.", "type": { "kind": "ENUM", "name": "ReleaseSort", @@ -51405,36 +55381,8 @@ "description": "Find a single requirement", "args": [ { - "name": "iid", - "description": "IID of the requirement, e.g., \"1\"", - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "iids", - "description": "List of IIDs of requirements, e.g., [1, 2]", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - } - }, - "defaultValue": null - }, - { "name": "sort", - "description": "List requirements by sort order", + "description": "List requirements by sort order.", "type": { "kind": "ENUM", "name": "Sort", @@ -51444,7 +55392,7 @@ }, { "name": "state", - "description": "Filter requirements by state", + "description": "Filter requirements by state.", "type": { "kind": "ENUM", "name": "RequirementState", @@ -51454,7 +55402,7 @@ }, { "name": "search", - "description": "Search query for requirement title", + "description": "Search query for requirement title.", "type": { "kind": "SCALAR", "name": "String", @@ -51464,7 +55412,7 @@ }, { "name": "authorUsername", - "description": "Filter requirements by author username", + "description": "Filter requirements by author username.", "type": { "kind": "LIST", "name": null, @@ -51479,6 +55427,34 @@ } }, "defaultValue": null + }, + { + "name": "iid", + "description": "IID of the requirement, e.g., \"1\".", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "iids", + "description": "List of IIDs of requirements, e.g., [1, 2].", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null } ], "type": { @@ -51508,36 +55484,8 @@ "description": "Find requirements", "args": [ { - "name": "iid", - "description": "IID of the requirement, e.g., \"1\"", - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "iids", - "description": "List of IIDs of requirements, e.g., [1, 2]", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - } - }, - "defaultValue": null - }, - { "name": "sort", - "description": "List requirements by sort order", + "description": "List requirements by sort order.", "type": { "kind": "ENUM", "name": "Sort", @@ -51547,7 +55495,7 @@ }, { "name": "state", - "description": "Filter requirements by state", + "description": "Filter requirements by state.", "type": { "kind": "ENUM", "name": "RequirementState", @@ -51557,7 +55505,7 @@ }, { "name": "search", - "description": "Search query for requirement title", + "description": "Search query for requirement title.", "type": { "kind": "SCALAR", "name": "String", @@ -51567,7 +55515,7 @@ }, { "name": "authorUsername", - "description": "Filter requirements by author username", + "description": "Filter requirements by author username.", "type": { "kind": "LIST", "name": null, @@ -51584,6 +55532,34 @@ "defaultValue": null }, { + "name": "iid", + "description": "IID of the requirement, e.g., \"1\".", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "iids", + "description": "List of IIDs of requirements, e.g., [1, 2].", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "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": { @@ -51680,7 +55656,7 @@ "args": [ { "name": "id", - "description": "ID of the Sentry issue", + "description": "ID of the Sentry issue.", "type": { "kind": "NON_NULL", "name": null, @@ -51749,7 +55725,7 @@ "args": [ { "name": "active", - "description": "Indicates if the service is active", + "description": "Indicates if the service is active.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -51759,7 +55735,7 @@ }, { "name": "type", - "description": "Class name of the service", + "description": "Class name of the service.", "type": { "kind": "ENUM", "name": "ServiceType", @@ -51836,7 +55812,7 @@ "args": [ { "name": "ids", - "description": "Array of global snippet ids, e.g., \"gid://gitlab/ProjectSnippet/1\"", + "description": "Array of global snippet ids, e.g., \"gid://gitlab/ProjectSnippet/1\".", "type": { "kind": "LIST", "name": null, @@ -51854,7 +55830,7 @@ }, { "name": "visibility", - "description": "The visibility of the snippet", + "description": "The visibility of the snippet.", "type": { "kind": "ENUM", "name": "VisibilityScopesEnum", @@ -52071,20 +56047,6 @@ "deprecationReason": null }, { - "name": "totalPipelineDuration", - "description": "Total pipeline duration for all of the pipelines in a project", - "args": [ - - ], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { "name": "userPermissions", "description": "Permissions for the current user on the resource", "args": [ @@ -52122,7 +56084,7 @@ "args": [ { "name": "projectId", - "description": "Filter vulnerabilities by project", + "description": "Filter vulnerabilities by project.", "type": { "kind": "LIST", "name": null, @@ -52140,7 +56102,7 @@ }, { "name": "reportType", - "description": "Filter vulnerabilities by report type", + "description": "Filter vulnerabilities by report type.", "type": { "kind": "LIST", "name": null, @@ -52158,7 +56120,7 @@ }, { "name": "severity", - "description": "Filter vulnerabilities by severity", + "description": "Filter vulnerabilities by severity.", "type": { "kind": "LIST", "name": null, @@ -52176,7 +56138,7 @@ }, { "name": "state", - "description": "Filter vulnerabilities by state", + "description": "Filter vulnerabilities by state.", "type": { "kind": "LIST", "name": null, @@ -52194,7 +56156,7 @@ }, { "name": "scanner", - "description": "Filter vulnerabilities by scanner", + "description": "Filter vulnerabilities by VulnerabilityScanner.externalId.", "type": { "kind": "LIST", "name": null, @@ -52212,7 +56174,7 @@ }, { "name": "sort", - "description": "List vulnerabilities by sort order", + "description": "List vulnerabilities by sort order.", "type": { "kind": "ENUM", "name": "VulnerabilitySort", @@ -52222,7 +56184,7 @@ }, { "name": "hasResolution", - "description": "Returns only the vulnerabilities which have been resolved on default branch", + "description": "Returns only the vulnerabilities which have been resolved on default branch.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -52232,7 +56194,7 @@ }, { "name": "hasIssues", - "description": "Returns only the vulnerabilities which have linked issues", + "description": "Returns only the vulnerabilities which have linked issues.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -52295,7 +56257,7 @@ "args": [ { "name": "startDate", - "description": "First day for which to fetch vulnerability history", + "description": "First day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -52309,7 +56271,7 @@ }, { "name": "endDate", - "description": "Last day for which to fetch vulnerability history", + "description": "Last day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -52429,7 +56391,7 @@ "args": [ { "name": "projectId", - "description": "Filter vulnerabilities by project", + "description": "Filter vulnerabilities by project.", "type": { "kind": "LIST", "name": null, @@ -52447,7 +56409,7 @@ }, { "name": "reportType", - "description": "Filter vulnerabilities by report type", + "description": "Filter vulnerabilities by report type.", "type": { "kind": "LIST", "name": null, @@ -52465,7 +56427,7 @@ }, { "name": "severity", - "description": "Filter vulnerabilities by severity", + "description": "Filter vulnerabilities by severity.", "type": { "kind": "LIST", "name": null, @@ -52483,7 +56445,7 @@ }, { "name": "state", - "description": "Filter vulnerabilities by state", + "description": "Filter vulnerabilities by state.", "type": { "kind": "LIST", "name": null, @@ -52501,7 +56463,7 @@ }, { "name": "scanner", - "description": "Filter vulnerabilities by scanner", + "description": "Filter vulnerabilities by scanner.", "type": { "kind": "LIST", "name": null, @@ -52568,6 +56530,20 @@ "description": null, "fields": [ { + "name": "keepLatestArtifact", + "description": "Whether to keep the latest builds artifacts.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "mergePipelinesEnabled", "description": "Whether merge pipelines are enabled.", "args": [ @@ -54030,7 +58006,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project to create the integration in", + "description": "The project to create the integration in.", "type": { "kind": "NON_NULL", "name": null, @@ -54044,7 +58020,7 @@ }, { "name": "active", - "description": "Whether the integration is receiving alerts", + "description": "Whether the integration is receiving alerts.", "type": { "kind": "NON_NULL", "name": null, @@ -54058,7 +58034,7 @@ }, { "name": "apiUrl", - "description": "Endpoint at which prometheus can be queried", + "description": "Endpoint at which prometheus can be queried.", "type": { "kind": "NON_NULL", "name": null, @@ -54132,7 +58108,7 @@ }, { "name": "integration", - "description": "The newly created integration", + "description": "The newly created integration.", "args": [ ], @@ -54160,7 +58136,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the integration to mutate", + "description": "The ID of the integration to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -54234,7 +58210,7 @@ }, { "name": "integration", - "description": "The newly created integration", + "description": "The newly created integration.", "args": [ ], @@ -54262,7 +58238,7 @@ "inputFields": [ { "name": "id", - "description": "The ID of the integration to mutate", + "description": "The ID of the integration to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -54276,7 +58252,7 @@ }, { "name": "active", - "description": "Whether the integration is receiving alerts", + "description": "Whether the integration is receiving alerts.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -54286,7 +58262,7 @@ }, { "name": "apiUrl", - "description": "Endpoint at which prometheus can be queried", + "description": "Endpoint at which prometheus can be queried.", "type": { "kind": "SCALAR", "name": "String", @@ -54356,7 +58332,7 @@ }, { "name": "integration", - "description": "The newly created integration", + "description": "The newly created integration.", "args": [ ], @@ -54394,7 +58370,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -54408,7 +58384,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -54422,7 +58398,7 @@ }, { "name": "groupPath", - "description": "The group the promoted epic will belong to", + "description": "The group the promoted epic will belong to.", "type": { "kind": "SCALAR", "name": "ID", @@ -54466,7 +58442,7 @@ }, { "name": "epic", - "description": "The epic after issue promotion", + "description": "The epic after issue promotion.", "args": [ ], @@ -54506,7 +58482,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -54536,8 +58512,22 @@ "description": "Get linted and processed contents of a CI config. Should not be requested more than once per request.", "args": [ { + "name": "projectPath", + "description": "The project of the CI config.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { "name": "content", - "description": "Contents of .gitlab-ci.yml", + "description": "Contents of '.gitlab-ci.yml'.", "type": { "kind": "NON_NULL", "name": null, @@ -54548,6 +58538,16 @@ } }, "defaultValue": null + }, + { + "name": "dryRun", + "description": "Run pipeline creation simulation, or only do static check.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null } ], "type": { @@ -54676,7 +58676,7 @@ "args": [ { "name": "text", - "description": "Text to echo back", + "description": "Text to echo back.", "type": { "kind": "NON_NULL", "name": null, @@ -54730,7 +58730,7 @@ "args": [ { "name": "fullPath", - "description": "The full path of the project, group or namespace, e.g., \"gitlab-org/gitlab-foss\"", + "description": "The full path of the project, group or namespace, e.g., \"gitlab-org/gitlab-foss\".", "type": { "kind": "NON_NULL", "name": null, @@ -54771,7 +58771,7 @@ "args": [ { "name": "identifier", - "description": "The type of measurement/statistics to retrieve", + "description": "The type of measurement/statistics to retrieve.", "type": { "kind": "NON_NULL", "name": null, @@ -54785,7 +58785,7 @@ }, { "name": "recordedAfter", - "description": "Measurement recorded after this date", + "description": "Measurement recorded after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -54795,7 +58795,7 @@ }, { "name": "recordedBefore", - "description": "Measurement recorded before this date", + "description": "Measurement recorded before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -54953,7 +58953,7 @@ "args": [ { "name": "fullPath", - "description": "The full path of the project, group or namespace, e.g., \"gitlab-org/gitlab-foss\"", + "description": "The full path of the project, group or namespace, e.g., \"gitlab-org/gitlab-foss\".", "type": { "kind": "NON_NULL", "name": null, @@ -54975,12 +58975,39 @@ "deprecationReason": null }, { + "name": "packageComposerDetails", + "description": "Find a composer package", + "args": [ + { + "name": "id", + "description": "The global ID of the package.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PackagesPackageID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PackageComposerDetails", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "project", "description": "Find a project", "args": [ { "name": "fullPath", - "description": "The full path of the project, group or namespace, e.g., \"gitlab-org/gitlab-foss\"", + "description": "The full path of the project, group or namespace, e.g., \"gitlab-org/gitlab-foss\".", "type": { "kind": "NON_NULL", "name": null, @@ -55007,7 +59034,7 @@ "args": [ { "name": "membership", - "description": "Limit projects that the current user is a member of", + "description": "Limit projects that the current user is a member of.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -55017,7 +59044,7 @@ }, { "name": "search", - "description": "Search query for project name, path, or description", + "description": "Search query for project name, path, or description.", "type": { "kind": "SCALAR", "name": "String", @@ -55027,7 +59054,7 @@ }, { "name": "ids", - "description": "Filter projects by IDs", + "description": "Filter projects by IDs.", "type": { "kind": "LIST", "name": null, @@ -55045,7 +59072,7 @@ }, { "name": "searchNamespaces", - "description": "Include namespace in project search", + "description": "Include namespace in project search.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -55055,7 +59082,7 @@ }, { "name": "sort", - "description": "Sort order of results", + "description": "Sort order of results.", "type": { "kind": "SCALAR", "name": "String", @@ -55171,7 +59198,7 @@ "args": [ { "name": "platform", - "description": "Platform to generate the instructions for", + "description": "Platform to generate the instructions for.", "type": { "kind": "NON_NULL", "name": null, @@ -55185,7 +59212,7 @@ }, { "name": "architecture", - "description": "Architecture to generate the instructions for", + "description": "Architecture to generate the instructions for.", "type": { "kind": "NON_NULL", "name": null, @@ -55199,7 +59226,7 @@ }, { "name": "projectId", - "description": "Project to register the runner for", + "description": "Project to register the runner for.", "type": { "kind": "SCALAR", "name": "ProjectID", @@ -55209,7 +59236,7 @@ }, { "name": "groupId", - "description": "Group to register the runner for", + "description": "Group to register the runner for.", "type": { "kind": "SCALAR", "name": "GroupID", @@ -55232,7 +59259,7 @@ "args": [ { "name": "ids", - "description": "Array of global snippet ids, e.g., \"gid://gitlab/ProjectSnippet/1\"", + "description": "Array of global snippet ids, e.g., \"gid://gitlab/ProjectSnippet/1\".", "type": { "kind": "LIST", "name": null, @@ -55250,7 +59277,7 @@ }, { "name": "visibility", - "description": "The visibility of the snippet", + "description": "The visibility of the snippet.", "type": { "kind": "ENUM", "name": "VisibilityScopesEnum", @@ -55260,7 +59287,7 @@ }, { "name": "authorId", - "description": "The ID of an author", + "description": "The ID of an author.", "type": { "kind": "SCALAR", "name": "UserID", @@ -55270,7 +59297,7 @@ }, { "name": "projectId", - "description": "The ID of a project", + "description": "The ID of a project.", "type": { "kind": "SCALAR", "name": "ProjectID", @@ -55280,7 +59307,7 @@ }, { "name": "type", - "description": "The type of snippet", + "description": "The type of snippet.", "type": { "kind": "ENUM", "name": "TypeEnum", @@ -55290,7 +59317,7 @@ }, { "name": "explore", - "description": "Explore personal snippets", + "description": "Explore personal snippets.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -55353,7 +59380,7 @@ "args": [ { "name": "id", - "description": "ID of the User", + "description": "ID of the User.", "type": { "kind": "SCALAR", "name": "UserID", @@ -55363,7 +59390,7 @@ }, { "name": "username", - "description": "Username of the User", + "description": "Username of the User.", "type": { "kind": "SCALAR", "name": "String", @@ -55386,7 +59413,7 @@ "args": [ { "name": "ids", - "description": "List of user Global IDs", + "description": "List of user Global IDs.", "type": { "kind": "LIST", "name": null, @@ -55404,7 +59431,7 @@ }, { "name": "usernames", - "description": "List of usernames", + "description": "List of usernames.", "type": { "kind": "LIST", "name": null, @@ -55422,7 +59449,7 @@ }, { "name": "sort", - "description": "Sort users by this criteria", + "description": "Sort users by this criteria.", "type": { "kind": "ENUM", "name": "Sort", @@ -55441,6 +59468,16 @@ "defaultValue": null }, { + "name": "admins", + "description": "Return only admin users.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -55495,7 +59532,7 @@ "args": [ { "name": "projectId", - "description": "Filter vulnerabilities by project", + "description": "Filter vulnerabilities by project.", "type": { "kind": "LIST", "name": null, @@ -55513,7 +59550,7 @@ }, { "name": "reportType", - "description": "Filter vulnerabilities by report type", + "description": "Filter vulnerabilities by report type.", "type": { "kind": "LIST", "name": null, @@ -55531,7 +59568,7 @@ }, { "name": "severity", - "description": "Filter vulnerabilities by severity", + "description": "Filter vulnerabilities by severity.", "type": { "kind": "LIST", "name": null, @@ -55549,7 +59586,7 @@ }, { "name": "state", - "description": "Filter vulnerabilities by state", + "description": "Filter vulnerabilities by state.", "type": { "kind": "LIST", "name": null, @@ -55567,7 +59604,7 @@ }, { "name": "scanner", - "description": "Filter vulnerabilities by scanner", + "description": "Filter vulnerabilities by VulnerabilityScanner.externalId.", "type": { "kind": "LIST", "name": null, @@ -55585,7 +59622,7 @@ }, { "name": "sort", - "description": "List vulnerabilities by sort order", + "description": "List vulnerabilities by sort order.", "type": { "kind": "ENUM", "name": "VulnerabilitySort", @@ -55595,7 +59632,7 @@ }, { "name": "hasResolution", - "description": "Returns only the vulnerabilities which have been resolved on default branch", + "description": "Returns only the vulnerabilities which have been resolved on default branch.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -55605,7 +59642,7 @@ }, { "name": "hasIssues", - "description": "Returns only the vulnerabilities which have linked issues", + "description": "Returns only the vulnerabilities which have linked issues.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -55668,7 +59705,7 @@ "args": [ { "name": "startDate", - "description": "First day for which to fetch vulnerability history", + "description": "First day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -55682,7 +59719,7 @@ }, { "name": "endDate", - "description": "Last day for which to fetch vulnerability history", + "description": "Last day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -55749,7 +59786,7 @@ "args": [ { "name": "startDate", - "description": "First day for which to fetch vulnerability history", + "description": "First day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -55763,7 +59800,7 @@ }, { "name": "endDate", - "description": "Last day for which to fetch vulnerability history", + "description": "Last day for which to fetch vulnerability history.", "type": { "kind": "NON_NULL", "name": null, @@ -56743,7 +60780,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Full path of the project the release is associated with", + "description": "Full path of the project the release is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -56757,7 +60794,7 @@ }, { "name": "tagName", - "description": "Name of the tag to associate with the release", + "description": "Name of the tag to associate with the release.", "type": { "kind": "NON_NULL", "name": null, @@ -56771,7 +60808,7 @@ }, { "name": "ref", - "description": "The commit SHA or branch name to use if creating a new tag", + "description": "The commit SHA or branch name to use if creating a new tag.", "type": { "kind": "SCALAR", "name": "String", @@ -56781,7 +60818,7 @@ }, { "name": "name", - "description": "Name of the release", + "description": "Name of the release.", "type": { "kind": "SCALAR", "name": "String", @@ -56791,7 +60828,7 @@ }, { "name": "description", - "description": "Description (also known as \"release notes\") of the release", + "description": "Description (also known as \"release notes\") of the release.", "type": { "kind": "SCALAR", "name": "String", @@ -56829,7 +60866,7 @@ }, { "name": "assets", - "description": "Assets associated to the release", + "description": "Assets associated to the release.", "type": { "kind": "INPUT_OBJECT", "name": "ReleaseAssetsInput", @@ -56899,7 +60936,7 @@ }, { "name": "release", - "description": "The release after mutation", + "description": "The release after mutation.", "args": [ ], @@ -56927,7 +60964,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Full path of the project the release is associated with", + "description": "Full path of the project the release is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -57572,7 +61609,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Full path of the project the release is associated with", + "description": "Full path of the project the release is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -57586,7 +61623,7 @@ }, { "name": "tagName", - "description": "Name of the tag associated with the release", + "description": "Name of the tag associated with the release.", "type": { "kind": "NON_NULL", "name": null, @@ -57600,7 +61637,7 @@ }, { "name": "name", - "description": "Name of the release", + "description": "Name of the release.", "type": { "kind": "SCALAR", "name": "String", @@ -57610,7 +61647,7 @@ }, { "name": "description", - "description": "Description (release notes) of the release", + "description": "Description (release notes) of the release.", "type": { "kind": "SCALAR", "name": "String", @@ -57620,7 +61657,7 @@ }, { "name": "releasedAt", - "description": "The release date", + "description": "The release date.", "type": { "kind": "SCALAR", "name": "Time", @@ -57736,7 +61773,7 @@ "inputFields": [ { "name": "awardableId", - "description": "The global ID of the awardable resource", + "description": "The global ID of the awardable resource.", "type": { "kind": "NON_NULL", "name": null, @@ -57784,7 +61821,7 @@ "fields": [ { "name": "awardEmoji", - "description": "The award emoji after mutation", + "description": "The award emoji after mutation.", "args": [ ], @@ -57852,7 +61889,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the project to remove from the Instance Security Dashboard", + "description": "ID of the project to remove from the Instance Security Dashboard.", "type": { "kind": "NON_NULL", "name": null, @@ -57940,7 +61977,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the DiffNote to update", + "description": "The global ID of the DiffNote to update.", "type": { "kind": "NON_NULL", "name": null, @@ -58028,7 +62065,7 @@ }, { "name": "note", - "description": "The note after mutation", + "description": "The note after mutation.", "args": [ ], @@ -58109,7 +62146,7 @@ "args": [ { "name": "path", - "description": "The path to get the tree for. Default value is the root of the repository", + "description": "The path to get the tree for. Default value is the root of the repository.", "type": { "kind": "SCALAR", "name": "String", @@ -58119,7 +62156,7 @@ }, { "name": "ref", - "description": "The commit ref to get the tree for. Default value is HEAD", + "description": "The commit ref to get the tree for. Default value is HEAD.", "type": { "kind": "SCALAR", "name": "String", @@ -58129,7 +62166,7 @@ }, { "name": "recursive", - "description": "Used to get a recursive tree. Default is false", + "description": "Used to get a recursive tree. Default is false.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -58329,7 +62366,7 @@ "args": [ { "name": "sort", - "description": "List test reports by sort order", + "description": "List test reports by sort order.", "type": { "kind": "ENUM", "name": "Sort", @@ -58831,7 +62868,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the vulnerability to be reverted", + "description": "ID of the vulnerability to be reverted.", "type": { "kind": "NON_NULL", "name": null, @@ -58905,7 +62942,7 @@ }, { "name": "vulnerability", - "description": "The vulnerability after revert", + "description": "The vulnerability after revert.", "args": [ ], @@ -62079,7 +66116,7 @@ "args": [ { "name": "id", - "description": "ID of the Sentry issue", + "description": "ID of the Sentry issue.", "type": { "kind": "NON_NULL", "name": null, @@ -62106,7 +66143,7 @@ "args": [ { "name": "id", - "description": "ID of the Sentry issue", + "description": "ID of the Sentry issue.", "type": { "kind": "NON_NULL", "name": null, @@ -62133,7 +66170,7 @@ "args": [ { "name": "searchTerm", - "description": "Search query for the Sentry error details", + "description": "Search query for the Sentry error details.", "type": { "kind": "SCALAR", "name": "String", @@ -62143,7 +66180,7 @@ }, { "name": "sort", - "description": "Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default", + "description": "Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default.", "type": { "kind": "SCALAR", "name": "String", @@ -62845,12 +66882,6 @@ "interfaces": null, "enumValues": [ { - "name": "ALERTS_SERVICE", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { "name": "ASANA_SERVICE", "description": null, "isDeprecated": false, @@ -63112,7 +67143,7 @@ "args": [ { "name": "paths", - "description": "Paths of the blobs", + "description": "Paths of the blobs.", "type": { "kind": "LIST", "name": null, @@ -65247,7 +69278,7 @@ "inputFields": [ { "name": "id", - "description": "Global ID of the Terraform state", + "description": "Global ID of the Terraform state.", "type": { "kind": "NON_NULL", "name": null, @@ -65390,7 +69421,7 @@ "inputFields": [ { "name": "id", - "description": "Global ID of the Terraform state", + "description": "Global ID of the Terraform state.", "type": { "kind": "NON_NULL", "name": null, @@ -65478,7 +69509,7 @@ "inputFields": [ { "name": "id", - "description": "Global ID of the Terraform state", + "description": "Global ID of the Terraform state.", "type": { "kind": "NON_NULL", "name": null, @@ -66878,7 +70909,7 @@ "inputFields": [ { "name": "targetId", - "description": "The global ID of the to-do item's parent. Issues, merge requests, designs and epics are supported", + "description": "The global ID of the to-do item's parent. Issues, merge requests, designs and epics are supported.", "type": { "kind": "NON_NULL", "name": null, @@ -66952,7 +70983,7 @@ }, { "name": "todo", - "description": "The to-do created", + "description": "The to-do created.", "args": [ ], @@ -67035,7 +71066,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the todo to mark as done", + "description": "The global ID of the todo to mark as done.", "type": { "kind": "NON_NULL", "name": null, @@ -67109,7 +71140,7 @@ }, { "name": "todo", - "description": "The requested todo", + "description": "The requested todo.", "args": [ ], @@ -67141,7 +71172,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the todo to restore", + "description": "The global ID of the todo to restore.", "type": { "kind": "NON_NULL", "name": null, @@ -67176,7 +71207,7 @@ "inputFields": [ { "name": "ids", - "description": "The global IDs of the todos to restore (a maximum of 50 is supported at once)", + "description": "The global IDs of the todos to restore (a maximum of 50 is supported at once).", "type": { "kind": "NON_NULL", "name": null, @@ -67258,7 +71289,7 @@ }, { "name": "todos", - "description": "Updated todos", + "description": "Updated todos.", "args": [ ], @@ -67284,7 +71315,7 @@ }, { "name": "updatedIds", - "description": "The IDs of the updated todo items Deprecated in 13.2: Use todos.", + "description": "The IDs of the updated todo items. Deprecated in 13.2: Use todos.", "args": [ ], @@ -67363,7 +71394,7 @@ }, { "name": "todo", - "description": "The requested todo", + "description": "The requested todo.", "args": [ ], @@ -67535,7 +71566,7 @@ }, { "name": "todos", - "description": "Updated todos", + "description": "Updated todos.", "args": [ ], @@ -67561,7 +71592,7 @@ }, { "name": "updatedIds", - "description": "Ids of the updated todos Deprecated in 13.2: Use todos.", + "description": "Ids of the updated todos. Deprecated in 13.2: Use todos.", "args": [ ], @@ -67601,7 +71632,7 @@ "inputFields": [ { "name": "awardableId", - "description": "The global ID of the awardable resource", + "description": "The global ID of the awardable resource.", "type": { "kind": "NON_NULL", "name": null, @@ -67649,7 +71680,7 @@ "fields": [ { "name": "awardEmoji", - "description": "The award emoji after mutation", + "description": "The award emoji after mutation.", "args": [ ], @@ -68231,7 +72262,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the alert to mutate is in", + "description": "The project the alert to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -68245,7 +72276,7 @@ }, { "name": "iid", - "description": "The IID of the alert to mutate", + "description": "The IID of the alert to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -68259,7 +72290,7 @@ }, { "name": "status", - "description": "The status to set the alert", + "description": "The status to set the alert.", "type": { "kind": "NON_NULL", "name": null, @@ -68293,7 +72324,7 @@ "fields": [ { "name": "alert", - "description": "The alert after mutation", + "description": "The alert after mutation.", "args": [ ], @@ -68347,7 +72378,7 @@ }, { "name": "issue", - "description": "The issue created after mutation", + "description": "The issue created after mutation.", "args": [ ], @@ -68361,7 +72392,7 @@ }, { "name": "todo", - "description": "The todo after mutation", + "description": "The todo after mutation.", "args": [ ], @@ -68389,7 +72420,7 @@ "inputFields": [ { "name": "boardId", - "description": "The board global ID", + "description": "The board global ID.", "type": { "kind": "NON_NULL", "name": null, @@ -68403,7 +72434,7 @@ }, { "name": "epicId", - "description": "ID of an epic to set preferences for", + "description": "ID of an epic to set preferences for.", "type": { "kind": "NON_NULL", "name": null, @@ -68417,7 +72448,7 @@ }, { "name": "collapsed", - "description": "Whether the epic should be collapsed in the board", + "description": "Whether the epic should be collapsed in the board.", "type": { "kind": "NON_NULL", "name": null, @@ -68465,7 +72496,7 @@ }, { "name": "epicUserPreferences", - "description": "User preferences for the epic in the board after mutation", + "description": "User preferences for the epic in the board after mutation.", "args": [ ], @@ -68562,6 +72593,82 @@ "defaultValue": null }, { + "name": "assigneeId", + "description": "The ID of user to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "UserID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "milestoneId", + "description": "The ID of milestone to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "MilestoneID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "iterationId", + "description": "The ID of iteration to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "IterationID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "weight", + "description": "The weight value to be assigned to the board.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "labels", + "description": "Labels of the issue", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "labelIds", + "description": "The IDs of labels to be added to the board.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LabelID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -68598,7 +72705,7 @@ }, { "name": "position", - "description": "Position of list within the board", + "description": "Position of list within the board.", "type": { "kind": "SCALAR", "name": "Int", @@ -68608,7 +72715,7 @@ }, { "name": "collapsed", - "description": "Indicates if list is collapsed for this user", + "description": "Indicates if list is collapsed for this user.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -68678,7 +72785,7 @@ }, { "name": "list", - "description": "Mutated list", + "description": "Mutated list.", "args": [ ], @@ -68773,7 +72880,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the compliance framework to update", + "description": "The global ID of the compliance framework to update.", "type": { "kind": "NON_NULL", "name": null, @@ -68786,32 +72893,16 @@ "defaultValue": null }, { - "name": "name", - "description": "New name for the compliance framework", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "description", - "description": "New description for the compliance framework", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "color", - "description": "New color representation of the compliance framework in hex format. e.g. #FCA121", + "name": "params", + "description": "Parameters to update the compliance framework with.", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ComplianceFrameworkInput", + "ofType": null + } }, "defaultValue": null }, @@ -68851,7 +72942,7 @@ }, { "name": "complianceFramework", - "description": "The compliance framework after mutation", + "description": "The compliance framework after mutation.", "args": [ ], @@ -68905,7 +72996,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project path where the container expiration policy is located", + "description": "The project path where the container expiration policy is located.", "type": { "kind": "NON_NULL", "name": null, @@ -69013,7 +73104,7 @@ }, { "name": "containerExpirationPolicy", - "description": "The container expiration policy after mutation", + "description": "The container expiration policy after mutation.", "args": [ ], @@ -69067,7 +73158,7 @@ "inputFields": [ { "name": "name", - "description": "Name of the segment", + "description": "Name of the segment.", "type": { "kind": "NON_NULL", "name": null, @@ -69081,7 +73172,7 @@ }, { "name": "groupIds", - "description": "The array of group IDs to set for the segment", + "description": "The array of group IDs to set for the segment.", "type": { "kind": "LIST", "name": null, @@ -69099,7 +73190,7 @@ }, { "name": "id", - "description": "ID of the segment", + "description": "ID of the segment.", "type": { "kind": "NON_NULL", "name": null, @@ -69173,7 +73264,7 @@ }, { "name": "segment", - "description": "The segment after mutation", + "description": "The segment after mutation.", "args": [ ], @@ -69252,7 +73343,7 @@ "inputFields": [ { "name": "iid", - "description": "The IID of the epic to mutate", + "description": "The IID of the epic to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -69266,7 +73357,7 @@ }, { "name": "groupPath", - "description": "The group the epic to mutate is in", + "description": "The group the epic to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -69280,7 +73371,7 @@ }, { "name": "title", - "description": "The title of the epic", + "description": "The title of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -69290,7 +73381,7 @@ }, { "name": "description", - "description": "The description of the epic", + "description": "The description of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -69300,7 +73391,7 @@ }, { "name": "confidential", - "description": "Indicates if the epic is confidential", + "description": "Indicates if the epic is confidential.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -69310,7 +73401,7 @@ }, { "name": "startDateFixed", - "description": "The start date of the epic", + "description": "The start date of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -69320,7 +73411,7 @@ }, { "name": "dueDateFixed", - "description": "The end date of the epic", + "description": "The end date of the epic.", "type": { "kind": "SCALAR", "name": "String", @@ -69330,7 +73421,7 @@ }, { "name": "startDateIsFixed", - "description": "Indicates start date should be sourced from start_date_fixed field not the issue milestones", + "description": "Indicates start date should be sourced from start_date_fixed field not the issue milestones.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -69340,7 +73431,7 @@ }, { "name": "dueDateIsFixed", - "description": "Indicates end date should be sourced from due_date_fixed field not the issue milestones", + "description": "Indicates end date should be sourced from due_date_fixed field not the issue milestones.", "type": { "kind": "SCALAR", "name": "Boolean", @@ -69386,7 +73477,7 @@ }, { "name": "stateEvent", - "description": "State event for the epic", + "description": "State event for the epic.", "type": { "kind": "ENUM", "name": "EpicStateEvent", @@ -69430,7 +73521,7 @@ }, { "name": "epic", - "description": "The epic after mutation", + "description": "The epic after mutation.", "args": [ ], @@ -69484,7 +73575,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the note to update", + "description": "The global ID of the note to update.", "type": { "kind": "NON_NULL", "name": null, @@ -69578,7 +73669,7 @@ }, { "name": "note", - "description": "The note after mutation", + "description": "The note after mutation.", "args": [ ], @@ -69606,7 +73697,7 @@ "inputFields": [ { "name": "projectPath", - "description": "The project the issue to mutate is in", + "description": "The project the issue to mutate is in.", "type": { "kind": "NON_NULL", "name": null, @@ -69620,7 +73711,7 @@ }, { "name": "iid", - "description": "The IID of the issue to mutate", + "description": "The IID of the issue to mutate.", "type": { "kind": "NON_NULL", "name": null, @@ -69684,7 +73775,7 @@ }, { "name": "milestoneId", - "description": "The ID of the milestone to assign to the issue. On update milestone will be removed if set to null", + "description": "The ID of the milestone to assign to the issue. On update milestone will be removed if set to null.", "type": { "kind": "SCALAR", "name": "ID", @@ -69694,7 +73785,7 @@ }, { "name": "addLabelIds", - "description": "The IDs of labels to be added to the issue", + "description": "The IDs of labels to be added to the issue.", "type": { "kind": "LIST", "name": null, @@ -69712,7 +73803,7 @@ }, { "name": "removeLabelIds", - "description": "The IDs of labels to be removed from the issue", + "description": "The IDs of labels to be removed from the issue.", "type": { "kind": "LIST", "name": null, @@ -69730,7 +73821,7 @@ }, { "name": "stateEvent", - "description": "Close or reopen an issue", + "description": "Close or reopen an issue.", "type": { "kind": "ENUM", "name": "IssueStateEvent", @@ -69740,7 +73831,7 @@ }, { "name": "healthStatus", - "description": "The desired health status", + "description": "The desired health status.", "type": { "kind": "ENUM", "name": "HealthStatus", @@ -69750,7 +73841,7 @@ }, { "name": "weight", - "description": "The weight of the issue", + "description": "The weight of the issue.", "type": { "kind": "SCALAR", "name": "Int", @@ -69760,7 +73851,7 @@ }, { "name": "epicId", - "description": "The ID of the parent epic. NULL when removing the association", + "description": "The ID of the parent epic. NULL when removing the association.", "type": { "kind": "SCALAR", "name": "EpicID", @@ -69830,7 +73921,7 @@ }, { "name": "issue", - "description": "The issue after mutation", + "description": "The issue after mutation.", "args": [ ], @@ -70008,13 +74099,135 @@ }, { "kind": "INPUT_OBJECT", + "name": "UpdateNamespacePackageSettingsInput", + "description": "Autogenerated input type of UpdateNamespacePackageSettings", + "fields": null, + "inputFields": [ + { + "name": "namespacePath", + "description": "The namespace path where the namespace package setting is located.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "mavenDuplicatesAllowed", + "description": "Indicates whether duplicate Maven packages are allowed for this namespace.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "mavenDuplicateExceptionRegex", + "description": "When maven_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect.", + "type": { + "kind": "SCALAR", + "name": "UntrustedRegexp", + "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": "UpdateNamespacePackageSettingsPayload", + "description": "Autogenerated return type of UpdateNamespacePackageSettings", + "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": "packageSettings", + "description": "The namespace package setting after mutation.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "PackageSettings", + "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, "inputFields": [ { "name": "id", - "description": "The global ID of the note to update", + "description": "The global ID of the note to update.", "type": { "kind": "NON_NULL", "name": null, @@ -70108,7 +74321,7 @@ }, { "name": "note", - "description": "The note after mutation", + "description": "The note after mutation.", "args": [ ], @@ -70136,7 +74349,7 @@ "inputFields": [ { "name": "title", - "description": "Title of the requirement", + "description": "Title of the requirement.", "type": { "kind": "SCALAR", "name": "String", @@ -70146,7 +74359,7 @@ }, { "name": "description", - "description": "Description of the requirement", + "description": "Description of the requirement.", "type": { "kind": "SCALAR", "name": "String", @@ -70156,7 +74369,7 @@ }, { "name": "projectPath", - "description": "Full project path the requirement is associated with", + "description": "Full project path the requirement is associated with.", "type": { "kind": "NON_NULL", "name": null, @@ -70170,7 +74383,7 @@ }, { "name": "state", - "description": "State of the requirement", + "description": "State of the requirement.", "type": { "kind": "ENUM", "name": "RequirementState", @@ -70180,7 +74393,7 @@ }, { "name": "iid", - "description": "The IID of the requirement to update", + "description": "The IID of the requirement to update.", "type": { "kind": "NON_NULL", "name": null, @@ -70194,7 +74407,7 @@ }, { "name": "lastTestReportState", - "description": "Creates a test report for the requirement with the given state", + "description": "Creates a test report for the requirement with the given state.", "type": { "kind": "ENUM", "name": "TestReportState", @@ -70264,7 +74477,7 @@ }, { "name": "requirement", - "description": "Requirement after mutation", + "description": "Requirement after mutation.", "args": [ ], @@ -70292,7 +74505,7 @@ "inputFields": [ { "name": "id", - "description": "The global ID of the snippet to update", + "description": "The global ID of the snippet to update.", "type": { "kind": "NON_NULL", "name": null, @@ -70306,7 +74519,7 @@ }, { "name": "title", - "description": "Title of the snippet", + "description": "Title of the snippet.", "type": { "kind": "SCALAR", "name": "String", @@ -70316,7 +74529,7 @@ }, { "name": "description", - "description": "Description of the snippet", + "description": "Description of the snippet.", "type": { "kind": "SCALAR", "name": "String", @@ -70326,7 +74539,7 @@ }, { "name": "visibilityLevel", - "description": "The visibility level of the snippet", + "description": "The visibility level of the snippet.", "type": { "kind": "ENUM", "name": "VisibilityLevelsEnum", @@ -70336,7 +74549,7 @@ }, { "name": "blobActions", - "description": "Actions to perform over the snippet repository and blobs", + "description": "Actions to perform over the snippet repository and blobs.", "type": { "kind": "LIST", "name": null, @@ -70414,7 +74627,7 @@ }, { "name": "snippet", - "description": "The snippet after mutation", + "description": "The snippet after mutation.", "args": [ ], @@ -70428,7 +74641,7 @@ }, { "name": "spam", - "description": "Indicates whether the operation returns a record detected as spam", + "description": "Indicates whether the operation returns a record detected as spam.", "args": [ ], @@ -70469,7 +74682,7 @@ "args": [ { "name": "iids", - "description": "Array of IIDs of merge requests, for example `[1, 2]`", + "description": "Array of IIDs of merge requests, for example `[1, 2]`.", "type": { "kind": "LIST", "name": null, @@ -70551,7 +74764,7 @@ }, { "name": "mergedAfter", - "description": "Merge requests merged after this date", + "description": "Merge requests merged after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -70561,7 +74774,7 @@ }, { "name": "mergedBefore", - "description": "Merge requests merged before this date", + "description": "Merge requests merged before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -70571,7 +74784,7 @@ }, { "name": "milestoneTitle", - "description": "Title of the milestone", + "description": "Title of the milestone.", "type": { "kind": "SCALAR", "name": "String", @@ -70581,7 +74794,7 @@ }, { "name": "sort", - "description": "Sort merge requests by this criteria", + "description": "Sort merge requests by this criteria.", "type": { "kind": "ENUM", "name": "MergeRequestSort", @@ -70611,7 +74824,7 @@ }, { "name": "authorUsername", - "description": "Username of the author", + "description": "Username of the author.", "type": { "kind": "SCALAR", "name": "String", @@ -70621,7 +74834,7 @@ }, { "name": "reviewerUsername", - "description": "Username of the reviewer", + "description": "Username of the reviewer.", "type": { "kind": "SCALAR", "name": "String", @@ -70684,7 +74897,7 @@ "args": [ { "name": "iids", - "description": "Array of IIDs of merge requests, for example `[1, 2]`", + "description": "Array of IIDs of merge requests, for example `[1, 2]`.", "type": { "kind": "LIST", "name": null, @@ -70766,7 +74979,7 @@ }, { "name": "mergedAfter", - "description": "Merge requests merged after this date", + "description": "Merge requests merged after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -70776,7 +74989,7 @@ }, { "name": "mergedBefore", - "description": "Merge requests merged before this date", + "description": "Merge requests merged before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -70786,7 +74999,7 @@ }, { "name": "milestoneTitle", - "description": "Title of the milestone", + "description": "Title of the milestone.", "type": { "kind": "SCALAR", "name": "String", @@ -70796,7 +75009,7 @@ }, { "name": "sort", - "description": "Sort merge requests by this criteria", + "description": "Sort merge requests by this criteria.", "type": { "kind": "ENUM", "name": "MergeRequestSort", @@ -70826,7 +75039,7 @@ }, { "name": "assigneeUsername", - "description": "Username of the assignee", + "description": "Username of the assignee.", "type": { "kind": "SCALAR", "name": "String", @@ -70836,7 +75049,7 @@ }, { "name": "reviewerUsername", - "description": "Username of the reviewer", + "description": "Username of the reviewer.", "type": { "kind": "SCALAR", "name": "String", @@ -71111,7 +75324,7 @@ "args": [ { "name": "iids", - "description": "Array of IIDs of merge requests, for example `[1, 2]`", + "description": "Array of IIDs of merge requests, for example `[1, 2]`.", "type": { "kind": "LIST", "name": null, @@ -71193,7 +75406,7 @@ }, { "name": "mergedAfter", - "description": "Merge requests merged after this date", + "description": "Merge requests merged after this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -71203,7 +75416,7 @@ }, { "name": "mergedBefore", - "description": "Merge requests merged before this date", + "description": "Merge requests merged before this date.", "type": { "kind": "SCALAR", "name": "Time", @@ -71213,7 +75426,7 @@ }, { "name": "milestoneTitle", - "description": "Title of the milestone", + "description": "Title of the milestone.", "type": { "kind": "SCALAR", "name": "String", @@ -71223,7 +75436,7 @@ }, { "name": "sort", - "description": "Sort merge requests by this criteria", + "description": "Sort merge requests by this criteria.", "type": { "kind": "ENUM", "name": "MergeRequestSort", @@ -71253,7 +75466,7 @@ }, { "name": "authorUsername", - "description": "Username of the author", + "description": "Username of the author.", "type": { "kind": "SCALAR", "name": "String", @@ -71263,7 +75476,7 @@ }, { "name": "assigneeUsername", - "description": "Username of the assignee", + "description": "Username of the assignee.", "type": { "kind": "SCALAR", "name": "String", @@ -71326,7 +75539,7 @@ "args": [ { "name": "ids", - "description": "Array of global snippet ids, e.g., \"gid://gitlab/ProjectSnippet/1\"", + "description": "Array of global snippet ids, e.g., \"gid://gitlab/ProjectSnippet/1\".", "type": { "kind": "LIST", "name": null, @@ -71344,7 +75557,7 @@ }, { "name": "visibility", - "description": "The visibility of the snippet", + "description": "The visibility of the snippet.", "type": { "kind": "ENUM", "name": "VisibilityScopesEnum", @@ -71354,7 +75567,7 @@ }, { "name": "type", - "description": "The type of snippet", + "description": "The type of snippet.", "type": { "kind": "ENUM", "name": "TypeEnum", @@ -71417,7 +75630,7 @@ "args": [ { "name": "search", - "description": "Search query", + "description": "Search query.", "type": { "kind": "SCALAR", "name": "String", @@ -71512,7 +75725,7 @@ "args": [ { "name": "action", - "description": "The action to be filtered", + "description": "The action to be filtered.", "type": { "kind": "LIST", "name": null, @@ -71530,7 +75743,7 @@ }, { "name": "authorId", - "description": "The ID of an author", + "description": "The ID of an author.", "type": { "kind": "LIST", "name": null, @@ -71548,7 +75761,7 @@ }, { "name": "projectId", - "description": "The ID of a project", + "description": "The ID of a project.", "type": { "kind": "LIST", "name": null, @@ -71566,7 +75779,7 @@ }, { "name": "groupId", - "description": "The ID of a group", + "description": "The ID of a group.", "type": { "kind": "LIST", "name": null, @@ -71584,7 +75797,7 @@ }, { "name": "state", - "description": "The state of the todo", + "description": "The state of the todo.", "type": { "kind": "LIST", "name": null, @@ -71602,7 +75815,7 @@ }, { "name": "type", - "description": "The type of the todo", + "description": "The type of the todo.", "type": { "kind": "LIST", "name": null, @@ -72530,6 +76743,20 @@ "deprecationReason": null }, { + "name": "confirmedBy", + "description": "The user that confirmed the vulnerability.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "User", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "description", "description": "Description of the vulnerability", "args": [ @@ -72633,6 +76860,20 @@ "deprecationReason": null }, { + "name": "dismissedBy", + "description": "The user that dismissed the vulnerability.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "User", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "externalIssueLinks", "description": "List of external issue links related to the vulnerability", "args": [ @@ -72753,7 +76994,7 @@ "args": [ { "name": "linkType", - "description": "Filter issue links by link type", + "description": "Filter issue links by link type.", "type": { "kind": "ENUM", "name": "VulnerabilityIssueLinkType", @@ -72956,6 +77197,20 @@ "deprecationReason": null }, { + "name": "resolvedBy", + "description": "The user that resolved the vulnerability.", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "User", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "resolvedOnDefaultBranch", "description": "Indicates whether the vulnerability is fixed on the default branch or not", "args": [ @@ -73099,7 +77354,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the vulnerability to be confirmed", + "description": "ID of the vulnerability to be confirmed.", "type": { "kind": "NON_NULL", "name": null, @@ -73173,7 +77428,7 @@ }, { "name": "vulnerability", - "description": "The vulnerability after state change", + "description": "The vulnerability after state change.", "args": [ ], @@ -73268,7 +77523,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the vulnerability to be dismissed", + "description": "ID of the vulnerability to be dismissed.", "type": { "kind": "NON_NULL", "name": null, @@ -73282,7 +77537,7 @@ }, { "name": "comment", - "description": "Reason why vulnerability should be dismissed", + "description": "Comment why vulnerability should be dismissed.", "type": { "kind": "SCALAR", "name": "String", @@ -73291,6 +77546,16 @@ "defaultValue": null }, { + "name": "dismissalReason", + "description": "Reason why vulnerability should be dismissed.", + "type": { + "kind": "ENUM", + "name": "VulnerabilityDismissalReason", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -73352,7 +77617,7 @@ }, { "name": "vulnerability", - "description": "The vulnerability after dismissal", + "description": "The vulnerability after dismissal.", "args": [ ], @@ -73373,6 +77638,47 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "VulnerabilityDismissalReason", + "description": "The dismissal reason of the Vulnerability", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "ACCEPTABLE_RISK", + "description": "The likelihood of the Vulnerability occurring and its impact are deemed acceptable", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FALSE_POSITIVE", + "description": "The Vulnerability was incorrectly identified as being present", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MITIGATING_CONTROL", + "description": "There is a mitigating control that eliminates the Vulnerability or makes its risk acceptable", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "USED_IN_TESTS", + "description": "The Vulnerability is used in tests and does not pose an actual risk", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NOT_APPLICABLE", + "description": "Other reasons for dismissal", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "VulnerabilityEdge", "description": "An edge in a connection.", @@ -74857,7 +79163,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the vulnerability to be resolved", + "description": "ID of the vulnerability to be resolved.", "type": { "kind": "NON_NULL", "name": null, @@ -74931,7 +79237,7 @@ }, { "name": "vulnerability", - "description": "The vulnerability after state change", + "description": "The vulnerability after state change.", "args": [ ], @@ -74959,7 +79265,7 @@ "inputFields": [ { "name": "id", - "description": "ID of the vulnerability to be reverted", + "description": "ID of the vulnerability to be reverted.", "type": { "kind": "NON_NULL", "name": null, @@ -75033,7 +79339,7 @@ }, { "name": "vulnerability", - "description": "The vulnerability after revert", + "description": "The vulnerability after revert.", "args": [ ], diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 4cb79d71ab5..c098de16ef6 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -50,7 +50,7 @@ Autogenerated return type of AddAwardEmoji. | Field | Type | Description | | ----- | ---- | ----------- | -| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `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. | @@ -62,7 +62,7 @@ Autogenerated return type of AddProjectToSecurityDashboard. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `project` | Project | Project that was added to the Instance Security Dashboard | +| `project` | Project | Project that was added to the Instance Security Dashboard. | ### AdminSidekiqQueuesDeleteJobsPayload @@ -72,7 +72,7 @@ Autogenerated return type of AdminSidekiqQueuesDeleteJobs. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `result` | DeleteJobsResponse | Information about the status of the deletion request | +| `result` | DeleteJobsResponse | Information about the status of the deletion request. | ### AlertManagementAlert @@ -152,11 +152,11 @@ Autogenerated return type of AlertSetAssignees. | Field | Type | Description | | ----- | ---- | ----------- | -| `alert` | AlertManagementAlert | The alert after mutation | +| `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 | +| `issue` | Issue | The issue created after mutation. | +| `todo` | Todo | The todo after mutation. | ### AlertTodoCreatePayload @@ -164,11 +164,11 @@ Autogenerated return type of AlertTodoCreate. | Field | Type | Description | | ----- | ---- | ----------- | -| `alert` | AlertManagementAlert | The alert after mutation | +| `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 | +| `issue` | Issue | The issue created after mutation. | +| `todo` | Todo | The todo after mutation. | ### AwardEmoji @@ -189,7 +189,7 @@ Autogenerated return type of AwardEmojiAdd. | Field | Type | Description | | ----- | ---- | ----------- | -| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `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. | @@ -199,7 +199,7 @@ Autogenerated return type of AwardEmojiRemove. | Field | Type | Description | | ----- | ---- | ----------- | -| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `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. | @@ -209,7 +209,7 @@ Autogenerated return type of AwardEmojiToggle. | Field | Type | Description | | ----- | ---- | ----------- | -| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `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. | @@ -252,6 +252,8 @@ Represents a project or group board. | `lists` | BoardListConnection | Lists of the board | | `milestone` | Milestone | The board milestone | | `name` | String | Name of the board | +| `webPath` | String! | Web path of the board. | +| `webUrl` | String! | Web URL of the board. | | `weight` | Int | Weight of the board | ### BoardEpic @@ -325,6 +327,7 @@ Represents a list for an issue board. | `id` | ID! | ID (global ID) of the list | | `issues` | IssueConnection | Board issues | | `issuesCount` | Int | Count of issues in the list | +| `iteration` | Iteration | Iteration of the list | | `label` | Label | Label of the list | | `limitMetric` | ListLimitMetric | The current limit metric for the list | | `listType` | String! | Type of the list | @@ -343,7 +346,7 @@ Autogenerated return type of BoardListCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `list` | BoardList | List of the issue board | +| `list` | BoardList | List of the issue board. | ### BoardListUpdateLimitMetricsPayload @@ -353,7 +356,7 @@ Autogenerated return type of BoardListUpdateLimitMetrics. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `list` | BoardList | The updated list | +| `list` | BoardList | The updated list. | ### Branch @@ -374,20 +377,35 @@ Represents the total number of issues and their weights for a particular day. | `scopeCount` | Int! | Number of issues as of this day | | `scopeWeight` | Int! | Total weight of issues as of this day | +### CiBuildNeed + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `name` | String | Name of the job we need to complete. | + +### CiCdSettingsUpdatePayload + +Autogenerated return type of CiCdSettingsUpdate. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + ### CiConfig | Field | Type | Description | | ----- | ---- | ----------- | | `errors` | String! => Array | Linting errors | | `mergedYaml` | String | Merged CI config YAML | -| `stages` | CiConfigStage! => Array | Stages of the pipeline | +| `stages` | CiConfigStageConnection | Stages of the pipeline | | `status` | CiConfigStatus | Status of linting, can be either valid or invalid | ### CiConfigGroup | Field | Type | Description | | ----- | ---- | ----------- | -| `jobs` | CiConfigJob! => Array | Jobs in group | +| `jobs` | CiConfigJobConnection | Jobs in group | | `name` | String | Name of the job group | | `size` | Int | Size of the job group | @@ -395,10 +413,25 @@ Represents the total number of issues and their weights for a particular day. | Field | Type | Description | | ----- | ---- | ----------- | -| `groupName` | String | Name of the job group | -| `name` | String | Name of the job | -| `needs` | CiConfigNeed! => Array | Builds that must complete before the jobs run | -| `stage` | String | Name of the job stage | +| `afterScript` | String! => Array | Override a set of commands that are executed after the job. | +| `allowFailure` | Boolean | Allow job to fail. | +| `beforeScript` | String! => Array | Override a set of commands that are executed before the job. | +| `environment` | String | Name of an environment to which the job deploys. | +| `except` | CiConfigJobRestriction | Limit when jobs are not created. | +| `groupName` | String | Name of the job group. | +| `name` | String | Name of the job. | +| `needs` | CiConfigNeedConnection | Builds that must complete before the jobs run. | +| `only` | CiConfigJobRestriction | Jobs are created when these conditions do not apply. | +| `script` | String! => Array | Shell script that is executed by a runner. | +| `stage` | String | Name of the job stage. | +| `tags` | String! => Array | List of tags that are used to select a runner. | +| `when` | String | When to run the job. | + +### CiConfigJobRestriction + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `refs` | String! => Array | The Git refs the job restriction applies to. | ### CiConfigNeed @@ -410,7 +443,7 @@ Represents the total number of issues and their weights for a particular day. | Field | Type | Description | | ----- | ---- | ----------- | -| `groups` | CiConfigGroup! => Array | Groups of jobs for the stage | +| `groups` | CiConfigGroupConnection | Groups of jobs for the stage | | `name` | String | Name of the stage | ### CiGroup @@ -429,7 +462,7 @@ Represents the total number of issues and their weights for a particular day. | `artifacts` | CiJobArtifactConnection | Artifacts generated by the job | | `detailedStatus` | DetailedStatus | Detailed status of the job | | `name` | String | Name of the job | -| `needs` | CiJobConnection | Builds that must complete before the jobs run | +| `needs` | CiBuildNeedConnection | References to builds that must complete before the jobs run | | `pipeline` | Pipeline | Pipeline the job belongs to | | `scheduledAt` | Time | Schedule for the build | @@ -484,8 +517,8 @@ Autogenerated return type of ClusterAgentTokenCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `secret` | String | Token secret value. Make sure you save it - you won't be able to access it again | -| `token` | ClusterAgentToken | Token created after mutation | +| `secret` | String | Token secret value. Make sure you save it - you won't be able to access it again. | +| `token` | ClusterAgentToken | Token created after mutation. | ### ClusterAgentTokenDeletePayload @@ -545,7 +578,7 @@ Autogenerated return type of CommitCreate. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `commit` | Commit | The commit after mutation | +| `commit` | Commit | The commit after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### ComplianceFramework @@ -567,8 +600,8 @@ Autogenerated return type of ConfigureSast. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `status` | String! | Status of creating the commit for the supplied SAST CI configuration | -| `successPath` | String | Redirect path to use when the response is successful | +| `status` | String! | Status of creating the commit for the supplied SAST CI configuration. | +| `successPath` | String | Redirect path to use when the response is successful. | ### ContainerExpirationPolicy @@ -647,11 +680,11 @@ Autogenerated return type of CreateAlertIssue. | Field | Type | Description | | ----- | ---- | ----------- | -| `alert` | AlertManagementAlert | The alert after mutation | +| `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 | +| `issue` | Issue | The issue created after mutation. | +| `todo` | Todo | The todo after mutation. | ### CreateAnnotationPayload @@ -659,7 +692,7 @@ Autogenerated return type of CreateAnnotation. | Field | Type | Description | | ----- | ---- | ----------- | -| `annotation` | MetricsDashboardAnnotation | The created annotation | +| `annotation` | MetricsDashboardAnnotation | The created annotation. | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | @@ -679,7 +712,7 @@ Autogenerated return type of CreateBranch. | Field | Type | Description | | ----- | ---- | ----------- | -| `branch` | Branch | Branch after mutation | +| `branch` | Branch | Branch after mutation. | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | @@ -690,7 +723,7 @@ Autogenerated return type of CreateClusterAgent. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `clusterAgent` | ClusterAgent | Cluster agent created after mutation | +| `clusterAgent` | ClusterAgent | Cluster agent created after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### CreateComplianceFrameworkPayload @@ -710,7 +743,7 @@ Autogenerated return type of CreateCustomEmoji. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `customEmoji` | CustomEmoji | The new custom emoji | +| `customEmoji` | CustomEmoji | The new custom emoji. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### CreateDevopsAdoptionSegmentPayload @@ -721,7 +754,7 @@ Autogenerated return type of CreateDevopsAdoptionSegment. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `segment` | DevopsAdoptionSegment | The segment after mutation | +| `segment` | DevopsAdoptionSegment | The segment after mutation. | ### CreateDiffNotePayload @@ -731,7 +764,7 @@ Autogenerated return type of CreateDiffNote. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `note` | Note | The note after mutation | +| `note` | Note | The note after mutation. | ### CreateEpicPayload @@ -740,7 +773,7 @@ Autogenerated return type of CreateEpic. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `epic` | Epic | The created epic | +| `epic` | Epic | The created epic. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### CreateImageDiffNotePayload @@ -751,7 +784,7 @@ Autogenerated return type of CreateImageDiffNote. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `note` | Note | The note after mutation | +| `note` | Note | The note after mutation. | ### CreateIssuePayload @@ -761,7 +794,7 @@ Autogenerated return type of CreateIssue. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### CreateIterationPayload @@ -771,7 +804,7 @@ Autogenerated return type of CreateIteration. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `iteration` | Iteration | The created iteration | +| `iteration` | Iteration | The created iteration. | ### CreateNotePayload @@ -781,7 +814,7 @@ Autogenerated return type of CreateNote. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `note` | Note | The note after mutation | +| `note` | Note | The note after mutation. | ### CreateRequirementPayload @@ -791,7 +824,7 @@ Autogenerated return type of CreateRequirement. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `requirement` | Requirement | Requirement after mutation | +| `requirement` | Requirement | Requirement after mutation. | ### CreateSnippetPayload @@ -801,8 +834,8 @@ Autogenerated return type of CreateSnippet. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `snippet` | Snippet | The snippet after mutation | -| `spam` | Boolean | Indicates whether the operation returns a record detected as spam | +| `snippet` | Snippet | The snippet after mutation. | +| `spam` | Boolean | Indicates whether the operation returns a record detected as spam. | ### CreateTestCasePayload @@ -812,7 +845,7 @@ Autogenerated return type of CreateTestCase. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `testCase` | Issue | The test case created | +| `testCase` | Issue | The test case created. | ### CustomEmoji @@ -1063,7 +1096,7 @@ Autogenerated return type of DesignManagementDelete. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `version` | DesignVersion | The new version in which the designs are deleted | +| `version` | DesignVersion | The new version in which the designs are deleted. | ### DesignManagementMovePayload @@ -1072,7 +1105,7 @@ Autogenerated return type of DesignManagementMove. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `designCollection` | DesignCollection | The current state of the collection | +| `designCollection` | DesignCollection | The current state of the collection. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### DesignManagementUploadPayload @@ -1082,7 +1115,7 @@ Autogenerated return type of DesignManagementUpload. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `designs` | Design! => Array | The designs that were uploaded by the mutation | +| `designs` | Design! => Array | The designs that were uploaded by the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `skippedDesigns` | Design! => Array | Any designs that were skipped from the upload due to there being no change to their content since their last version | @@ -1114,7 +1147,7 @@ Autogenerated return type of DestroyBoard. | Field | Type | Description | | ----- | ---- | ----------- | -| `board` | Board | The board after mutation | +| `board` | Board | The board after mutation. | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | @@ -1144,7 +1177,7 @@ Autogenerated return type of DestroyContainerRepositoryTags. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `deletedTagNames` | String! => Array | Deleted container repository tags | +| `deletedTagNames` | String! => Array | Deleted container repository tags. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### DestroyNotePayload @@ -1155,7 +1188,7 @@ Autogenerated return type of DestroyNote. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `note` | Note | The note after mutation | +| `note` | Note | The note after mutation. | ### DestroySnippetPayload @@ -1165,7 +1198,7 @@ Autogenerated return type of DestroySnippet. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `snippet` | Snippet | The snippet after mutation | +| `snippet` | Snippet | The snippet after mutation. | ### DetailedStatus @@ -1274,7 +1307,7 @@ Autogenerated return type of DiscussionToggleResolve. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `discussion` | Discussion | The discussion after mutation | +| `discussion` | Discussion | The discussion after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### DismissVulnerabilityPayload @@ -1285,7 +1318,7 @@ Autogenerated return type of DismissVulnerability. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `vulnerability` | Vulnerability | The vulnerability after dismissal | +| `vulnerability` | Vulnerability | The vulnerability after dismissal. | ### Environment @@ -1367,8 +1400,8 @@ Autogenerated return type of EpicAddIssue. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `epic` | Epic | The epic after mutation | -| `epicIssue` | EpicIssue | The epic-issue relation | +| `epic` | Epic | The epic after mutation. | +| `epicIssue` | EpicIssue | The epic-issue relation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### EpicBoard @@ -1377,8 +1410,9 @@ Represents an epic board. | Field | Type | Description | | ----- | ---- | ----------- | -| `id` | BoardsEpicBoardID! | Global ID of the board | -| `name` | String | Name of the board | +| `id` | BoardsEpicBoardID! | Global ID of the board. | +| `lists` | EpicListConnection | Epic board lists. | +| `name` | String | Name of the board. | ### EpicDescendantCount @@ -1423,6 +1457,7 @@ Relationship between an epic and an issue. | `blockedByCount` | Int | Count of issues blocking this issue. | | `closedAt` | Time | Timestamp of when the issue was closed | | `confidential` | Boolean! | Indicates the issue is confidential | +| `createNoteEmail` | String | User specific email address for the issue | | `createdAt` | Time! | Timestamp of when the issue was created | | `currentUserTodos` | TodoConnection! | Todos for the current user | | `description` | String | Description of the issue | @@ -1472,6 +1507,19 @@ Relationship between an epic and an issue. | `webUrl` | String! | Web URL of the issue | | `weight` | Int | Weight of the issue. | +### EpicList + +Represents an epic board list. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `epics` | EpicConnection | List epics. | +| `id` | BoardsEpicListID! | Global ID of the board list. | +| `label` | Label | Label of the list. | +| `listType` | String! | Type of the list. | +| `position` | Int | Position of the list within the board. | +| `title` | String! | Title of the list. | + ### EpicPermissions Check permissions for the current user on an epic. @@ -1494,7 +1542,7 @@ Autogenerated return type of EpicSetSubscription. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `epic` | Epic | The epic after mutation | +| `epic` | Epic | The epic after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### EpicTreeReorderPayload @@ -1506,6 +1554,15 @@ Autogenerated return type of EpicTreeReorder. | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | +### ExportRequirementsPayload + +Autogenerated return type of ExportRequirements. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + ### ExternalIssue Represents an external issue. @@ -1565,7 +1622,7 @@ Represents an external issue. | `board` | Board | A single board of the group | | `boards` | BoardConnection | Boards of the group | | `codeCoverageActivities` | CodeCoverageActivityConnection | Represents the code coverage activity for this group | -| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks available to projects in this namespace Available only when feature flag `ff_custom_compliance_frameworks` is enabled. | +| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. | | `containerRepositories` | ContainerRepositoryConnection | Container repositories of the group | | `containerRepositoriesCount` | Int! | Number of container repositories in the group | | `containsLockedProjects` | Boolean! | Includes at least one project where the repository size exceeds the limit | @@ -1593,6 +1650,7 @@ Represents an external issue. | `mergeRequests` | MergeRequestConnection | Merge requests for projects in this group | | `milestones` | MilestoneConnection | Milestones of the group | | `name` | String! | Name of the namespace | +| `packageSettings` | PackageSettings | The package settings for the namespace | | `parent` | Group | Parent group | | `path` | String! | Path of the namespace | | `projectCreationLevel` | String | The permission level required to create projects in the group | @@ -1667,7 +1725,7 @@ Autogenerated return type of HttpIntegrationCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `integration` | AlertManagementHttpIntegration | The HTTP integration | +| `integration` | AlertManagementHttpIntegration | The HTTP integration. | ### HttpIntegrationDestroyPayload @@ -1677,7 +1735,7 @@ Autogenerated return type of HttpIntegrationDestroy. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `integration` | AlertManagementHttpIntegration | The HTTP integration | +| `integration` | AlertManagementHttpIntegration | The HTTP integration. | ### HttpIntegrationResetTokenPayload @@ -1687,7 +1745,7 @@ Autogenerated return type of HttpIntegrationResetToken. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `integration` | AlertManagementHttpIntegration | The HTTP integration | +| `integration` | AlertManagementHttpIntegration | The HTTP integration. | ### HttpIntegrationUpdatePayload @@ -1697,7 +1755,20 @@ Autogenerated return type of HttpIntegrationUpdate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `integration` | AlertManagementHttpIntegration | The HTTP integration | +| `integration` | AlertManagementHttpIntegration | The HTTP integration. | + +### IncidentManagementOncallRotation + +Describes an incident management on-call rotation. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `id` | IncidentManagementOncallRotationID! | ID of the on-call rotation. | +| `length` | Int | Length of the on-call schedule, in the units specified by lengthUnit. | +| `lengthUnit` | OncallRotationUnitEnum | Unit of the on-call rotation length. | +| `name` | String! | Name of the on-call rotation. | +| `participants` | OncallParticipantTypeConnection | Participants of the on-call rotation. | +| `startsAt` | Time | Start date of the on-call rotation. | ### IncidentManagementOncallSchedule @@ -1708,6 +1779,7 @@ Describes an incident management on-call schedule. | `description` | String | Description of the on-call schedule | | `iid` | ID! | Internal ID of the on-call schedule | | `name` | String! | Name of the on-call schedule | +| `rotations` | IncidentManagementOncallRotationConnection! | On-call rotations for the on-call schedule | | `timezone` | String! | Time zone of the on-call schedule | ### InstanceSecurityDashboard @@ -1740,6 +1812,7 @@ Represents a recorded measurement (object count) for the Admins. | `blockedByCount` | Int | Count of issues blocking this issue. | | `closedAt` | Time | Timestamp of when the issue was closed | | `confidential` | Boolean! | Indicates the issue is confidential | +| `createNoteEmail` | String | User specific email address for the issue | | `createdAt` | Time! | Timestamp of when the issue was created | | `currentUserTodos` | TodoConnection! | Todos for the current user | | `description` | String | Description of the issue | @@ -1795,7 +1868,7 @@ Autogenerated return type of IssueMoveList. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueMovePayload @@ -1805,7 +1878,7 @@ Autogenerated return type of IssueMove. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssuePermissions @@ -1830,7 +1903,7 @@ Autogenerated return type of IssueSetAssignees. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetConfidentialPayload @@ -1840,7 +1913,7 @@ Autogenerated return type of IssueSetConfidential. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetDueDatePayload @@ -1850,7 +1923,7 @@ Autogenerated return type of IssueSetDueDate. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetEpicPayload @@ -1860,7 +1933,7 @@ Autogenerated return type of IssueSetEpic. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetIterationPayload @@ -1870,7 +1943,7 @@ Autogenerated return type of IssueSetIteration. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetLockedPayload @@ -1880,7 +1953,7 @@ Autogenerated return type of IssueSetLocked. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetSeverityPayload @@ -1890,7 +1963,7 @@ Autogenerated return type of IssueSetSeverity. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetSubscriptionPayload @@ -1900,7 +1973,7 @@ Autogenerated return type of IssueSetSubscription. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueSetWeightPayload @@ -1910,7 +1983,7 @@ Autogenerated return type of IssueSetWeight. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### IssueStatusCountsType @@ -1964,7 +2037,7 @@ Autogenerated return type of JiraImportStart. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `jiraImport` | JiraImport | The Jira import data after mutation | +| `jiraImport` | JiraImport | The Jira import data after mutation. | ### JiraImportUsersPayload @@ -2022,7 +2095,7 @@ Autogenerated return type of LabelCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `label` | Label | The label after mutation | +| `label` | Label | The label after mutation. | ### MarkAsSpamSnippetPayload @@ -2032,7 +2105,7 @@ Autogenerated return type of MarkAsSpamSnippet. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `snippet` | Snippet | The snippet after mutation | +| `snippet` | Snippet | The snippet after mutation. | ### MergeRequest @@ -2046,6 +2119,7 @@ Autogenerated return type of MarkAsSpamSnippet. | `assignees` | UserConnection | Assignees of the merge request | | `author` | User | User who created this merge request | | `autoMergeEnabled` | Boolean! | Indicates if auto merge is enabled for the merge request | +| `autoMergeStrategy` | String | Selected auto merge strategy | | `availableAutoMergeStrategies` | String! => Array | Array of available auto merge strategies | | `commitCount` | Int | Number of commits in the merge request | | `commitsWithoutMergeCommits` | CommitConnection | Merge request commits excluding merge commits | @@ -2054,6 +2128,7 @@ Autogenerated return type of MarkAsSpamSnippet. | `currentUserTodos` | TodoConnection! | Todos for the current user | | `defaultMergeCommitMessage` | String | Default merge commit message of the merge request | | `defaultMergeCommitMessageWithDescription` | String | Default merge commit message of the merge request with description | +| `defaultSquashCommitMessage` | String | Default squash commit message of the merge request | | `description` | String | Description of the merge request (Markdown rendered as HTML for caching) | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | | `diffHeadSha` | String | Diff head SHA of the merge request | @@ -2075,19 +2150,21 @@ Autogenerated return type of MarkAsSpamSnippet. | `mergeOngoing` | Boolean! | Indicates if a merge is currently occurring | | `mergeStatus` | String | Status of the merge request | | `mergeTrainsCount` | Int | | +| `mergeUser` | User | User who merged this merge request | | `mergeWhenPipelineSucceeds` | Boolean | Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS) | | `mergeable` | Boolean! | Indicates if the merge request is mergeable | | `mergeableDiscussionsState` | Boolean | Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged | | `mergedAt` | Time | Timestamp of when the merge request was merged, null if not merged | | `milestone` | Milestone | The milestone of the merge request | | `notes` | NoteConnection! | All notes on this noteable | -| `participants` | UserConnection | Participants in the merge request | +| `participants` | UserConnection | Participants in the merge request. This includes the author, assignees, reviewers, and users mentioned in notes. | | `pipelines` | PipelineConnection | Pipelines for the merge request. Note: for performance reasons, no more than the most recent 500 pipelines will be returned. | | `project` | Project! | Alias for target_project | | `projectId` | Int! | ID of the merge request project | | `rebaseCommitSha` | String | Rebase commit SHA of the merge request | | `rebaseInProgress` | Boolean! | Indicates if there is a rebase currently in progress for the merge request | | `reference` | String! | Internal reference of the merge request. Returned in shortened format by default | +| `reviewers` | UserConnection | Users from whom a review has been requested. | | `securityAutoFix` | Boolean | Indicates if the merge request is created by @GitLab-Security-Bot. | | `shouldBeRebased` | Boolean! | Indicates if the merge request will be rebased | | `shouldRemoveSourceBranch` | Boolean | Indicates if the source branch of the merge request will be deleted after merge | @@ -2096,6 +2173,7 @@ Autogenerated return type of MarkAsSpamSnippet. | `sourceBranchProtected` | Boolean! | Indicates if the source branch is protected | | `sourceProject` | Project | Source project of the merge request | | `sourceProjectId` | Int | ID of the merge request source project | +| `squash` | Boolean! | Indicates if squash on merge is enabled | | `squashOnMerge` | Boolean! | Indicates if squash on merge is enabled | | `state` | MergeRequestState! | State of the merge request | | `subscribed` | Boolean! | Indicates if the currently logged in user is subscribed to this merge request | @@ -2124,7 +2202,7 @@ Autogenerated return type of MergeRequestCreate. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### MergeRequestDiffRegistry @@ -2165,7 +2243,7 @@ Autogenerated return type of MergeRequestSetAssignees. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### MergeRequestSetLabelsPayload @@ -2175,7 +2253,7 @@ Autogenerated return type of MergeRequestSetLabels. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### MergeRequestSetLockedPayload @@ -2185,7 +2263,7 @@ Autogenerated return type of MergeRequestSetLocked. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### MergeRequestSetMilestonePayload @@ -2195,7 +2273,7 @@ Autogenerated return type of MergeRequestSetMilestone. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### MergeRequestSetSubscriptionPayload @@ -2205,7 +2283,7 @@ Autogenerated return type of MergeRequestSetSubscription. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### MergeRequestSetWipPayload @@ -2215,7 +2293,7 @@ Autogenerated return type of MergeRequestSetWip. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### MergeRequestUpdatePayload @@ -2225,7 +2303,7 @@ Autogenerated return type of MergeRequestUpdate. | ----- | ---- | ----------- | | `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 | +| `mergeRequest` | MergeRequest | The merge request after mutation. | ### Metadata @@ -2300,7 +2378,7 @@ Contains statistics about a milestone. | ----- | ---- | ----------- | | `actualRepositorySizeLimit` | Float | Size limit for repositories in the namespace in bytes | | `additionalPurchasedStorageSize` | Float | Additional storage purchased for the root namespace in bytes | -| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks available to projects in this namespace Available only when feature flag `ff_custom_compliance_frameworks` is enabled. | +| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. | | `containsLockedProjects` | Boolean! | Includes at least one project where the repository size exceeds the limit | | `description` | String | Description of the namespace | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | @@ -2310,6 +2388,7 @@ Contains statistics about a milestone. | `isTemporaryStorageIncreaseEnabled` | Boolean! | Status of the temporary storage increase | | `lfsEnabled` | Boolean | Indicates if Large File Storage (LFS) is enabled for namespace | | `name` | String! | Name of the namespace | +| `packageSettings` | PackageSettings | The package settings for the namespace | | `path` | String! | Path of the namespace | | `projects` | ProjectConnection! | Projects within this namespace | | `repositorySizeExcessProjectCount` | Int! | Number of projects in the root namespace where the repository size exceeds the limit | @@ -2329,7 +2408,7 @@ Autogenerated return type of NamespaceIncreaseStorageTemporarily. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `namespace` | Namespace | The namespace after mutation | +| `namespace` | Namespace | The namespace after mutation. | ### Note @@ -2351,6 +2430,7 @@ Autogenerated return type of NamespaceIncreaseStorageTemporarily. | `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 | +| `url` | String | URL to view this Note in the Web UI | | `userPermissions` | NotePermissions! | Permissions for the current user on the resource | ### NotePermissions @@ -2364,6 +2444,27 @@ Autogenerated return type of NamespaceIncreaseStorageTemporarily. | `repositionNote` | Boolean! | Indicates the user can perform `reposition_note` on this resource | | `resolveNote` | Boolean! | Indicates the user can perform `resolve_note` on this resource | +### OncallParticipantType + +The rotation participant and color palette. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `colorPalette` | String | The color palette to assign to the on-call user. For example "blue". | +| `colorWeight` | String | The color weight to assign to for the on-call user, for example "500". Max 4 chars. For easy identification of the user. | +| `id` | IncidentManagementOncallParticipantID! | ID of the on-call participant. | +| `user` | User! | The user who is participating. | + +### OncallRotationCreatePayload + +Autogenerated return type of OncallRotationCreate. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `oncallRotation` | IncidentManagementOncallRotation | The on-call rotation. | + ### OncallScheduleCreatePayload Autogenerated return type of OncallScheduleCreate. @@ -2372,7 +2473,7 @@ Autogenerated return type of OncallScheduleCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `oncallSchedule` | IncidentManagementOncallSchedule | The on-call schedule | +| `oncallSchedule` | IncidentManagementOncallSchedule | The on-call schedule. | ### OncallScheduleDestroyPayload @@ -2382,7 +2483,7 @@ Autogenerated return type of OncallScheduleDestroy. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `oncallSchedule` | IncidentManagementOncallSchedule | The on-call schedule | +| `oncallSchedule` | IncidentManagementOncallSchedule | The on-call schedule. | ### OncallScheduleUpdatePayload @@ -2392,20 +2493,62 @@ Autogenerated return type of OncallScheduleUpdate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `oncallSchedule` | IncidentManagementOncallSchedule | The on-call schedule | +| `oncallSchedule` | IncidentManagementOncallSchedule | The on-call schedule. | ### Package -Represents a package. +Represents a package in the Package Registry. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `createdAt` | Time! | The created date. | +| `id` | ID! | The ID of the package. | +| `name` | String! | The name of the package. | +| `packageType` | PackageTypeEnum! | The type of the package. | +| `pipelines` | PipelineConnection | Pipelines that built the package. | +| `project` | Project! | Project where the package is stored. | +| `tags` | PackageTagConnection | The package tags. | +| `updatedAt` | Time! | The updated date. | +| `version` | String | The version of the package. | +| `versions` | PackageConnection | The other versions of the package. | + +### PackageComposerDetails + +Details of a Composer package. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `composerMetadatum` | PackageComposerMetadatumType! | The Composer metadatum. | +| `createdAt` | Time! | The created date. | +| `id` | ID! | The ID of the package. | +| `name` | String! | The name of the package. | +| `packageType` | PackageTypeEnum! | The type of the package. | +| `pipelines` | PipelineConnection | Pipelines that built the package. | +| `project` | Project! | Project where the package is stored. | +| `tags` | PackageTagConnection | The package tags. | +| `updatedAt` | Time! | The updated date. | +| `version` | String | The version of the package. | +| `versions` | PackageConnection | The other versions of the package. | + +### PackageComposerJsonType + +Represents a composer JSON file. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `license` | String | The license set in the Composer JSON file. | +| `name` | String | The name set in the Composer JSON file. | +| `type` | String | The type set in the Composer JSON file. | +| `version` | String | The version set in the Composer JSON file. | + +### PackageComposerMetadatumType + +Composer metadatum. | Field | Type | Description | | ----- | ---- | ----------- | -| `createdAt` | Time! | The created date | -| `id` | ID! | The ID of the package | -| `name` | String! | The name of the package | -| `packageType` | PackageTypeEnum! | The type of the package | -| `updatedAt` | Time! | The update date | -| `version` | String | The version of the package | +| `composerJson` | PackageComposerJsonType! | Data of the Composer JSON file. | +| `targetSha` | String! | Target SHA of the package. | ### PackageFileRegistry @@ -2422,6 +2565,26 @@ Represents the Geo sync and verification state of a package file. | `retryCount` | Int | Number of consecutive failed sync attempts of the PackageFileRegistry | | `state` | RegistryState | Sync state of the PackageFileRegistry | +### PackageSettings + +Namespace-level Package Registry settings. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `mavenDuplicateExceptionRegex` | UntrustedRegexp | When maven_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect. | +| `mavenDuplicatesAllowed` | Boolean! | Indicates whether duplicate Maven packages are allowed for this namespace. | + +### PackageTag + +Represents a package tag. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `createdAt` | Time! | The created date. | +| `id` | ID! | The ID of the tag. | +| `name` | String! | The name of the tag. | +| `updatedAt` | Time! | The updated date. | + ### PageInfo Information about pagination in a connection.. @@ -2515,7 +2678,7 @@ Autogenerated return type of PipelineRetry. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `pipeline` | Pipeline | The pipeline after mutation | +| `pipeline` | Pipeline | The pipeline after mutation. | ### Project @@ -2545,7 +2708,6 @@ Autogenerated return type of PipelineRetry. | `dastScannerProfiles` | DastScannerProfileConnection | The DAST scanner profiles associated with the project | | `dastSiteProfile` | DastSiteProfile | DAST Site Profile associated with the project | | `dastSiteProfiles` | DastSiteProfileConnection | DAST Site Profiles associated with the project | -| `dastSiteValidation` | DastSiteValidation | DAST Site Validation associated with the project. Will always return `null` if `security_on_demand_scans_site_validation` is disabled | | `dastSiteValidations` | DastSiteValidationConnection | DAST Site Validations associated with the project. Will always return no nodes if `security_on_demand_scans_site_validation` is disabled | | `description` | String | Short description of the project | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | @@ -2617,7 +2779,6 @@ Autogenerated return type of PipelineRetry. | `suggestionCommitMessage` | String | The commit message used to apply merge request suggestions | | `tagList` | String | List of project topics (not Git tags) | | `terraformStates` | TerraformStateConnection | Terraform states associated with the project | -| `totalPipelineDuration` | Int | Total pipeline duration for all of the pipelines in a project | | `userPermissions` | ProjectPermissions! | Permissions for the current user on the resource | | `visibility` | String | Visibility of the project | | `vulnerabilities` | VulnerabilityConnection | Vulnerabilities reported on the project | @@ -2631,6 +2792,7 @@ Autogenerated return type of PipelineRetry. | Field | Type | Description | | ----- | ---- | ----------- | +| `keepLatestArtifact` | Boolean | Whether to keep the latest builds artifacts. | | `mergePipelinesEnabled` | Boolean | Whether merge pipelines are enabled. | | `mergeTrainsEnabled` | Boolean | Whether merge trains are enabled. | | `project` | Project | Project the CI/CD settings belong to. | @@ -2729,7 +2891,7 @@ Autogenerated return type of PrometheusIntegrationCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `integration` | AlertManagementPrometheusIntegration | The newly created integration | +| `integration` | AlertManagementPrometheusIntegration | The newly created integration. | ### PrometheusIntegrationResetTokenPayload @@ -2739,7 +2901,7 @@ Autogenerated return type of PrometheusIntegrationResetToken. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `integration` | AlertManagementPrometheusIntegration | The newly created integration | +| `integration` | AlertManagementPrometheusIntegration | The newly created integration. | ### PrometheusIntegrationUpdatePayload @@ -2749,7 +2911,7 @@ Autogenerated return type of PrometheusIntegrationUpdate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `integration` | AlertManagementPrometheusIntegration | The newly created integration | +| `integration` | AlertManagementPrometheusIntegration | The newly created integration. | ### PromoteToEpicPayload @@ -2758,9 +2920,9 @@ Autogenerated return type of PromoteToEpic. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `epic` | Epic | The epic after issue promotion | +| `epic` | Epic | The epic after issue promotion. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `issue` | Issue | The issue after mutation | +| `issue` | Issue | The issue after mutation. | ### Release @@ -2814,7 +2976,7 @@ Autogenerated return type of ReleaseCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `release` | Release | The release after mutation | +| `release` | Release | The release after mutation. | ### ReleaseDeletePayload @@ -2874,7 +3036,7 @@ Autogenerated return type of RemoveAwardEmoji. | Field | Type | Description | | ----- | ---- | ----------- | -| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `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. | @@ -2895,7 +3057,7 @@ Autogenerated return type of RepositionImageDiffNote. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `note` | Note | The note after mutation | +| `note` | Note | The note after mutation. | ### Repository @@ -2957,7 +3119,7 @@ Autogenerated return type of RevertVulnerabilityToDetected. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `vulnerability` | Vulnerability | The vulnerability after revert | +| `vulnerability` | Vulnerability | The vulnerability after revert. | ### RootStorageStatistics @@ -3468,7 +3630,7 @@ Autogenerated return type of TodoCreate. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `todo` | Todo | The to-do created | +| `todo` | Todo | The to-do created. | ### TodoMarkDonePayload @@ -3478,7 +3640,7 @@ Autogenerated return type of TodoMarkDone. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `todo` | Todo! | The requested todo | +| `todo` | Todo! | The requested todo. | ### TodoRestoreManyPayload @@ -3488,7 +3650,7 @@ 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. | -| `todos` | Todo! => Array | Updated todos | +| `todos` | Todo! => Array | Updated todos. | | `updatedIds` **{warning-solid}** | TodoID! => Array | **Deprecated:** Use todos. Deprecated in 13.2. | ### TodoRestorePayload @@ -3499,7 +3661,7 @@ Autogenerated return type of TodoRestore. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `todo` | Todo! | The requested todo | +| `todo` | Todo! | The requested todo. | ### TodosMarkAllDonePayload @@ -3509,7 +3671,7 @@ 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. | -| `todos` | Todo! => Array | Updated todos | +| `todos` | Todo! => Array | Updated todos. | | `updatedIds` **{warning-solid}** | TodoID! => Array | **Deprecated:** Use todos. Deprecated in 13.2. | ### ToggleAwardEmojiPayload @@ -3518,7 +3680,7 @@ Autogenerated return type of ToggleAwardEmoji. | Field | Type | Description | | ----- | ---- | ----------- | -| `awardEmoji` | AwardEmoji | The award emoji after mutation | +| `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. | @@ -3553,11 +3715,11 @@ Autogenerated return type of UpdateAlertStatus. | Field | Type | Description | | ----- | ---- | ----------- | -| `alert` | AlertManagementAlert | The alert after mutation | +| `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 | +| `issue` | Issue | The issue created after mutation. | +| `todo` | Todo | The todo after mutation. | ### UpdateBoardEpicUserPreferencesPayload @@ -3566,7 +3728,7 @@ Autogenerated return type of UpdateBoardEpicUserPreferences. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `epicUserPreferences` | BoardEpicUserPreferences | User preferences for the epic in the board after mutation | +| `epicUserPreferences` | BoardEpicUserPreferences | User preferences for the epic in the board after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### UpdateBoardListPayload @@ -3577,7 +3739,7 @@ Autogenerated return type of UpdateBoardList. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `list` | BoardList | Mutated list | +| `list` | BoardList | Mutated list. | ### UpdateBoardPayload @@ -3596,7 +3758,7 @@ Autogenerated return type of UpdateComplianceFramework. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `complianceFramework` | ComplianceFramework | The compliance framework after mutation | +| `complianceFramework` | ComplianceFramework | The compliance framework after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### UpdateContainerExpirationPolicyPayload @@ -3606,7 +3768,7 @@ Autogenerated return type of UpdateContainerExpirationPolicy. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `containerExpirationPolicy` | ContainerExpirationPolicy | The container expiration policy after mutation | +| `containerExpirationPolicy` | ContainerExpirationPolicy | The container expiration policy after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### UpdateDevopsAdoptionSegmentPayload @@ -3617,7 +3779,7 @@ Autogenerated return type of UpdateDevopsAdoptionSegment. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `segment` | DevopsAdoptionSegment | The segment after mutation | +| `segment` | DevopsAdoptionSegment | The segment after mutation. | ### UpdateEpicPayload @@ -3626,7 +3788,7 @@ Autogenerated return type of UpdateEpic. | Field | Type | Description | | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | -| `epic` | Epic | The epic after mutation | +| `epic` | Epic | The epic after mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | ### UpdateImageDiffNotePayload @@ -3637,7 +3799,7 @@ Autogenerated return type of UpdateImageDiffNote. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `note` | Note | The note after mutation | +| `note` | Note | The note after mutation. | ### UpdateIssuePayload @@ -3647,7 +3809,7 @@ Autogenerated return type of UpdateIssue. | ----- | ---- | ----------- | | `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 | +| `issue` | Issue | The issue after mutation. | ### UpdateIterationPayload @@ -3659,6 +3821,16 @@ Autogenerated return type of UpdateIteration. | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `iteration` | Iteration | Updated iteration. | +### UpdateNamespacePackageSettingsPayload + +Autogenerated return type of UpdateNamespacePackageSettings. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `packageSettings` | PackageSettings | The namespace package setting after mutation. | + ### UpdateNotePayload Autogenerated return type of UpdateNote. @@ -3667,7 +3839,7 @@ Autogenerated return type of UpdateNote. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `note` | Note | The note after mutation | +| `note` | Note | The note after mutation. | ### UpdateRequirementPayload @@ -3677,7 +3849,7 @@ Autogenerated return type of UpdateRequirement. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `requirement` | Requirement | Requirement after mutation | +| `requirement` | Requirement | Requirement after mutation. | ### UpdateSnippetPayload @@ -3687,8 +3859,8 @@ Autogenerated return type of UpdateSnippet. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `snippet` | Snippet | The snippet after mutation | -| `spam` | Boolean | Indicates whether the operation returns a record detected as spam | +| `snippet` | Snippet | The snippet after mutation. | +| `spam` | Boolean | Indicates whether the operation returns a record detected as spam. | ### User @@ -3763,10 +3935,12 @@ Represents a vulnerability. | Field | Type | Description | | ----- | ---- | ----------- | | `confirmedAt` | Time | Timestamp of when the vulnerability state was changed to confirmed | +| `confirmedBy` | User | The user that confirmed the vulnerability. | | `description` | String | Description of the vulnerability | | `detectedAt` | Time! | Timestamp of when the vulnerability was first detected | | `discussions` | DiscussionConnection! | All discussions on this noteable | | `dismissedAt` | Time | Timestamp of when the vulnerability state was changed to dismissed | +| `dismissedBy` | User | The user that dismissed the vulnerability. | | `externalIssueLinks` | VulnerabilityExternalIssueLinkConnection! | List of external issue links related to the vulnerability | | `hasSolutions` | Boolean | Indicates whether there is a solution available for this vulnerability. | | `id` | ID! | GraphQL ID of the vulnerability | @@ -3779,6 +3953,7 @@ Represents a 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, COVERAGE_FUZZING, API_FUZZING) | | `resolvedAt` | Time | Timestamp of when the vulnerability state was changed to resolved | +| `resolvedBy` | User | The user that resolved the vulnerability. | | `resolvedOnDefaultBranch` | Boolean! | Indicates whether the vulnerability is fixed on the default branch or not | | `scanner` | VulnerabilityScanner | Scanner metadata for the vulnerability. | | `severity` | VulnerabilitySeverity | Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL) | @@ -3796,7 +3971,7 @@ Autogenerated return type of VulnerabilityConfirm. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `vulnerability` | Vulnerability | The vulnerability after state change | +| `vulnerability` | Vulnerability | The vulnerability after state change. | ### VulnerabilityDismissPayload @@ -3806,7 +3981,7 @@ Autogenerated return type of VulnerabilityDismiss. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `vulnerability` | Vulnerability | The vulnerability after dismissal | +| `vulnerability` | Vulnerability | The vulnerability after dismissal. | ### VulnerabilityExternalIssueLink @@ -3948,7 +4123,7 @@ Autogenerated return type of VulnerabilityResolve. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `vulnerability` | Vulnerability | The vulnerability after state change | +| `vulnerability` | Vulnerability | The vulnerability after state change. | ### VulnerabilityRevertToDetectedPayload @@ -3958,7 +4133,7 @@ Autogenerated return type of VulnerabilityRevertToDetected. | ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `vulnerability` | Vulnerability | The vulnerability after revert | +| `vulnerability` | Vulnerability | The vulnerability after revert. | ### VulnerabilityScanner @@ -4068,7 +4243,7 @@ Filters the alerts based on given domain. | Value | Description | | ----- | ----------- | -| `operations` | Alerts for operations domain | +| `operations` | Alerts for operations domain | | `threat_monitoring` | Alerts for threat monitoring domain | ### AlertManagementIntegrationType @@ -4080,6 +4255,33 @@ Values of types of integrations. | `HTTP` | Integration with any monitoring tool | | `PROMETHEUS` | Prometheus integration | +### AlertManagementPayloadAlertFieldName + +Values for alert field names used in the custom mapping. + +| Value | Description | +| ----- | ----------- | +| `DESCRIPTION` | A high-level summary of the problem. | +| `END_TIME` | The resolved time of the incident. | +| `FINGERPRINT` | The unique identifier of the alert. This can be used to group occurrences of the same alert. | +| `GITLAB_ENVIRONMENT_NAME` | The name of the associated GitLab environment. | +| `HOSTS` | One or more hosts, as to where this incident occurred. | +| `MONITORING_TOOL` | The name of the associated monitoring tool. | +| `SERVICE` | The affected service. | +| `SEVERITY` | The severity of the alert. | +| `START_TIME` | The time of the incident. | +| `TITLE` | The title of the incident. | + +### AlertManagementPayloadAlertFieldType + +Values for alert field types used in the custom mapping. + +| Value | Description | +| ----- | ----------- | +| `ARRAY` | Array field type | +| `DATETIME` | DateTime field type | +| `STRING` | String field type | + ### AlertManagementSeverity Alert severity values. @@ -4225,6 +4427,36 @@ Status of a container repository. | `HEADER` | Header validation | | `TEXT_FILE` | Text file validation | +### DataVisualizationColorEnum + +Color of the data visualization palette. + +| Value | Description | +| ----- | ----------- | +| `AQUA` | Aqua color | +| `BLUE` | Blue color | +| `GREEN` | Green color | +| `MAGENTA` | Magenta color | +| `ORANGE` | Orange color | + +### DataVisualizationWeightEnum + +Weight of the data visualization palette. + +| Value | Description | +| ----- | ----------- | +| `WEIGHT_100` | 100 weight | +| `WEIGHT_200` | 200 weight | +| `WEIGHT_300` | 300 weight | +| `WEIGHT_400` | 400 weight | +| `WEIGHT_50` | 50 weight | +| `WEIGHT_500` | 500 weight | +| `WEIGHT_600` | 600 weight | +| `WEIGHT_700` | 700 weight | +| `WEIGHT_800` | 800 weight | +| `WEIGHT_900` | 900 weight | +| `WEIGHT_950` | 950 weight | + ### DesignCollectionCopyState Copy state of a DesignCollection. @@ -4560,6 +4792,16 @@ Values for sorting projects. | `SIMILARITY` | Most similar to the search query | | `STORAGE` | Sort by storage size | +### OncallRotationUnitEnum + +Rotation length unit of an on-call rotation. + +| Value | Description | +| ----- | ----------- | +| `DAYS` | Days | +| `HOURS` | Hours | +| `WEEKS` | Weeks | + ### PackageTypeEnum | Value | Description | @@ -4707,7 +4949,6 @@ State of a Sentry error. | Value | Description | | ----- | ----------- | -| `ALERTS_SERVICE` | | | `ASANA_SERVICE` | | | `ASSEMBLA_SERVICE` | | | `BAMBOO_SERVICE` | | @@ -4843,6 +5084,18 @@ Possible states of a user. | `private` | | | `public` | | +### VulnerabilityDismissalReason + +The dismissal reason of the Vulnerability. + +| Value | Description | +| ----- | ----------- | +| `ACCEPTABLE_RISK` | The likelihood of the Vulnerability occurring and its impact are deemed acceptable | +| `FALSE_POSITIVE` | The Vulnerability was incorrectly identified as being present | +| `MITIGATING_CONTROL` | There is a mitigating control that eliminates the Vulnerability or makes its risk acceptable | +| `NOT_APPLICABLE` | Other reasons for dismissal | +| `USED_IN_TESTS` | The Vulnerability is used in tests and does not pose an actual risk | + ### VulnerabilityExternalIssueLinkExternalTracker The external tracker of the external issue link related to a vulnerability. diff --git a/doc/api/graphql/users_example.md b/doc/api/graphql/users_example.md new file mode 100644 index 00000000000..e4a697d11fd --- /dev/null +++ b/doc/api/graphql/users_example.md @@ -0,0 +1,109 @@ +--- +stage: none +group: unassigned +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/#assignments +--- + +# Query users with GraphQL + +This page describes how you can use the GraphiQL explorer to query users. + +You can run the same query directly via a HTTP endpoint, using `cURL`. For more information, see our +guidance on getting started from the [command line](getting_started.md#command-line). + +The [example users query](#set-up-the-graphiql-explorer) looks for a subset of users in +o +a GitLab instance either by username or +[Global ID](../../development/api_graphql_styleguide.md#global-ids). +The query includes: + +- [`pageInfo`](#pageinfo) +- [`nodes`](#nodes) + +## pageInfo + +This contains the data needed to implement pagination. GitLab uses cursor-based +[pagination](getting_started.md#pagination). For more information, see +[Pagination](https://graphql.org/learn/pagination/) in the GraphQL documentation. + +## nodes + +In a GraphQL query, `nodes` is used to represent a collection of [`nodes` on a graph](https://en.wikipedia.org/wiki/Vertex_(graph_theory)). +In this case, the collection of nodes is a collection of `User` objects. For each one, +we output: + +- Their user's `id`. +- The `membership` fragment, which represents a Project or Group membership belonging + to that user. Outputting a fragment is denoted with the `...memberships` notation. + +The GitLab GraphQL API is extensive and a large amount of data for a wide variety of entities can be output. +See the official [reference documentation](reference/index.md) for the most up-to-date information. + +## Set up the GraphiQL explorer + +This procedure presents a substantive example that you can copy and paste into GraphiQL +explorer. GraphiQL explorer is available for: + +- GitLab.com users at [https://gitlab.com/-/graphql-explorer](https://gitlab.com/-/graphql-explorer). +- Self-managed users at `https://gitlab.example.com/-/graphql-explorer`. + +1. Copy the following code excerpt: + + ```graphql + { + users(usernames: ["user1", "user3", "user4"]) { + pageInfo { + endCursor + startCursor + hasNextPage + } + nodes { + id + username, + publicEmail + location + webUrl + userPermissions { + createSnippet + } + } + } + } + ``` + +1. Open the [GraphiQL explorer tool](https://gitlab.com/-/graphql-explorer). +1. Paste the `query` listed above into the left window of your GraphiQL explorer tool. +1. Click Play to get the result shown here: + +![GraphiQL explorer search for boards](img/users_query_example_v13_8.png) + +NOTE: +[The GraphQL API returns a GlobalID, rather than a standard ID.](getting_started.md#queries-and-mutations) It also expects a GlobalID as an input rather than +a single integer. + +This GraphQL query returns the specified information for the three users with the listed username. Since the GraphiQL explorer uses the session token to authorize access to resources, +the output is limited to the projects and groups accessible to the currently signed-in user. + +If you've signed in as an instance administrator, you would have access to all records, regardless of ownership. + +If you are signed in as an administrator, you can show just the matching administrators on the instance by adding the `admins: true` parameter to the query changing the second line to: + +```graphql + users(usernames: ["user1", "user3", "user4"], admins: true) { + ... + } +``` + +Or you can just get all of the administrators: + +```graphql + users(admins: true) { + ... + } +``` + +For more information on: + +- GraphQL specific entities, such as Fragments and Interfaces, see the official + [GraphQL documentation](https://graphql.org/learn/). +- Individual attributes, see the [GraphQL API Resources](reference/index.md). diff --git a/doc/api/group_boards.md b/doc/api/group_boards.md index f982dad7962..722f3a76267 100644 --- a/doc/api/group_boards.md +++ b/doc/api/group_boards.md @@ -279,7 +279,7 @@ Example response: } ``` -## Update a group issue board **(PREMIUM)** +## Update a group issue board > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/5954) in GitLab 11.1. @@ -289,15 +289,17 @@ Updates a Group Issue Board. PUT /groups/:id/boards/:board_id ``` -| Attribute | Type | Required | Description | -| ------------------- | -------------- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user | -| `board_id` | integer | yes | The ID of a board | -| `name` | string | no | The new name of the board | -| `assignee_id` | integer | no | The assignee the board should be scoped to | -| `milestone_id` | integer | no | The milestone the board should be scoped to | -| `labels` | string | no | Comma-separated list of label names which the board should be scoped to | -| `weight` | integer | no | The weight range from 0 to 9, to which the board should be scoped to | +| Attribute | Type | Required | Description | +| ---------------------------- | -------------- | -------- | ----------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user | +| `board_id` | integer | yes | The ID of a board | +| `name` | string | no | The new name of the board | +| `hide_backlog_list` | boolean | no | Hide the Open list | +| `hide_closed_list` | boolean | no | Hide the Closed list | +| `assignee_id` **(PREMIUM)** | integer | no | The assignee the board should be scoped to | +| `milestone_id` **(PREMIUM)** | integer | no | The milestone the board should be scoped to | +| `labels` **(PREMIUM)** | string | no | Comma-separated list of label names which the board should be scoped to | +| `weight` **(PREMIUM)** | integer | no | The weight range from 0 to 9, to which the board should be scoped to | ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/boards/1?name=new_name&milestone_id=44&assignee_id=1&labels=GroupLabel&weight=4" diff --git a/doc/api/group_import_export.md b/doc/api/group_import_export.md index bf8c889b031..57670eff1ea 100644 --- a/doc/api/group_import_export.md +++ b/doc/api/group_import_export.md @@ -93,7 +93,7 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "name=i ``` NOTE: -The maximum import file size can be set by the Administrator, default is 50MB. +The maximum import file size can be set by the Administrator, default is `0` (unlimited). As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the [Application settings API](settings.md#change-application-settings) or the [Admin UI](../user/admin_area/settings/account_and_limit_settings.md). ## Important notes diff --git a/doc/api/groups.md b/doc/api/groups.md index b4d36b568b8..eb255f8de00 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -1,6 +1,6 @@ --- -stage: none -group: unassigned +stage: Manage +group: Access 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/#assignments --- @@ -766,7 +766,6 @@ Parameters: | `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 (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). | -| `shared_runners_setting` | string | no | See [Options for `shared_runners_setting`](#options-for-shared_runners_setting). Enable or disable shared runners for a group's subgroups and projects. | ### Options for `default_branch_protection` @@ -778,16 +777,6 @@ The `default_branch_protection` attribute determines whether developers and main | `1` | Partial protection. Developers and maintainers can: <br>- Push new commits | | `2` | Full protection. Only maintainers can: <br>- Push new commits | -### Options for `shared_runners_setting` - -The `shared_runners_setting` attribute determines whether shared runners are enabled for a group's subgroups and projects. - -| Value | Description | -|-------|-------------------------------------------------------------------------------------------------------------| -| `enabled` | Enables shared runners for all projects and subgroups in this group. | -| `disabled_with_override` | Disables shared runners for all projects and subgroups in this group, but allows subgroups to override this setting. | -| `disabled_and_unoverridable` | Disables shared runners for all projects and subgroups in this group, and prevents subgroups from overriding this setting. | - ## New Subgroup This is similar to creating a [New group](#new-group). You need the `parent_id` from the [List groups](#list-groups) call. You can then enter the desired: @@ -852,6 +841,7 @@ PUT /groups/:id | `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). | | `prevent_forking_outside_group` | boolean | no | **(PREMIUM)** When enabled, users can **not** fork projects from this group to external namespaces +| `shared_runners_setting` | string | no | See [Options for `shared_runners_setting`](#options-for-shared_runners_setting). Enable or disable shared runners for a group's subgroups and projects. | NOTE: The `projects` and `shared_projects` attributes in the response are deprecated and [scheduled for removal in API v5](https://gitlab.com/gitlab-org/gitlab/-/issues/213797). @@ -941,6 +931,16 @@ with Rails console access to run the following command: Feature.disable(:limit_projects_in_groups_api) ``` +### Options for `shared_runners_setting` + +The `shared_runners_setting` attribute determines whether shared runners are enabled for a group's subgroups and projects. + +| Value | Description | +|-------|-------------------------------------------------------------------------------------------------------------| +| `enabled` | Enables shared runners for all projects and subgroups in this group. | +| `disabled_with_override` | Disables shared runners for all projects and subgroups in this group, but allows subgroups to override this setting. | +| `disabled_and_unoverridable` | Disables shared runners for all projects and subgroups in this group, and prevents subgroups from overriding this setting. | + ## Remove group Only available to group owners and administrators. diff --git a/doc/api/import.md b/doc/api/import.md index 3a1edcb732d..2d978b7b6dd 100644 --- a/doc/api/import.md +++ b/doc/api/import.md @@ -73,7 +73,7 @@ POST /import/bitbucket_server curl --request POST \ --url "https://gitlab.example.com/api/v4/import/bitbucket_server" \ --header "content-type: application/json" \ - --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" \ + --header "PRIVATE-TOKEN: <your_access_token>" \ --data '{ "bitbucket_server_url": "http://bitbucket.example.com", "bitbucket_server_username": "root", diff --git a/doc/api/invitations.md b/doc/api/invitations.md index 0891a343cce..7259dddec8c 100644 --- a/doc/api/invitations.md +++ b/doc/api/invitations.md @@ -106,3 +106,27 @@ Example response: }, ] ``` + +## Delete an invitation to a group or project + +Deletes a pending invitation by email address. + +```plaintext +DELETE /groups/:id/invitations/:email +DELETE /projects/:id/invitations/:email +``` + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `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 | +| `email` | string | yes | The email address to which the invitation was previously sent | + +```shell +curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/55/invitations/email@example.org" +curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/55/invitations/email@example.org" +``` + +- Returns `204` and no content on success. +- Returns `403` forbidden if unauthorized to delete the invitation. +- Returns `404` not found if authorized and no invitation is found for that email address. +- Returns `409` if the request was valid but the invitation could not be deleted. diff --git a/doc/api/issues.md b/doc/api/issues.md index f6bab9ce676..1abb4fe3b4a 100644 --- a/doc/api/issues.md +++ b/doc/api/issues.md @@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Issues API -If a user is not a member of a project and the project is private, a `GET` +If a user is not a member of a private project, a `GET` request on that project results in a `404` status code. ## Issues pagination @@ -22,8 +22,8 @@ Introduced in [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_request NOTE: The `references.relative` attribute is relative to the group or project of the issue being requested. -When an issue is fetched from its project, the `relative` format is the same as the `short` format, -and when requested across groups or projects it's expected to be the same as the `full` format. +When an issue is fetched from its project, the `relative` format is the same as the `short` format. +When requested across groups or projects, it's expected to be the same as the `full` format. ## List issues @@ -57,7 +57,7 @@ GET /issues?state=opened | `confidential` | boolean | no | Filter confidential or public issues. | | `created_after` | datetime | no | Return issues created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `due_date` | string | no | Return issues that have no due date (`0`) or whose due date is this week, this month, between two weeks ago and next month, or which are overdue. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | +| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | | `iids[]` | integer array | no | Return only the issues having the given `iid` | | `in` | string | no | Modify the scope of the `search` attribute. `title`, `description`, or a string joining them with comma. Default is `title,description` | | `iteration_id` **(STARTER)** | integer | no | Return issues assigned to the given iteration ID. `None` returns issues that do not belong to an iteration. `Any` returns issues that belong to an iteration. Mutually exclusive with `iteration_title`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in [GitLab Starter](https://about.gitlab.com/pricing/) 13.6)_ | @@ -239,7 +239,7 @@ GET /groups/:id/issues?state=opened | `confidential` | boolean | no | Filter confidential or public issues. | | `created_after` | datetime | no | Return issues created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `due_date` | string | no | Return issues that have no due date (`0`) or whose due date is this week, this month, between two weeks ago and next month, or which are overdue. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | +| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user | | `iids[]` | integer array | no | Return only the issues having the given `iid` | | `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `None` lists all issues with no labels. `Any` lists all issues with at least one label. `No+Label` (Deprecated) lists all issues with no labels. Predefined names are case-insensitive. | @@ -416,7 +416,7 @@ GET /projects/:id/issues?state=opened | `confidential` | boolean | no | Filter confidential or public issues. | | `created_after` | datetime | no | Return issues created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `due_date` | string | no | Return issues that have no due date (`0`) or whose due date is this week, this month, between two weeks ago and next month, or which are overdue. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | +| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user | | `iids[]` | integer array | no | Return only the issues having the given `iid` | | `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `None` lists all issues with no labels. `Any` lists all issues with at least one label. `No+Label` (Deprecated) lists all issues with no labels. Predefined names are case-insensitive. | @@ -424,7 +424,7 @@ GET /projects/:id/issues?state=opened | `my_reaction_emoji` | string | no | Return issues reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ | | `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` | | `order_by` | string | no | Return issues ordered by `created_at`, `updated_at`, `priority`, `due_date`, `relative_position`, `label_priority`, `milestone_due`, `popularity`, `weight` fields. Default is `created_at` | -| `scope` | string | no | Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead.<br> _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5. [Changed to snake_case](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935) in GitLab 11.0)_ | +| `scope` | string | no | Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> For versions before 11.0, use the deprecated `created-by-me` or `assigned-to-me` scopes instead.<br> _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5. [Changed to snake_case](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935) in GitLab 11.0)_ | | `search` | string | no | Search project issues against their `title` and `description` | | `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` | | `state` | string | no | Return all issues or just those that are `opened` or `closed` | @@ -721,7 +721,7 @@ The `assignee` column is deprecated. We now show it as a single-sized array `ass to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated, and [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated, and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). Please use `iid` of the `epic` attribute instead. NOTE: @@ -882,7 +882,7 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). Please use `iid` of the `epic` attribute instead. NOTE: @@ -904,9 +904,9 @@ POST /projects/:id/issues | `created_at` | string | no | When the issue was created. Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z`. Requires administrator or project/group owner rights. | | `description` | string | no | The description of an issue. Limited to 1,048,576 characters. | | `discussion_to_resolve` | string | no | The ID of a discussion to resolve. This fills out the issue with a default description and mark the discussion as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. | -| `due_date` | string | no | The due date. Date time string in the format YEAR-MONTH-DAY, for example `2016-03-11` | +| `due_date` | string | no | The due date. Date time string in the format `YYYY-MM-DD`, for example `2016-03-11` | | `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)) | +| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user | | `iid` | integer/string | no | The internal ID of the project's issue (requires administrator or project owner rights) | | `labels` | string | no | Comma-separated label names for an issue | @@ -1048,9 +1048,9 @@ PUT /projects/:id/issues/:issue_iid | `confidential` | boolean | no | Updates an issue to be confidential | | `description` | string | no | The description of an issue. Limited to 1,048,576 characters. | | `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. | -| `due_date` | string | no | The due date. Date time string in the format YEAR-MONTH-DAY, for example `2016-03-11` | +| `due_date` | string | no | The due date. Date time string in the format `YYYY-MM-DD`, for example `2016-03-11` | | `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)) | +| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | | `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 | | `labels` | string | no | Comma-separated label names for an issue. Set to an empty string to unassign all labels. | @@ -1168,7 +1168,7 @@ WARNING: ## Delete an issue -Only for admins and project owners. Deletes the issue in question. +Only for administrators and project owners. Deletes an issue. ```plaintext DELETE /projects/:id/issues/:issue_iid @@ -1207,8 +1207,8 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab ## Move an issue Moves an issue to a different project. If the target project -equals the source project or the user has insufficient permissions to move an -issue, status code `400` and an error message is returned. +is the source project or the user has insufficient permissions, +an error message with status code `400` is returned. If a given label or milestone with the same name also exists in the target project, it's then assigned to the issue being moved. @@ -1987,9 +1987,9 @@ Example response: ] ``` -## List merge requests that will close issue on merge +## List merge requests that close a particular issue on merge -Get all the merge requests that will close an issue when merged. +Get all merge requests that close a particular issue when merged. If the project is private or the issue is confidential, you need to provide credentials to authorize. The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). @@ -2112,7 +2112,7 @@ Comments are done via the [notes](notes.md) resource. ## Get user agent details -Available only for admins. +Available only for administrators. ```plaintext GET /projects/:id/issues/:issue_iid/user_agent_detail @@ -2211,3 +2211,26 @@ Example response: } ] ``` + +## Delete metric image + +Available only for Incident issues. + +```plaintext +DELETE /projects/:id/issues/:issue_iid/metric_images/:image_id +``` + +| 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 | +| `image_id` | integer | yes | The ID of the image | + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" --request DELETE "https://gitlab.example.com/api/v4/projects/5/issues/93/metric_images/1" +``` + +Can return the following status codes: + +- `204 No Content`, if the image was deleted successfully. +- `400 Bad Request`, if the image could not be deleted. diff --git a/doc/api/job_artifacts.md b/doc/api/job_artifacts.md index 229b90282f0..a6b5e9e4711 100644 --- a/doc/api/job_artifacts.md +++ b/doc/api/job_artifacts.md @@ -33,7 +33,7 @@ To use this in a [`script` definition](../ci/yaml/README.md#script) inside - The `JOB-TOKEN` header with the GitLab-provided `CI_JOB_TOKEN` variable. For example, the following job downloads the artifacts of the job with ID - `42`. Note that the command is wrapped into single quotes since it contains a + `42`. Note that the command is wrapped into single quotes because it contains a colon (`:`): ```yaml @@ -99,7 +99,7 @@ To use this in a [`script` definition](../ci/yaml/README.md#script) inside - The `JOB-TOKEN` header with the GitLab-provided `CI_JOB_TOKEN` variable. For example, the following job downloads the artifacts of the `test` job of the `master` branch. Note that the command is wrapped into single quotes - since it contains a colon (`:`): + because it contains a colon (`:`): ```yaml artifact_download: @@ -130,7 +130,7 @@ Possible response status codes: > Introduced in GitLab 10.0 -Download a single artifact file from a job with a specified ID from within +Download a single artifact file from a job with a specified ID from inside the job's artifacts zipped archive. The file is extracted from the archive and streamed to the client. @@ -165,7 +165,7 @@ Possible response status codes: > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/23538) in GitLab 11.5. Download a single artifact file for a specific job of the latest successful -pipeline for the given reference name from within the job's artifacts archive. +pipeline for the given reference name from inside the job's artifacts archive. The file is extracted from the archive and streamed to the client. In [GitLab 13.5](https://gitlab.com/gitlab-org/gitlab/-/issues/201784) and later, artifacts diff --git a/doc/api/members.md b/doc/api/members.md index 05914b50cd7..47b686d9275 100644 --- a/doc/api/members.md +++ b/doc/api/members.md @@ -398,7 +398,7 @@ POST /groups/:id/members/:user_id/override | `user_id` | integer | yes | The user ID of the member | ```shell -curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override" +curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override" ``` Example response: @@ -435,7 +435,7 @@ DELETE /groups/:id/members/:user_id/override | `user_id` | integer | yes | The user ID of the member | ```shell -curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override" +curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override" ``` Example response: @@ -468,7 +468,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 | +| `unassign_issuables` | boolean | false | Flag indicating if the removed member should be unassigned from any issues or merge requests inside a 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 d2144a2c0c5..c43ac96a42f 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -7,15 +7,43 @@ type: reference, api # Merge requests API -Every API call to merge requests must be authenticated. +> - `author_id`, `author_username`, and `assignee_id` were [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5. +> - `my_reaction_emoji` was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0. +> - For the `scope` attribute, `created-by-me` and `assigned-to-me` were [deprecated](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935) in favor of `created_by_me` and `assigned_to_me` in GitLab 11.0. +> - `with_labels_details` was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) in GitLab 12.7. +> - `author_username` and `author_username` were [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10. +> - `reference` was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) in GitLab 12.10 in favour of `references`. +> - `with_merge_status_recheck` was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) in GitLab 13.0. +> - `reviewer_username` and `reviewer_id` were [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49341) in GitLab 13.8. -WARNING: -> `reference` attribute in response is deprecated in favour of `references`. -> Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) +Every API call to merge requests must be authenticated. -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. +**Important notes:** + +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/29984) in GitLab 12.8, the mergeability (`merge_status`) +of each merge request is checked asynchronously when a request is made to this endpoint. Poll this API endpoint +to get updated status. This affects the `has_conflicts` property as it is dependent on the `merge_status`. It returns +`false` unless `merge_status` is `cannot_be_merged`. +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) in GitLab 13.0, listing merge requests may +not proactively update `merge_status` (which also affects the `has_conflicts`), as this can be an expensive operation. +If you need the value of these fields from this endpoint, set the `with_merge_status_recheck` parameter to +`true` in the query. +- `references.relative` is relative to the group or project that the merge request is being requested. When the merge request +is fetched from its project, `relative` format would be the same as `short` format, and when requested across groups or projects, it is expected to be the same as `full` format. +- If `approvals_before_merge` **(STARTER)** is not provided, it inherits the value from the target project. If provided, the following conditions must hold for it to take effect: + + - The target project's `approvals_before_merge` must be greater than zero. A + value of zero disables approvals for that project. + - The provided value of `approvals_before_merge` must be greater than the + target project's `approvals_before_merge`. + + This API returns `HTTP 201 Created` for a successful response. + +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46190) in GitLab 13.6, +diffs associated with the set of changes have the same size limitations applied as other diffs +returned by the API or viewed via the UI. When these limits impact the results, the `overflow` +field contains a value of `true`. Diff data without these limits applied can be retrieved by +adding the `access_raw_diffs` parameter, but it is slower and more resource-intensive. ## List merge requests @@ -26,7 +54,7 @@ default it returns only merge requests created by the current user. To get all merge requests, use parameter `scope=all`. The `state` parameter can be used to get only merge requests with a -given state (`opened`, `closed`, `locked`, or `merged`) or all of them (`all`). It should be noted that when searching by `locked` it will mostly return no results as it is a short-lived, transitional state. +given state (`opened`, `closed`, `locked`, or `merged`) or all of them (`all`). It should be noted that when searching by `locked` it mostly returns no results as it is a short-lived, transitional state. The pagination parameters `page` and `per_page` can be used to restrict the list of merge requests. @@ -47,50 +75,37 @@ Parameters: | Attribute | Type | Required | Description | | ------------------------------- | -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- | -| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, `locked`, or `merged` | -| `order_by` | string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at` | -| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc` | +| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, `locked`, or `merged`. | +| `order_by` | string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at`. | +| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc`. | | `milestone` | string | no | Return merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | -| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request | +| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request. | | `labels` | string | no | Return merge requests matching a comma separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. `No+Label` (Deprecated) lists all merge requests with no labels. Predefined names are case-insensitive. | -| `with_labels_details` | boolean | no | If `true`, response will return more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | -| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) | +| `with_labels_details` | boolean | no | If `true`, response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. | +| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. | | `created_after` | datetime | no | Return merge requests created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return merge requests created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `updated_after` | datetime | no | Return merge requests updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `updated_before` | datetime | no | Return merge requests updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`. Defaults to `created_by_me`<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead. | -| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me` -| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10)_ | | +| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. | +| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. | | `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. | | `approver_ids` **(STARTER)** | integer array | no | Returns merge requests which have specified all the users with the given `id`s as individual approvers. `None` returns merge requests without approvers. `Any` returns merge requests with an approver. | | `approved_by_ids` **(STARTER)** | integer array | no | Returns merge requests which have been approved by all the users with the given `id`s (Max: 5). `None` returns merge requests with no approvals. `Any` returns merge requests with an approval. | -| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ | -| `source_branch` | string | no | Return merge requests with the given source branch | -| `target_branch` | string | no | Return merge requests with the given target branch | -| `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` | +| `reviewer_id` | integer | no | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. | +| `reviewer_username` | string | no | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. | +| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | +| `source_branch` | string | no | Return merge requests with the given source branch. | +| `target_branch` | string | no | Return merge requests with the given target branch. | +| `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`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | | `environment` | string | no | Returns merge requests deployed to the given environment. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `deployed_before` | datetime | no | Return merge requests deployed before the given date/time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `deployed_after` | datetime | no | Return merge requests deployed after the given date/time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -NOTE: -[Starting in GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890), -listing merge requests may not proactively update the `merge_status` field -(which also affects the `has_conflicts` field), as this can be an expensive -operation. If you are interested in the value of these fields from this -endpoint, set the `with_merge_status_recheck` parameter to `true` in the query. - -NOTE: -[Starting in GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/issues/29984), -the mergeability (`merge_status`) of each merge request will be checked -asynchronously when a request is made to this endpoint. Poll this API endpoint -to get updated status. This affects the `has_conflicts` property as it is -dependent on the `merge_status`. It'll return `false` unless `merge_status` is -`cannot_be_merged`. - ```json [ { @@ -141,6 +156,14 @@ dependent on the `merge_status`. It'll return `false` unless `merge_status` is "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon", "web_url": "https://gitlab.example.com/axel.block" }], + "reviewers": [{ + "id": 2, + "name": "Sam Bauch", + "username": "kenyatta_oconnell", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/956c92487c6f6f7616b536927e22c9a0?s=80&d=identicon", + "web_url": "http://gitlab.example.com//kenyatta_oconnell" + }], "source_project_id": 2, "target_project_id": 3, "labels": [ @@ -193,7 +216,7 @@ dependent on the `merge_status`. It'll return `false` unless `merge_status` is ] ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -224,43 +247,47 @@ GET /projects/:id/merge_requests?my_reaction_emoji=star ``` `project_id` represents the ID of the project where the MR resides. -`project_id` will always equal `target_project_id`. +`project_id` always equals `target_project_id`. In the case of a merge request from the same project, `source_project_id`, `target_project_id` and `project_id` -will be the same. In the case of a merge request from a fork, -`target_project_id` and `project_id` will be the same and -`source_project_id` will be the fork project's ID. +are the same. In the case of a merge request from a fork, +`target_project_id` and `project_id` are the same and +`source_project_id` is the fork project's ID. Parameters: | Attribute | Type | Required | Description | | ------------------------------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ | -| `id` | integer | yes | The ID of a project | -| `iids[]` | integer array | no | Return the request having the given `iid` | -| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, `locked`, or `merged` | -| `order_by` | string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at` | -| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc` | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `iids[]` | integer array | no | Return the request having the given `iid`. | +| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, `locked`, or `merged`. | +| `order_by` | string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at`. | +| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc`. | | `milestone` | string | no | Return merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | -| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request | +| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request. | | `labels` | string | no | Return merge requests matching a comma separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. `No+Label` (Deprecated) lists all merge requests with no labels. Predefined names are case-insensitive. | -| `with_labels_details` | boolean | no | If `true`, response will return more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | -| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) | +| `with_labels_details` | boolean | no | If `true`, response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. | +| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. | | `created_after` | datetime | no | Return merge requests created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return merge requests created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `updated_after` | datetime | no | Return merge requests updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `updated_before` | datetime | no | Return merge requests updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead.<br> _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5. [Changed to snake_case](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935) in GitLab 11.0)_ | -| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_ -| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10)_ | | -| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_ | +| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me`, or `all`. | +| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. | +| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.| +| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. | | `approver_ids` **(STARTER)** | integer array | no | Returns merge requests which have specified all the users with the given `id`s as individual approvers. `None` returns merge requests without approvers. `Any` returns merge requests with an approver. | | `approved_by_ids` **(STARTER)** | integer array | no | Returns merge requests which have been approved by all the users with the given `id`s (Max: 5). `None` returns merge requests with no approvals. `Any` returns merge requests with an approval. | -| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ | -| `source_branch` | string | no | Return merge requests with the given source branch | -| `target_branch` | string | no | Return merge requests with the given target branch | -| `search` | string | no | Search merge requests against their `title` and `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 | +| `reviewer_id` | integer | no | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. | +| `reviewer_username` | string | no | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. | + +| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | +| `source_branch` | string | no | Return merge requests with the given source branch. | +| `target_branch` | string | no | Return merge requests with the given target branch. | +| `search` | string | no | Search merge requests against their `title` and `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`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | ```json [ @@ -312,6 +339,14 @@ Parameters: "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon", "web_url": "https://gitlab.example.com/axel.block" }], + "reviewers": [{ + "id": 2, + "name": "Sam Bauch", + "username": "kenyatta_oconnell", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/956c92487c6f6f7616b536927e22c9a0?s=80&d=identicon", + "web_url": "http://gitlab.example.com//kenyatta_oconnell" + }], "source_project_id": 2, "target_project_id": 3, "labels": [ @@ -366,7 +401,7 @@ Parameters: ] ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -401,30 +436,33 @@ Parameters: | Attribute | Type | Required | Description | | ------------------------------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ | -| `id` | integer | yes | The ID of a group | -| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, `locked`, or `merged` | -| `order_by` | string | no | Return merge requests ordered by `created_at` or `updated_at` fields. Default is `created_at` | -| `sort` | string | no | Return merge requests sorted in `asc` or `desc` order. Default is `desc` | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, `locked`, or `merged`. | +| `order_by` | string | no | Return merge requests ordered by `created_at` or `updated_at` fields. Default is `created_at`. | +| `sort` | string | no | Return merge requests sorted in `asc` or `desc` order. Default is `desc`. | | `milestone` | string | no | Return merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | -| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request | +| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request. | | `labels` | string | no | Return merge requests matching a comma separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. `No+Label` (Deprecated) lists all merge requests with no labels. Predefined names are case-insensitive. | -| `with_labels_details` | boolean | no | If `true`, response will return more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413)| -| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) | -| `created_after` | datetime | no | Return merge requests created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `created_before` | datetime | no | Return merge requests created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `updated_after` | datetime | no | Return merge requests updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `updated_before` | datetime | no | Return merge requests updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> | -| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_ -| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10)_ | | -| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_ | +| `with_labels_details` | boolean | no | If `true`, response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413).| +| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890). | +| `created_after` | datetime | no | Return merge requests created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | +| `created_before` | datetime | no | Return merge requests created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | +| `updated_after` | datetime | no | Return merge requests updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | +| `updated_before` | datetime | no | Return merge requests updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | +| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`. | +| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_. | +| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10)_. | +| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_. | | `approver_ids` **(STARTER)** | integer array | no | Returns merge requests which have specified all the users with the given `id`s as individual approvers. `None` returns merge requests without approvers. `Any` returns merge requests with an approver. | | `approved_by_ids` **(STARTER)** | integer array | no | Returns merge requests which have been approved by all the users with the given `id`s (Max: 5). `None` returns merge requests with no approvals. `Any` returns merge requests with an approval. | -| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ | -| `source_branch` | string | no | Return merge requests with the given source branch | -| `target_branch` | string | no | Return merge requests with the given target branch | -| `search` | string | no | Search merge requests against their `title` and `description` | -| `non_archived` | boolean | no | Return merge requests from non archived projects only. Default is true. _(Introduced in [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23809))_ | +| `reviewer_id` | integer | no | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#enable-or-disable-merge-request-reviewers) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. | +| `reviewer_username` | string | no | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#enable-or-disable-merge-request-reviewers) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. | +| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_. | +| `source_branch` | string | no | Return merge requests with the given source branch. | +| `target_branch` | string | no | Return merge requests with the given target branch. | +| `search` | string | no | Search merge requests against their `title` and `description`. | +| `non_archived` | boolean | no | Return merge requests from non archived projects only. Default is true. _(Introduced in [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23809))_. | +| `not` | Hash | no | Return merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | ```json [ @@ -476,6 +514,14 @@ Parameters: "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon", "web_url": "https://gitlab.example.com/axel.block" }], + "reviewers": [{ + "id": 2, + "name": "Sam Bauch", + "username": "kenyatta_oconnell", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/956c92487c6f6f7616b536927e22c9a0?s=80&d=identicon", + "web_url": "http://gitlab.example.com//kenyatta_oconnell" + }], "source_project_id": 2, "target_project_id": 3, "labels": [ @@ -528,7 +574,7 @@ Parameters: ] ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -548,7 +594,7 @@ Shows information about a single merge request. **Note**: the `changes_count` value in the response is a string, not an integer. This is because when an MR has too many changes to display and store, -it will be capped at 1,000. In that case, the API will return the string +it is capped at 1,000. In that case, the API returns the string `"1000+"` for the changes count. ```plaintext @@ -557,19 +603,13 @@ GET /projects/:id/merge_requests/:merge_request_iid Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `merge_request_iid` (required) - The internal ID of the merge request -- `render_html` (optional) - If `true` response includes rendered HTML for title and description -- `include_diverged_commits_count` (optional) - If `true` response includes the commits behind the target branch -- `include_rebase_in_progress` (optional) - If `true` response includes whether a rebase operation is in progress - -NOTE: -[Starting in GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/issues/29984), -the mergeability (`merge_status`) of a merge request will be checked -asynchronously when a request is made to this endpoint. Poll this API endpoint -to get updated status. This affects the `has_conflicts` property as it is -dependent on the `merge_status`. It'll return `false` unless `merge_status` is -`cannot_be_merged`. +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | +| `render_html` | integer | no | If `true` response includes rendered HTML for title and description. | +| `include_diverged_commits_count` | boolean | no | If `true` response includes the commits behind the target branch. | +| `include_rebase_in_progress` | boolean | no | If `true` response includes whether a rebase operation is in progress. | ```json { @@ -612,6 +652,14 @@ dependent on the `merge_status`. It'll return `false` unless `merge_status` is "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon", "web_url": "https://gitlab.example.com/axel.block" }], + "reviewers": [{ + "id": 2, + "name": "Sam Bauch", + "username": "kenyatta_oconnell", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/956c92487c6f6f7616b536927e22c9a0?s=80&d=identicon", + "web_url": "http://gitlab.example.com//kenyatta_oconnell" + }], "source_project_id": 2, "target_project_id": 3, "labels": [ @@ -697,7 +745,7 @@ dependent on the `merge_status`. It'll return `false` unless `merge_status` is } ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -719,8 +767,10 @@ GET /projects/:id/merge_requests/:merge_request_iid/participants Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `merge_request_iid` (required) - The internal ID of the merge request +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```json [ @@ -753,8 +803,10 @@ GET /projects/:id/merge_requests/:merge_request_iid/commits Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `merge_request_iid` (required) - The internal ID of the merge request +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```json [ @@ -787,17 +839,13 @@ Shows information about the merge request including its files and changes. GET /projects/:id/merge_requests/:merge_request_iid/changes ``` -[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46190) in GitLab 13.6, -diffs associated with the set of changes will have the same size limitations applied as other diffs -returned by the API or viewed via the UI. When these limits impact the results, the `overflow` -field will contain a value of `true`. Diff data without these limits applied can be retrieved by -adding the `access_raw_diffs` parameter, however, it will be slower and more resource-intensive. - Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. -- `merge_request_iid` (required) - The internal ID of the merge request. -- `access_raw_diffs` (optional) - Retrieve change diffs without size limitations. +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | +| `access_raw_diffs` | boolean | no | Retrieve change diffs without size limitations. | ```json { @@ -898,7 +946,7 @@ Parameters: ## List MR pipelines -> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15454) in GitLab 10.5.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15454) in GitLab 10.5. Get a list of merge request pipelines. @@ -908,8 +956,10 @@ GET /projects/:id/merge_requests/:merge_request_iid/pipelines Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `merge_request_iid` (required) - The internal ID of the merge request +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```json [ @@ -926,7 +976,9 @@ Parameters: > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/31722) in GitLab 12.3. -Create a new [pipeline for a merge request](../ci/merge_request_pipelines/index.md). A pipeline created via this endpoint will not run a regular branch/tag pipeline, it requires `.gitlab-ci.yml` to be configured with `only: [merge_requests]` to create jobs. +Create a new [pipeline for a merge request](../ci/merge_request_pipelines/index.md). +A pipeline created via this endpoint doesn't run a regular branch/tag pipeline. +It requires `.gitlab-ci.yml` to be configured with `only: [merge_requests]` to create jobs. The new pipeline can be: @@ -940,8 +992,10 @@ POST /projects/:id/merge_requests/:merge_request_iid/pipelines Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) -- `merge_request_iid` (required) - The internal ID of the merge request +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```json { @@ -993,29 +1047,19 @@ POST /projects/:id/merge_requests | 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 | -| `source_branch` | string | yes | The source branch | -| `target_branch` | string | yes | The target branch | -| `title` | string | yes | Title of MR | -| `assignee_id` | integer | no | Assignee user ID | +| `source_branch` | string | yes | The source branch. | +| `target_branch` | string | yes | The target branch. | +| `title` | string | yes | Title of MR. | +| `assignee_id` | integer | no | Assignee user ID. | | `assignee_ids` | integer array | no | The ID of the user(s) to assign the MR to. Set to `0` or provide an empty value to unassign all assignees. | | `description` | string | no | Description of MR. Limited to 1,048,576 characters. | -| `target_project_id` | integer | no | The target project (numeric ID) | -| `labels` | string | no | Labels for MR as a comma-separated list | -| `milestone_id` | integer | no | The global ID of a milestone | -| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging | -| `allow_collaboration` | boolean | no | Allow commits from members who can merge to the target branch | -| `allow_maintainer_to_push` | boolean | no | Deprecated, see allow_collaboration | -| `squash` | boolean | no | Squash commits into a single commit when merging | - -If `approvals_before_merge` **(STARTER)** is not provided, it inherits the value from the -target project. If it is provided, then the following conditions must hold in -order for it to take effect: - -1. The target project's `approvals_before_merge` must be greater than zero. A - value of zero disables approvals for that project. -1. The provided value of `approvals_before_merge` must be greater than the - target project's `approvals_before_merge`. -1. This API returns 201 (created) for a successful response. +| `target_project_id` | integer | no | The target project (numeric ID). | +| `labels` | string | no | Labels for MR as a comma-separated list. | +| `milestone_id` | integer | no | The global ID of a milestone. | +| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging. | +| `allow_collaboration` | boolean | no | Allow commits from members who can merge to the target branch. | +| `allow_maintainer_to_push` | boolean | no | Deprecated, see `allow_collaboration`. | +| `squash` | boolean | no | Squash commits into a single commit when merging. | ```json { @@ -1128,7 +1172,7 @@ order for it to take effect: } ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1150,10 +1194,10 @@ PUT /projects/:id/merge_requests/:merge_request_iid | 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 | -| `merge_request_iid` | integer | yes | The ID of a merge request | -| `target_branch` | string | no | The target branch | -| `title` | string | no | Title of MR | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The ID of a merge request. | +| `target_branch` | string | no | The target branch. | +| `title` | string | no | Title of MR. | | `assignee_id` | integer | no | The ID of the user to assign the merge request to. Set to `0` or provide an empty value to unassign all assignees. | | `assignee_ids` | integer array | no | The ID of the user(s) to assign the MR to. Set to `0` or provide an empty value to unassign all assignees. | | `milestone_id` | integer | no | The global ID of a milestone to assign the merge request to. Set to `0` or provide an empty value to unassign a milestone.| @@ -1161,12 +1205,12 @@ PUT /projects/:id/merge_requests/:merge_request_iid | `add_labels` | string | no | Comma-separated label names to add to a merge request. | | `remove_labels` | string | no | Comma-separated label names to remove from a merge request. | | `description` | string | no | Description of MR. Limited to 1,048,576 characters. | -| `state_event` | string | no | New state (close/reopen) | -| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging | -| `squash` | boolean | no | Squash commits into a single commit when merging | +| `state_event` | string | no | New state (close/reopen). | +| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging. | +| `squash` | boolean | no | Squash commits into a single commit when merging. | | `discussion_locked` | boolean | no | Flag indicating if the merge request's discussion is locked. If the discussion is locked only project members can add, edit or resolve comments. | -| `allow_collaboration` | boolean | no | Allow commits from members who can merge to the target branch | -| `allow_maintainer_to_push` | boolean | no | Deprecated, see allow_collaboration | +| `allow_collaboration` | boolean | no | Allow commits from members who can merge to the target branch. | +| `allow_maintainer_to_push` | boolean | no | Deprecated, see `allow_collaboration`. | Must include at least one non-required attribute from above. @@ -1289,7 +1333,7 @@ Must include at least one non-required attribute from above. } ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1303,7 +1347,7 @@ the `approvals_before_merge` parameter: ## Delete a merge request -Only for admins and project owners. Deletes the merge request in question. +Only for administrators and project owners. Deletes the merge request in question. ```plaintext DELETE /projects/:id/merge_requests/:merge_request_iid @@ -1311,8 +1355,8 @@ DELETE /projects/:id/merge_requests/:merge_request_iid | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```shell curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/merge_requests/85" @@ -1322,13 +1366,13 @@ 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 (such as Draft, Closed, Pipeline Pending Completion, or Failed while requiring Success) - you'll get a `405` and the error message 'Method Not Allowed' +If a merge request is unable to be accepted (such as Draft, Closed, Pipeline Pending Completion, or Failed while requiring Success) - you receive 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' +If it has some conflicts and can not be merged - you receive a `406` and the error message 'Branch cannot be merged' -If the `sha` parameter is passed and does not match the HEAD of the source - you'll get a `409` and the error message 'SHA does not match HEAD of source branch' +If the `sha` parameter is passed and does not match the HEAD of the source - you receive a `409` and the error message 'SHA does not match HEAD of source branch' -If you don't have permissions to accept this merge request - you'll get a `401` +If you don't have permissions to accept this merge request - you receive a `401` ```plaintext PUT /projects/:id/merge_requests/:merge_request_iid/merge @@ -1336,14 +1380,16 @@ PUT /projects/:id/merge_requests/:merge_request_iid/merge Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `merge_request_iid` (required) - Internal ID of MR -- `merge_commit_message` (optional) - Custom merge commit message -- `squash_commit_message` (optional) - Custom squash commit message -- `squash` (optional) - if `true` the commits will be squashed into a single commit on merge -- `should_remove_source_branch` (optional) - if `true` removes the source branch -- `merge_when_pipeline_succeeds` (optional) - if `true` the MR is merged when the pipeline succeeds -- `sha` (optional) - if present, then this SHA must match the HEAD of the source branch, otherwise the merge will fail +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | +| `merge_commit_message` | string | no | Custom merge commit message. | +| `squash_commit_message` | string | no | Custom squash commit message. | +| `squash` | boolean | no | If `true` the commits the commits are squashed into a single commit on merge. | +| `should_remove_source_branch` | boolean | no | If `true` removes the source branch. | +| `merge_when_pipeline_succeeds` | boolean | no | If `true` the MR is merged when the pipeline succeeds. | +| `sha` | string | no | If present, then this SHA must match the HEAD of the source branch, otherwise the merge fails. | ```json { @@ -1464,7 +1510,7 @@ Parameters: } ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1479,15 +1525,15 @@ the `approvals_before_merge` parameter: ## Merge to default merge ref path Merge the changes between the merge request source and target branches into `refs/merge-requests/:iid/merge` -ref, of the target project repository, if possible. This ref will have the state the target branch would have if +ref, of the target project repository, if possible. This ref has the state the target branch would have if a regular merge action was taken. This is not a regular merge action given it doesn't change the merge request target branch state in any manner. This ref (`refs/merge-requests/:iid/merge`) isn't necessarily overwritten when submitting -requests to this API, though it'll make sure the ref has the latest possible state. +requests to this API, though it makes sure the ref has the latest possible state. -If the merge request has conflicts, is empty or already merged, you'll get a `400` and a descriptive error message. +If the merge request has conflicts, is empty or already merged, you receive a `400` and a descriptive error message. It returns the HEAD commit of `refs/merge-requests/:iid/merge` in the response body in case of `200`. @@ -1497,8 +1543,10 @@ GET /projects/:id/merge_requests/:merge_request_iid/merge_ref Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `merge_request_iid` (required) - Internal ID of MR +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```json { @@ -1508,11 +1556,9 @@ Parameters: ## Cancel Merge When Pipeline Succeeds -If you don't have permissions to accept this merge request - you'll get a `401` - -If the merge request is already merged or closed - you get `405` and error message 'Method Not Allowed' - -In case the merge request is not set to be merged when the pipeline succeeds, you'll also get a `406` error. +- If you don't have permissions to accept this merge request - you receive a `HTTP 401 Unauthorized`. +- If the merge request is already merged or closed - you receive a `HTTP 405 Method Not Allowed` and the error message 'Method Not Allowed'. +- In case the merge request is not set to be merged when the pipeline succeeds, you also receive a `HTTP 406 Not Acceptable` error. ```plaintext POST /projects/:id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_succeeds @@ -1520,8 +1566,10 @@ POST /projects/:id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_ Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `merge_request_iid` (required) - Internal ID of MR +| 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. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```json { @@ -1642,7 +1690,7 @@ Parameters: } ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1660,7 +1708,7 @@ Automatically rebase the `source_branch` of the merge request against its `target_branch`. If you don't have permissions to push to the merge request's source branch - -you'll get a `403 Forbidden` response. +you receive a `403 Forbidden` response. ```plaintext PUT /projects/:id/merge_requests/:merge_request_iid/rebase @@ -1668,15 +1716,15 @@ PUT /projects/:id/merge_requests/:merge_request_iid/rebase | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | -| `skip_ci` | boolean | no | Set to `true` to skip creating a CI pipeline | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | +| `skip_ci` | boolean | no | Set to `true` to skip creating a CI pipeline. | ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/76/merge_requests/1/rebase" ``` -This is an asynchronous request. The API will return a `202 Accepted` response +This is an asynchronous request. The API returns a `HTTP 202 Accepted` response if the request is enqueued successfully, with a response containing: ```json @@ -1689,7 +1737,7 @@ You can poll the [Get single MR](#get-single-mr) endpoint with the `include_rebase_in_progress` parameter to check the status of the asynchronous request. -If the rebase operation is ongoing, the response will include the following: +If the rebase operation is ongoing, the response includes the following: ```json { @@ -1698,7 +1746,7 @@ If the rebase operation is ongoing, the response will include the following: } ``` -Once the rebase operation has completed successfully, the response will include +After the rebase operation has completed successfully, the response includes the following: ```json @@ -1708,7 +1756,7 @@ the following: } ``` -If the rebase operation fails, the response will include the following: +If the rebase operation fails, the response includes the following: ```json { @@ -1721,7 +1769,7 @@ If the rebase operation fails, the response will include the following: Comments are done via the [notes](notes.md) resource. -## List issues that will close on merge +## List issues that close on merge Get all the issues that would be closed by merging the provided merge request. @@ -1731,8 +1779,8 @@ GET /projects/:id/merge_requests/:merge_request_iid/closes_issues | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/76/merge_requests/1/closes_issues" @@ -1785,7 +1833,7 @@ Example response when the GitLab issue tracker is used: ] ``` -Example response when an external issue tracker (e.g. Jira) is used: +Example response when an external issue tracker (for example, Jira) is used: ```json [ @@ -1799,7 +1847,7 @@ Example response when an external issue tracker (e.g. Jira) is used: ## Subscribe to a merge request Subscribes the authenticated user to a merge request to receive notification. If the user is already subscribed to the merge request, the -status code `304` is returned. +status code `HTTP 304 Not Modified` is returned. ```plaintext POST /projects/:id/merge_requests/:merge_request_iid/subscribe @@ -1807,8 +1855,8 @@ POST /projects/:id/merge_requests/:merge_request_iid/subscribe | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/17/subscribe" @@ -1934,7 +1982,7 @@ Example response: } ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1950,7 +1998,7 @@ the `approvals_before_merge` parameter: Unsubscribes the authenticated user from a merge request to not receive notifications from that merge request. If the user is -not subscribed to the merge request, the status code `304` is returned. +not subscribed to the merge request, the status code `HTTP 304 Not Modified` is returned. ```plaintext POST /projects/:id/merge_requests/:merge_request_iid/unsubscribe @@ -1958,8 +2006,8 @@ POST /projects/:id/merge_requests/:merge_request_iid/unsubscribe | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/17/unsubscribe" @@ -2085,7 +2133,7 @@ Example response: } ``` -Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -2101,7 +2149,7 @@ the `approvals_before_merge` parameter: Manually creates a to-do item for the current user on a merge request. If there already exists a to-do item for the user on that merge request, -status code `304` is returned. +status code `HTTP 304 Not Modified` is returned. ```plaintext POST /projects/:id/merge_requests/:merge_request_iid/todo @@ -2109,8 +2157,8 @@ POST /projects/:id/merge_requests/:merge_request_iid/todo | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/27/todo" @@ -2226,8 +2274,8 @@ GET /projects/:id/merge_requests/:merge_request_iid/versions | Attribute | Type | Required | Description | | --------- | ------- | -------- | --------------------- | -| `id` | String | yes | The ID of the project | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | +| `id` | String | yes | The ID of the project. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/merge_requests/1/versions" @@ -2267,9 +2315,9 @@ GET /projects/:id/merge_requests/:merge_request_iid/versions/:version_id | Attribute | Type | Required | Description | | --------- | ------- | -------- | --------------------- | -| `id` | String | yes | The ID of the project | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | -| `version_id` | integer | yes | The ID of the merge request diff version | +| `id` | String | yes | The ID of the project. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | +| `version_id` | integer | yes | The ID of the merge request diff version. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/merge_requests/1/versions/1" @@ -2335,9 +2383,9 @@ POST /projects/:id/merge_requests/:merge_request_iid/time_estimate | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | -| `duration` | string | yes | The duration in human format. e.g: 3h30m | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | +| `duration` | string | yes | The duration in human format, such as `3h30m`. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/93/time_estimate?duration=3h30m" @@ -2364,8 +2412,8 @@ POST /projects/:id/merge_requests/:merge_request_iid/reset_time_estimate | 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 | -| `merge_request_iid` | integer | yes | The internal ID of a project's merge_request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of a project's merge_request. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/93/reset_time_estimate" @@ -2384,7 +2432,7 @@ Example response: ## Add spent time for a merge request -Adds spent time for this merge request +Adds spent time for this merge request. ```plaintext POST /projects/:id/merge_requests/:merge_request_iid/add_spent_time @@ -2392,9 +2440,9 @@ POST /projects/:id/merge_requests/:merge_request_iid/add_spent_time | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | -| `duration` | string | yes | The duration in human format. e.g: 3h30m | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | +| `duration` | string | yes | The duration in human format, such as `3h30m` | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/93/add_spent_time?duration=1h" @@ -2421,8 +2469,8 @@ POST /projects/:id/merge_requests/:merge_request_iid/reset_spent_time | 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 | -| `merge_request_iid` | integer | yes | The internal ID of a project's merge_request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of a project's merge_request. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/93/reset_spent_time" @@ -2447,8 +2495,8 @@ GET /projects/:id/merge_requests/:merge_request_iid/time_stats | 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 | -| `merge_request_iid` | integer | yes | The internal ID of the merge request | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | +| `merge_request_iid` | integer | yes | The internal ID of the merge request. | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/93/time_stats" diff --git a/doc/api/notes.md b/doc/api/notes.md index 621d8179d98..fe20d5ab353 100644 --- a/doc/api/notes.md +++ b/doc/api/notes.md @@ -11,7 +11,7 @@ Notes are comments on: - Snippets - Issues - Merge requests -- Epics **(ULTIMATE)** +- Epics **(PREMIUM)** This includes system notes, which are notes about changes to the object (for example, when an assignee changes, GitLab posts a system note). @@ -185,6 +185,8 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git ## Snippets +The Snippets Notes API is intended for project-level snippets, and not for personal snippets. + ### List all snippet notes Gets a list of all notes for a single snippet. Snippet notes are comments users can post to a snippet. diff --git a/doc/api/oauth2.md b/doc/api/oauth2.md index 50d063bdf71..a80a97890ba 100644 --- a/doc/api/oauth2.md +++ b/doc/api/oauth2.md @@ -2,7 +2,7 @@ type: reference, howto stage: Manage group: Access -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technica l-writing/#designated-technical-writers +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 --- # GitLab as an OAuth2 provider @@ -19,17 +19,26 @@ documentation. This functionality is based on the GitLab currently supports the following authorization flows: -- **Web application flow:** Most secure and common type of flow, designed for - applications with secure server-side. -- **Implicit grant flow:** This flow is designed for user-agent only apps (e.g., single - page web application running on GitLab Pages). -- **Resource owner password credentials flow:** To be used **only** for securely - hosted, first-party services. +- **Authorization code with [Proof Key for Code Exchange (PKCE)](https://tools.ietf.org/html/rfc7636):** + Most secure. Without PKCE, you'd have to include client secrets on mobile clients, + and is recommended for both client and server aoos. +- **Authorization code:** Secure and common flow. Recommended option for secure + server-side apps. +- **Implicit grant:** Originally designed for user-agent only apps, such as + single page web apps running on GitLab Pages). + The [IETF](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-09#section-2.1.2) + recommends against Implicit grant flow. +- **Resource owner password credentials:** To be used **only** for securely + hosted, first-party services. GitLab recommends against use of this flow. + +The draft specification for [OAuth 2.1](https://oauth.net/2.1/) specifically omits both the +Implicit grant and Resource Owner Password Credentials flows. + it will be deprecated in the next OAuth specification version. Refer to the [OAuth RFC](https://tools.ietf.org/html/rfc6749) to find out how all those flows work and pick the right one for your use case. -Both **web application** and **implicit grant** flows require `application` to be +Both **authorization code** (with or without PKCE) and **implicit grant** flows require `application` to be registered first via the `/profile/applications` page in your user's account. During registration, by enabling proper scopes, you can limit the range of resources which the `application` can access. Upon creation, you'll obtain the @@ -57,19 +66,84 @@ These factors are particularly important when using the In the following sections you will find detailed instructions on how to obtain authorization with each flow. -### Web application flow +### Authorization code with Proof Key for Code Exchange (PKCE) + +The [PKCE RFC](https://tools.ietf.org/html/rfc7636#section-1.1) includes a +detailed flow description, from authorization request through access token. +The following steps describe our implementation of the flow. + +The Authorization code with PKCE flow, PKCE for short, makes it possible to securely perform +the OAuth exchange of client credentials for access tokens on public clients. + +Before starting the flow, generate the `STATE`, the `CODE_VERIFIER` and the `CODE_CHALLENGE`. + +- The `STATE` a value that can't be predicted used by the client to maintain + state between the request and callback. It should also be used as a CSRF token. +- The `CODE_VERIFIER` is a random string, between 43 and 128 characters in length, + which use the characters `A-Z`, `a-z`, `0-9`, `-`, `.`, `_`, and `~`. +- The `CODE_CHALLENGE` is an URL-safe base64-encoded string of the SHA256 hash of the + `CODE_VERIFIER` + - In Ruby, you can set that up with `Base64.urlsafe_encode64(Digest::SHA256.digest(CODE_VERIFIER))`. + +1. Request authorization code. To do that, you should redirect the user to the + `/oauth/authorize` page with the following query parameters: + + ```plaintext + https://gitlab.example.com/oauth/authorize?client_id=APP_ID&redirect_uri=REDIRECT_URI&response_type=code&state=YOUR_UNIQUE_STATE_HASH&scope=REQUESTED_SCOPES&code_challenge=CODE_CHALLENGE&code_challenge_method=S256 + ``` + + This page asks the user to approve the request from the app to access their + account based on the scopes specified in `REQUESTED_SCOPES`. The user is then + redirected back to the specified `REDIRECT_URI`. The [scope parameter](https://github.com/doorkeeper-gem/doorkeeper/wiki/Using-Scopes#requesting-particular-scopes) + is a space separated list of scopes associated with the user. + For example,`scope=read_user+profile` requests the `read_user` and `profile` scopes. + The redirect includes the authorization `code`, for example: + + ```plaintext + https://example.com/oauth/redirect?code=1234567890&state=YOUR_UNIQUE_STATE_HASH + ``` + +1. With the authorization `code` returned from the previous request (denoted as + `RETURNED_CODE` in the following example), you can request an `access_token`, with + any HTTP client. The following example uses Ruby's `rest-client`: + + ```ruby + parameters = 'client_id=APP_ID&client_secret=APP_SECRET&code=RETURNED_CODE&grant_type=authorization_code&redirect_uri=REDIRECT_URI&code_verifier=CODE_VERIFIER' + RestClient.post 'https://gitlab.example.com/oauth/token', parameters + ``` + + Example response: + + ```json + { + "access_token": "de6780bc506a0446309bd9362820ba8aed28aa506c71eedbe1c5c4f9dd350e54", + "token_type": "bearer", + "expires_in": 7200, + "refresh_token": "8257e65c97202ed1726cf9571600918f3bffb2544b26e00a61df9897668c33a1", + "created_at": 1607635748 + } + ``` + +NOTE: +The `redirect_uri` must match the `redirect_uri` used in the original +authorization request. + +You can now make requests to the API with the access token. + +### Authorization code flow NOTE: Check the [RFC spec](https://tools.ietf.org/html/rfc6749#section-4.1) for a detailed flow description. -The web application flow is: +The authorization code flow is essentially the same as +[authorization code flow with PKCE](#authorization-code-with-proof-key-for-code-exchange-pkce), 1. Request authorization code. To do that, you should redirect the user to the `/oauth/authorize` endpoint with the following GET parameters: ```plaintext - https://gitlab.example.com/oauth/authorize?client_id=APP_ID&redirect_uri=REDIRECT_URI&response_type=code&state=YOUR_UNIQUE_STATE_HASH&scope=REQUESTED_SCOPES + https://gitlab.example.com/oauth/authorize?client_id=APP_ID&redirect_uri=REDIRECT_URI&response_type=code&state=STATE&scope=REQUESTED_SCOPES ``` This will ask the user to approve the applications access to their account @@ -80,12 +154,12 @@ The web application flow is: include the GET `code` parameter, for example: ```plaintext - https://example.com/oauth/redirect?code=1234567890&state=YOUR_UNIQUE_STATE_HASH + https://example.com/oauth/redirect?code=1234567890&state=STATE ``` You should then use `code` to request an access token. -1. Once you have the authorization code you can request an `access_token` using the +1. After you have the authorization code you can request an `access_token` using the code. You can do that by using any HTTP client. In the following example, we are using Ruby's `rest-client`: @@ -101,7 +175,8 @@ The web application flow is: "access_token": "de6780bc506a0446309bd9362820ba8aed28aa506c71eedbe1c5c4f9dd350e54", "token_type": "bearer", "expires_in": 7200, - "refresh_token": "8257e65c97202ed1726cf9571600918f3bffb2544b26e00a61df9897668c33a1" + "refresh_token": "8257e65c97202ed1726cf9571600918f3bffb2544b26e00a61df9897668c33a1", + "created_at": 1607635748 } ``` @@ -114,19 +189,20 @@ You can now make requests to the API with the access token returned. ### Implicit grant flow NOTE: -Check the [RFC spec](https://tools.ietf.org/html/rfc6749#section-4.2) for a -detailed flow description. +For a detailed flow diagram, see the [RFC specification](https://tools.ietf.org/html/rfc6749#section-4.2). WARNING: -Avoid using this flow for applications that store data outside of the GitLab -instance. If you do, make sure to verify `application id` associated with the -access token before granting access to the data -(see [`/oauth/token/info`](#retrieving-the-token-information)). - -Unlike the web flow, the client receives an `access token` immediately as a -result of the authorization request. The flow does not use the client secret -or the authorization code because all of the application code and storage is -easily accessible, therefore secrets can leak easily. +The Implicit grant flow is inherently insecure. The IETF plans to remove it in +[OAuth 2.1](https://oauth.net/2.1/). + +We recommend that you use [Authorization code with PKCE](#authorization-code-with-proof-key-for-code-exchange-pkce) instead. If you choose to use Implicit flow, be sure to verify the +`application id` (or `client_id`) associated with the access token before granting +access to the data, as described in [Retrieving the token information](#retrieving-the-token-information)). + +Unlike the authorization code flow, the client receives an `access token` +immediately as a result of the authorization request. The flow does not use +the client secret or the authorization code because all of the application code +and storage is easily accessible on client browsers and mobile devices. To request the access token, you should redirect the user to the `/oauth/authorize` endpoint using `token` response type: diff --git a/doc/api/openapi/openapi.yaml b/doc/api/openapi/openapi.yaml index 8c46804d86f..1a80daf304c 100644 --- a/doc/api/openapi/openapi.yaml +++ b/doc/api/openapi/openapi.yaml @@ -1,8 +1,13 @@ -openapi: "3.0.0" +openapi: 3.0.0 +tags: + - name: version + description: Version + - name: access_requests + description: Access requests for projects and groups info: description: | An OpenAPI definition for the GitLab REST API. - Only one API resource/endpoint is currently included. + Few API resources or endpoints are currently included. The intent is to expand this to match the entire Markdown documentation of the API: <https://docs.gitlab.com/ee/api/>. Contributions are welcome. @@ -12,15 +17,46 @@ info: so each request is made using your account. Read more at <https://docs.gitlab.com/ee/development/documentation/restful_api_styleguide.html>. - version: "v4" - title: "GitLab API" - termsOfService: "https://about.gitlab.com/terms/" + version: v4 + title: GitLab API + termsOfService: 'https://about.gitlab.com/terms/' license: - name: "CC BY-SA 4.0" - url: "https://gitlab.com/gitlab-org/gitlab/-/blob/master/LICENSE" + name: CC BY-SA 4.0 + url: 'https://gitlab.com/gitlab-org/gitlab/-/blob/master/LICENSE' servers: - - url: "https://gitlab.com/api/" + - url: 'https://gitlab.com/api/' +security: + - ApiKeyAuth: [] + +components: + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: Private-Token paths: + # VERSION /v4/version: - $ref: "v4/version.yaml" + $ref: 'v4/version.yaml' + + # ACCESS REQUESTS (PROJECTS) + /v4/projects/{id}/access_requests: + $ref: 'v4/access_requests.yaml#/accessRequestsProjects' + + /v4/projects/{id}/access_requests/{user_id}/approve: + $ref: 'v4/access_requests.yaml#/accessRequestsProjectsApprove' + + /v4/projects/{id}/access_requests/{user_id}: + $ref: 'v4/access_requests.yaml#/accessRequestsProjectsDeny' + + # ACCESS REQUESTS (GROUPS) + /v4/groups/{id}/access_requests: + $ref: 'v4/access_requests.yaml#/accessRequestsGroups' + + /v4/groups/{id}/access_requests/{user_id}/approve: + $ref: 'v4/access_requests.yaml#/accessRequestsGroupsApprove' + + /v4/groupss/{id}/access_requests/{user_id}: + $ref: 'v4/access_requests.yaml#/accessRequestsGroupsDeny' + diff --git a/doc/api/openapi/v4/access_requests.yaml b/doc/api/openapi/v4/access_requests.yaml new file mode 100644 index 00000000000..157a0973e1e --- /dev/null +++ b/doc/api/openapi/v4/access_requests.yaml @@ -0,0 +1,381 @@ +# Markdown documentation: https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/api/access_requests.md + +#/v4/projects/{id}/access_requests +accessRequestsProjects: + get: + description: Lists access requests for a project + summary: List access requests for a project + operationId: accessRequestsProjects_get + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the project owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + responses: + '401': + description: Unauthorized operation + '200': + description: Successful operation + content: + application/json: + schema: + title: ProjectAccessResponse + type: object + properties: + id: + type: integer + usename: + type: string + name: + type: string + state: + type: string + created_at: + type: string + requested_at: + type: string + example: + - "id": 1 + "username": "raymond_smith" + "name": "Raymond Smith" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "requested_at": "2012-10-22T14:13:35Z" + - "id": 2 + "username": "john_doe" + "name": "John Doe" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "requested_at": "2012-10-22T14:13:35Z" + post: + description: Requests access for the authenticated user to a project + summary: Requests access for the authenticated user to a project + operationId: accessRequestsProjects_post + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the project owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + responses: + '401': + description: Unauthorized operation + '200': + description: Successful operation + content: + application/json: + schema: + title: ProjectAccessRequest + type: object + properties: + id: + type: integer + usename: + type: string + name: + type: string + state: + type: string + created_at: + type: string + requested_at: + type: string + example: + "id": 1 + "username": "raymond_smith" + "name": "Raymond Smith" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "requested_at": "2012-10-22T14:13:35Z" + +#/v4/projects/{id}/access_requests/{user_id}/approve +accessRequestsProjectsApprove: + put: + description: Approves access for the authenticated user to a project + summary: Approves access for the authenticated user to a project + operationId: accessRequestsProjectsApprove_put + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the project owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + - name: user_id + in: path + description: The userID of the access requester + required: true + schema: + type: integer + - name: access_level + in: query + description: A valid project access level. 0 = no access , 10 = guest, 20 = reporter, 30 = developer, 40 = Maintainer. Default is 30.' + required: false + schema: + enum: [0, 10, 20, 30, 40] + default: 30 + type: integer + responses: + '401': + description: Unauthorized operation + '200': + description: Successful operation + content: + application/json: + schema: + title: ProjectAccessApprove + type: object + properties: + id: + type: integer + usename: + type: string + name: + type: string + state: + type: string + created_at: + type: string + access_level: + type: integer + example: + "id": 1 + "username": "raymond_smith" + "name": "Raymond Smith" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "access_level": 20 + +#/v4/projects/{id}/access_requests/{user_id} +accessRequestsProjectsDeny: + delete: + description: Denies a project access request for the given user + summary: Denies a project access request for the given user + operationId: accessRequestProjectsDeny_delete + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the project owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + - name: user_id + in: path + description: The user ID of the access requester + required: true + schema: + type: integer + responses: # Does anything go here? Markdown doc does not list a response. + '401': + description: Unauthorized operation + '200': + description: Successful operation + +#/v4/groups/{id}/access_requests +accessRequestsGroups: + get: + description: List access requests for a group + summary: List access requests for a group + operationId: accessRequestsGroups_get + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the group owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + responses: + '401': + description: Unauthorized operation + '200': + description: Successful operation + content: + application/json: + schema: + title: GroupAccessResponse + type: object + properties: + id: + type: integer + usename: + type: string + name: + type: string + state: + type: string + created_at: + type: string + requested_at: + type: string + example: + - "id": 1 + "username": "raymond_smith" + "name": "Raymond Smith" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "requested_at": "2012-10-22T14:13:35Z" + - "id": 2 + "username": "john_doe" + "name": "John Doe" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "requested_at": "2012-10-22T14:13:35Z" + post: + description: Requests access for the authenticated user to a group + summary: Requests access for the authenticated user to a group + operationId: accessRequestsGroups_post + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the group owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + responses: + '401': + description: Unauthorized operation + '200': + description: Successful operation + content: + application/json: + schema: + title: GroupAccessRequest + type: object + properties: + id: + type: integer + usename: + type: string + name: + type: string + state: + type: string + created_at: + type: string + requested_at: + type: string + example: + "id": 1 + "username": "raymond_smith" + "name": "Raymond Smith" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "requested_at": "2012-10-22T14:13:35Z" + +#/v4/groups/{id}/access_requests/{user_id}/approve +accessRequestsGroupsApprove: + put: + description: Approves access for the authenticated user to a group + summary: Approves access for the authenticated user to a group + operationId: accessRequestsGroupsApprove_put + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the group owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + - name: user_id + in: path + description: The userID of the access requester + required: true + schema: + type: integer + - name: access_level + in: query + description: A valid group access level. 0 = no access , 10 = Guest, 20 = Reporter, 30 = Developer, 40 = Maintainer, 50 = Owner. Default is 30. + required: false + schema: + enum: [0, 10, 20, 30, 40, 50] + default: 30 + type: integer + responses: + '401': + description: Unauthorized operation + '200': + description: Successful operation + content: + application/json: + schema: + title: GroupAccessApprove + type: object + properties: + id: + type: integer + usename: + type: string + name: + type: string + state: + type: string + created_at: + type: string + access_level: + type: integer + example: + "id": 1 + "username": "raymond_smith" + "name": "Raymond Smith" + "state": "active" + "created_at": "2012-10-22T14:13:35Z" + "access_level": 20 + +#/v4/groups/{id}/access_requests/{user_id} +accessRequestsGroupsDeny: + delete: + description: Denies a group access request for the given user + summary: Denies a group access request for the given user + operationId: accessRequestsGroupsDeny_delete + tags: + - access_requests + parameters: + - name: id + in: path + description: The ID or URL-encoded path of the group owned by the authenticated user. + required: true + schema: + oneOf: + - type: integer + - type: string + - name: user_id + in: path + description: The userID of the access requester + required: true + schema: + type: integer + responses: # Does anything go here? Markdown doc does not list a response. + '401': + description: Unauthorized operation + '200': + description: Successful operation diff --git a/doc/api/packages.md b/doc/api/packages.md index a52487e35a3..a0d966fdd88 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Packages API -This is the API docs of [GitLab Packages](../administration/packages/index.md). +This is the API documentation of [GitLab Packages](../administration/packages/index.md). ## List packages @@ -28,6 +28,7 @@ GET /projects/:id/packages | `sort` | string | no | The direction of the order, either `asc` (default) for ascending order or `desc` for descending order. | | `package_type` | string | no | Filter the returned packages by type. One of `conan`, `maven`, `npm`, `pypi`, `composer`, `nuget`, or `golang`. (_Introduced in GitLab 12.9_) | `package_name` | string | no | Filter the project packages with a fuzzy search by name. (_Introduced in GitLab 12.9_) +| `include_versionless` | boolean | no | When set to true, versionless packages are included in the response. (_Introduced in GitLab 13.8_) ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages" @@ -67,7 +68,7 @@ Example response: ] ``` -By default, the `GET` request returns 20 results, since the API is [paginated](README.md#pagination). +By default, the `GET` request returns 20 results, because the API is [paginated](README.md#pagination). ### Within a group @@ -88,6 +89,7 @@ GET /groups/:id/packages | `sort` | string | no | The direction of the order, either `asc` (default) for ascending order or `desc` for descending order. | | `package_type` | string | no | Filter the returned packages by type. One of `conan`, `maven`, `npm`, `pypi`, `composer`, `nuget`, or `golang`. (_Introduced in GitLab 12.9_) | | `package_name` | string | no | Filter the project packages with a fuzzy search by name. (_[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30980) in GitLab 13.0_) +| `include_versionless` | boolean | no | When set to true, versionless packages are included in the response. (_Introduced in GitLab 13.8_) ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=true" @@ -157,7 +159,7 @@ Example response: ] ``` -By default, the `GET` request returns 20 results, since the API is [paginated](README.md#pagination). +By default, the `GET` request returns 20 results, because the API is [paginated](README.md#pagination). The `_links` object contains the following properties: @@ -314,7 +316,7 @@ Example response: ] ``` -By default, the `GET` request returns 20 results, since the API is [paginated](README.md#pagination). +By default, the `GET` request returns 20 results, because the API is [paginated](README.md#pagination). ## Delete a project package diff --git a/doc/api/personal_access_tokens.md b/doc/api/personal_access_tokens.md index b3e007308ba..ca0ac3522c3 100644 --- a/doc/api/personal_access_tokens.md +++ b/doc/api/personal_access_tokens.md @@ -70,7 +70,8 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a ## Revoke a personal access token -> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216004) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 13.3. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216004) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 13.3. +> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/270200) to [GitLab Core](https://about.gitlab.com/pricing/) in 13.6. Revoke a personal access token. @@ -96,4 +97,4 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git ## Create a personal access token (admin only) -See the [Users API documentation](users.md#create-a-personal-access-token-admin-only) for information on creating a personal access token. +See the [Users API documentation](users.md#create-a-personal-access-token) for information on creating a personal access token. diff --git a/doc/api/project_import_export.md b/doc/api/project_import_export.md index c5799a63c5c..0711cc8abd6 100644 --- a/doc/api/project_import_export.md +++ b/doc/api/project_import_export.md @@ -193,7 +193,7 @@ requests.post(url, headers=headers, data=data, files=files) ``` NOTE: -The maximum import file size can be set by the Administrator, default is 50MB. +The maximum import file size can be set by the Administrator, default is `0` (unlimited).. As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the [Application settings API](settings.md#change-application-settings) or the [Admin UI](../user/admin_area/settings/account_and_limit_settings.md). ## Import status diff --git a/doc/api/project_level_variables.md b/doc/api/project_level_variables.md index 8f6b9b83ca3..413d89950cd 100644 --- a/doc/api/project_level_variables.md +++ b/doc/api/project_level_variables.md @@ -80,9 +80,9 @@ POST /projects/:id/variables | `key` | string | yes | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed | | `value` | string | yes | The `value` of a variable | | `variable_type` | string | no | The type of a variable. Available types are: `env_var` (default) and `file` | -| `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 | +| `protected` | boolean | no | Whether the variable is protected. Default: `false` | +| `masked` | boolean | no | Whether the variable is masked. Default: `false` | +| `environment_scope` | string | no | The `environment_scope` of the variable. Default: `*` | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables" --form "key=NEW_VARIABLE" --form "value=new value" diff --git a/doc/api/project_repository_storage_moves.md b/doc/api/project_repository_storage_moves.md index 07743a48654..52c357ca32a 100644 --- a/doc/api/project_repository_storage_moves.md +++ b/doc/api/project_repository_storage_moves.md @@ -30,9 +30,10 @@ read-only. Please try again later.` message if they try to push new commits. This API requires you to [authenticate yourself](README.md#authentication) as an administrator. +Snippet repositories can be moved using the [Snippet repository storage moves API](snippet_repository_storage_moves.md). + ## Limitations -- The repositories associated with snippets [can't be moved with the API](https://gitlab.com/groups/gitlab-org/-/epics/3393). - Group-level wikis [can't be moved with the API](https://gitlab.com/gitlab-org/gitlab/-/issues/219003). ## Retrieve all project repository storage moves diff --git a/doc/api/projects.md b/doc/api/projects.md index b9f6448085d..f9a4b3ba55e 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -160,6 +160,7 @@ When the user is authenticated and `simple` is not set this returns something li "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -253,6 +254,7 @@ When the user is authenticated and `simple` is not set this returns something li "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -297,7 +299,7 @@ When the user is authenticated and `simple` is not set this returns something li NOTE: For users of GitLab [Silver, Premium, or higher](https://about.gitlab.com/pricing/), -the `marked_for_deletion_at` attribute has been deprecated, and will be removed +the `marked_for_deletion_at` attribute has been deprecated, and is removed in API v5 in favor of the `marked_for_deletion_on` attribute. Users of GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) @@ -418,6 +420,7 @@ GET /users/:user_id/projects "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -511,6 +514,7 @@ GET /users/:user_id/projects "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -640,6 +644,7 @@ Example response: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -726,6 +731,7 @@ Example response: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -881,6 +887,7 @@ GET /projects/:id "repository_storage": "default", "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "printing_merge_requests_link_enabled": true, @@ -1057,7 +1064,7 @@ POST /projects | `build_timeout` | integer | **{dotted-circle}** No | The maximum amount of time in minutes that a job is able run (in seconds). | | `builds_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, or `enabled`. | | `ci_config_path` | string | **{dotted-circle}** No | The path to CI configuration file. | -| `container_expiration_policy_attributes` | hash | **{dotted-circle}** 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). | +| `container_expiration_policy_attributes` | hash | **{dotted-circle}** No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). | | `container_registry_enabled` | boolean | **{dotted-circle}** No | Enable container registry for this project. | | `default_branch` | string | **{dotted-circle}** No | `master` by default. | | `description` | string | **{dotted-circle}** No | Short project description. | @@ -1206,7 +1213,7 @@ PUT /projects/:id | `ci_config_path` | string | **{dotted-circle}** No | The path to CI configuration file. | | `ci_default_git_depth` | integer | **{dotted-circle}** No | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#git-shallow-clone). | | `ci_forward_deployment_enabled` | boolean | **{dotted-circle}** No | When a new deployment job starts, [skip older deployment jobs](../ci/pipelines/settings.md#skip-outdated-deployment-jobs) that are still pending | -| `container_expiration_policy_attributes` | hash | **{dotted-circle}** 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). | +| `container_expiration_policy_attributes` | hash | **{dotted-circle}** No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). | | `container_registry_enabled` | boolean | **{dotted-circle}** No | Enable container registry for this project. | | `default_branch` | string | **{dotted-circle}** No | `master` by default. | | `description` | string | **{dotted-circle}** No | Short project description. | @@ -1234,6 +1241,7 @@ PUT /projects/:id | `packages_enabled` | boolean | **{dotted-circle}** No | Enable or disable packages repository feature. | | `pages_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, `enabled`, or `public`. | | `requirements_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, `enabled` or `public` | +| `restrict_user_defined_variables` | boolean | **{dotted-circle}** No | Allow only maintainers to pass user-defined variables when triggering a pipeline. For example when the pipeline is triggered in the UI, with the API, or by a trigger token. | | `path` | string | **{dotted-circle}** No | Custom repository name for the project. By default generated based on name. | | `public_builds` | boolean | **{dotted-circle}** No | If `true`, jobs can be viewed by non-project members. | | `remove_source_branch_after_merge` | boolean | **{dotted-circle}** No | Enable `Delete source branch` option by default for all new merge requests. | @@ -1356,6 +1364,7 @@ Example responses: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -1449,6 +1458,7 @@ Example response: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -1540,6 +1550,7 @@ Example response: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -1725,6 +1736,7 @@ Example response: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -1837,6 +1849,7 @@ Example response: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": false, + "restrict_user_defined_variables": false, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": false, "request_access_enabled": false, @@ -2184,7 +2197,7 @@ POST /projects/:id/housekeeping ## Push Rules **(STARTER)** -### Get project push rules +### Get project push rules **(STARTER)** Get the [push rules](../push_rules/push_rules.md#enabling-push-rules) of a project. @@ -2230,7 +2243,7 @@ parameters: } ``` -### Add project push rule +### Add project push rule **(STARTER)** Adds a push rule to a specified project. @@ -2238,22 +2251,22 @@ Adds a push rule to a specified project. POST /projects/:id/push_rule ``` -| Attribute | Type | Required | Description | -|-----------------------------------------------|----------------|------------------------|-------------| -| `author_email_regex` **(STARTER)** | string | **{dotted-circle}** No | All commit author emails must match this, for example `@my-company.com$`. | -| `branch_name_regex` **(STARTER)** | string | **{dotted-circle}** No | All branch names must match this, for example `(feature|hotfix)\/*`. | -| `commit_committer_check` **(PREMIUM)** | boolean | **{dotted-circle}** No | Users can only push commits to this repository that were committed with one of their own verified emails. | -| `commit_message_negative_regex` **(STARTER)** | string | **{dotted-circle}** No | No commit message is allowed to match this, for example `ssh\:\/\/`. | -| `commit_message_regex` **(STARTER)** | string | **{dotted-circle}** No | All commit messages must match this, for example `Fixed \d+\..*`. | -| `deny_delete_tag` **(STARTER)** | boolean | **{dotted-circle}** No | Deny deleting a tag. | -| `file_name_regex` **(STARTER)** | string | **{dotted-circle}** No | All committed filenames must **not** match this, for example `(jar|exe)$`. | -| `id` | integer/string | **{check-circle}** Yes | The ID of the project or NAMESPACE/PROJECT_NAME. | -| `max_file_size` **(STARTER)** | integer | **{dotted-circle}** No | Maximum file size (MB). | -| `member_check` **(STARTER)** | boolean | **{dotted-circle}** No | Restrict commits by author (email) to existing GitLab users. | -| `prevent_secrets` **(STARTER)** | boolean | **{dotted-circle}** No | GitLab will reject any files that are likely to contain secrets. | -| `reject_unsigned_commits` **(PREMIUM)** | boolean | **{dotted-circle}** No | Reject commit when it's not signed through GPG. | +| Attribute | Type | Required | Description | +|-----------------------------------------|----------------|------------------------|-------------| +| `author_email_regex` | string | **{dotted-circle}** No | All commit author emails must match this, for example `@my-company.com$`. | +| `branch_name_regex` | string | **{dotted-circle}** No | All branch names must match this, for example `(feature|hotfix)\/*`. | +| `commit_committer_check` **(PREMIUM)** | boolean | **{dotted-circle}** No | Users can only push commits to this repository that were committed with one of their own verified emails. | +| `commit_message_negative_regex` | string | **{dotted-circle}** No | No commit message is allowed to match this, for example `ssh\:\/\/`. | +| `commit_message_regex` | string | **{dotted-circle}** No | All commit messages must match this, for example `Fixed \d+\..*`. | +| `deny_delete_tag` | boolean | **{dotted-circle}** No | Deny deleting a tag. | +| `file_name_regex` | string | **{dotted-circle}** No | All committed filenames must **not** match this, for example `(jar|exe)$`. | +| `id` | integer/string | **{check-circle}** Yes | The ID of the project or NAMESPACE/PROJECT_NAME. | +| `max_file_size` | integer | **{dotted-circle}** No | Maximum file size (MB). | +| `member_check` | boolean | **{dotted-circle}** No | Restrict commits by author (email) to existing GitLab users. | +| `prevent_secrets` | boolean | **{dotted-circle}** No | GitLab rejects any files that are likely to contain secrets. | +| `reject_unsigned_commits` **(PREMIUM)** | boolean | **{dotted-circle}** No | Reject commit when it's not signed through GPG. | -### Edit project push rule +### Edit project push rule **(STARTER)** Edits a push rule for a specified project. @@ -2261,20 +2274,20 @@ Edits a push rule for a specified project. PUT /projects/:id/push_rule ``` -| Attribute | Type | Required | Description | -|-----------------------------------------------|----------------|------------------------|-------------| -| `author_email_regex` **(STARTER)** | string | **{dotted-circle}** No | All commit author emails must match this, for example `@my-company.com$`. | -| `branch_name_regex` **(STARTER)** | string | **{dotted-circle}** No | All branch names must match this, for example `(feature|hotfix)\/*`. | -| `commit_committer_check` **(PREMIUM)** | boolean | **{dotted-circle}** No | Users can only push commits to this repository that were committed with one of their own verified emails. | -| `commit_message_negative_regex` **(STARTER)** | string | **{dotted-circle}** No | No commit message is allowed to match this, for example `ssh\:\/\/`. | -| `commit_message_regex` **(STARTER)** | string | **{dotted-circle}** No | All commit messages must match this, for example `Fixed \d+\..*`. | -| `deny_delete_tag` **(STARTER)** | boolean | **{dotted-circle}** No | Deny deleting a tag. | -| `file_name_regex` **(STARTER)** | string | **{dotted-circle}** No | All committed filenames must **not** match this, for example `(jar|exe)$`. | -| `id` | integer/string | **{check-circle}** Yes | The ID of the project or NAMESPACE/PROJECT_NAME. | -| `max_file_size` **(STARTER)** | integer | **{dotted-circle}** No | Maximum file size (MB). | -| `member_check` **(STARTER)** | boolean | **{dotted-circle}** No | Restrict commits by author (email) to existing GitLab users. | -| `prevent_secrets` **(STARTER)** | boolean | **{dotted-circle}** No | GitLab will reject any files that are likely to contain secrets. | -| `reject_unsigned_commits` **(PREMIUM)** | boolean | **{dotted-circle}** No | Reject commits when they are not GPG signed. | +| Attribute | Type | Required | Description | +|-----------------------------------------|----------------|------------------------|-------------| +| `author_email_regex` | string | **{dotted-circle}** No | All commit author emails must match this, for example `@my-company.com$`. | +| `branch_name_regex` | string | **{dotted-circle}** No | All branch names must match this, for example `(feature|hotfix)\/*`. | +| `commit_committer_check` **(PREMIUM)** | boolean | **{dotted-circle}** No | Users can only push commits to this repository that were committed with one of their own verified emails. | +| `commit_message_negative_regex` | string | **{dotted-circle}** No | No commit message is allowed to match this, for example `ssh\:\/\/`. | +| `commit_message_regex` | string | **{dotted-circle}** No | All commit messages must match this, for example `Fixed \d+\..*`. | +| `deny_delete_tag` | boolean | **{dotted-circle}** No | Deny deleting a tag. | +| `file_name_regex` | string | **{dotted-circle}** No | All committed filenames must **not** match this, for example `(jar|exe)$`. | +| `id` | integer/string | **{check-circle}** Yes | The ID of the project or NAMESPACE/PROJECT_NAME. | +| `max_file_size` | integer | **{dotted-circle}** No | Maximum file size (MB). | +| `member_check` | boolean | **{dotted-circle}** No | Restrict commits by author (email) to existing GitLab users. | +| `prevent_secrets` | boolean | **{dotted-circle}** No | GitLab rejects any files that are likely to contain secrets. | +| `reject_unsigned_commits` **(PREMIUM)** | boolean | **{dotted-circle}** No | Reject commits when they are not GPG signed. | ### Delete project push rule @@ -2397,6 +2410,7 @@ Example response: "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "allow_merge_on_skipped_pipeline": null, + "restrict_user_defined_variables": false, "request_access_enabled": true, "only_allow_merge_if_all_discussions_are_resolved": false, "remove_source_branch_after_merge": true, diff --git a/doc/api/releases/index.md b/doc/api/releases/index.md index 0cb11a2b586..a58d6246a63 100644 --- a/doc/api/releases/index.md +++ b/doc/api/releases/index.md @@ -28,7 +28,7 @@ GET /projects/:id/releases Example request: ```shell -curl --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases" +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases" ``` Example response: @@ -233,7 +233,7 @@ GET /projects/:id/releases/:tag_name Example request: ```shell -curl --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" ``` Example response: @@ -360,21 +360,21 @@ POST /projects/:id/releases | -------------------| --------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](../README.md#namespaced-path-encoding). | | `name` | string | no | The release name. | -| `tag_name` | string | yes | The tag where the release will be created from. | +| `tag_name` | string | yes | The tag where the release is created from. | | `description` | string | no | The description of the release. You can use [Markdown](../../user/markdown.md). | -| `ref` | string | yes, if `tag_name` doesn't exist | If a tag specified in `tag_name` doesn't exist, the release will be created from `ref` and tagged with `tag_name`. It can be a commit SHA, another tag name, or a branch name. | +| `ref` | string | yes, if `tag_name` doesn't exist | If a tag specified in `tag_name` doesn't exist, the release is created from `ref` and tagged with `tag_name`. It can be a commit SHA, another tag name, or a branch name. | | `milestones` | array of string | no | The title of each milestone the release is associated with. [GitLab Premium](https://about.gitlab.com/pricing/) customers can specify group milestones. | | `assets:links` | array of hash | no | An array of assets links. | | `assets:links:name`| string | required by: `assets:links` | The name of the link. Link names must be unique within the release. | | `assets:links:url` | string | required by: `assets:links` | The URL of the link. Link URLs must be unique within the release. | | `assets:links:filepath` | string | no | Optional path for a [Direct Asset link](../../user/project/releases/index.md#permanent-links-to-release-assets). | `assets:links:link_type` | string | no | The type of the link: `other`, `runbook`, `image`, `package`. Defaults to `other`. -| `released_at` | datetime | no | The date when the release will be/was ready. Defaults to the current time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | +| `released_at` | datetime | no | The date when the release is/was ready. Defaults to the current time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | Example request: ```shell -curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" \ +curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: <your_access_token>" \ --data '{ "name": "New release", "tag_name": "v0.3", "description": "Super nice release", "milestones": ["v1.0", "v1.0-rc"], "assets": { "links": [{ "name": "hoge", "url": "https://google.com", "filepath": "/binaries/linux-amd64", "link_type":"other" }] } }' \ --request POST "https://gitlab.example.com/api/v4/projects/24/releases" ``` @@ -493,7 +493,7 @@ Example response: Group milestones associated with the project may be specified in the `milestones` array for [Create a release](#create-a-release) and [Update a release](#update-a-release) API calls. Only milestones associated with the project's group may be specified, and -adding milestones for ancestor groups will raise an error. +adding milestones for ancestor groups raises an error. ## Collect release evidence **(PREMIUM ONLY)** @@ -513,7 +513,7 @@ POST /projects/:id/releases/:tag_name/evidence Example request: ```shell -curl --request POST --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/evidence" +curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/evidence" ``` Example response: @@ -537,12 +537,12 @@ PUT /projects/:id/releases/:tag_name | `name` | string | no | The release name. | | `description` | string | no | The description of the release. You can use [Markdown](../../user/markdown.md). | | `milestones` | array of string | no | The title of each milestone to associate with the release. [GitLab Premium](https://about.gitlab.com/pricing/) customers can specify group milestones. To remove all milestones from the release, specify `[]`. | -| `released_at` | datetime | no | The date when the release will be/was ready. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | +| `released_at` | datetime | no | The date when the release is/was ready. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | Example request: ```shell -curl --header 'Content-Type: application/json' --request PUT --data '{"name": "new name", "milestones": ["v1.2"]}' --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" +curl --header 'Content-Type: application/json' --request PUT --data '{"name": "new name", "milestones": ["v1.2"]}' --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" ``` Example response: @@ -631,7 +631,7 @@ Example response: ## Delete a Release -Delete a Release. Deleting a Release will not delete the associated tag. +Delete a Release. Deleting a Release doesn't delete the associated tag. ```plaintext DELETE /projects/:id/releases/:tag_name @@ -645,7 +645,7 @@ DELETE /projects/:id/releases/:tag_name Example request: ```shell -curl --request DELETE --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" +curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" ``` Example response: @@ -717,6 +717,6 @@ Example response: > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/38105) in GitLab 12.1. -A release with a `released_at` attribute set to a future date will be labeled an **Upcoming Release** in the UI: +A release with a `released_at` attribute set to a future date is labeled an **Upcoming Release** in the UI: ![Upcoming release](img/upcoming_release_v12_1.png) diff --git a/doc/api/releases/links.md b/doc/api/releases/links.md index 88ce3f6ccb4..911aa8bbbd0 100644 --- a/doc/api/releases/links.md +++ b/doc/api/releases/links.md @@ -27,7 +27,7 @@ GET /projects/:id/releases/:tag_name/assets/links Example request: ```shell -curl --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links" +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links" ``` Example response: @@ -68,7 +68,7 @@ GET /projects/:id/releases/:tag_name/assets/links/:link_id Example request: ```shell -curl --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1" +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1" ``` Example response: @@ -104,7 +104,7 @@ Example request: ```shell curl --request POST \ - --header "PRIVATE-TOKEN: tkhfG7HgG-LiZd3zfdDC" \ + --header "PRIVATE-TOKEN: <your_access_token>" \ --data name="hellodarwin-amd64" \ --data url="https://gitlab.example.com/mynamespace/hello/-/jobs/688/artifacts/raw/bin/hello-darwin-amd64" \ --data filepath="/bin/hellodarwin-amd64" \ @@ -148,7 +148,7 @@ You have to specify at least one of `name` or `url` Example request: ```shell -curl --request PUT --data name="new name" --data link_type="runbook" --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1" +curl --request PUT --data name="new name" --data link_type="runbook" --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1" ``` Example response: @@ -180,7 +180,7 @@ DELETE /projects/:id/releases/:tag_name/assets/links/:link_id Example request: ```shell -curl --request DELETE --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1" +curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1" ``` Example response: diff --git a/doc/api/scim.md b/doc/api/scim.md index a9622525478..6e67b6fbc2d 100644 --- a/doc/api/scim.md +++ b/doc/api/scim.md @@ -15,7 +15,7 @@ The SCIM API implements the [RFC7644 protocol](https://tools.ietf.org/html/rfc76 To use this API, [Group SSO](../user/group/saml_sso/index.md) must be enabled for the group. This API is only in use where [SCIM for Group SSO](../user/group/saml_sso/scim_setup.md) is enabled. It's a prerequisite to the creation of SCIM identities. -## Get a list of SAML users +## Get a list of SCIM provisioned users This endpoint is used as part of the SCIM syncing mechanism. It only returns a single user based on a unique ID which should match the `extern_uid` of the user. @@ -74,7 +74,7 @@ Example response: } ``` -## Get a single SAML user +## Get a single SCIM provisioned user ```plaintext GET /api/scim/v2/groups/:group_path/Users/:id @@ -115,7 +115,7 @@ Example response: } ``` -## Create a SAML user +## Create a SCIM provisioned user ```plaintext POST /api/scim/v2/groups/:group_path/Users/ @@ -161,7 +161,7 @@ Example response: Returns a `201` status code if successful. -## Update a single SAML user +## Update a single SCIM provisioned user Fields that can be updated are: @@ -193,7 +193,7 @@ curl --verbose --request PATCH "https://gitlab.example.com/api/scim/v2/groups/te Returns an empty response with a `204` status code if successful. -## Remove a single SAML user +## Remove a single SCIM provisioned user Removes the user's SSO identity and group membership. diff --git a/doc/api/search.md b/doc/api/search.md index bfa5eb576dc..584b2cbb837 100644 --- a/doc/api/search.md +++ b/doc/api/search.md @@ -998,7 +998,9 @@ Example response: ] ``` -### Scope: notes +### Scope: notes **(STARTER)** + +This scope is available only if [Elasticsearch](../integration/elasticsearch.md) is enabled. ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=notes&search=maxime" @@ -1030,7 +1032,9 @@ Example response: ] ``` -### Scope: wiki_blobs +### Scope: wiki_blobs **(STARTER)** + +This scope is available only if [Elasticsearch](../integration/elasticsearch.md) is enabled. Filters are available for this scope: @@ -1074,7 +1078,9 @@ Example response: NOTE: `filename` is deprecated in favor of `path`. Both return the full path of the file inside the repository, but in the future `filename` will be only the filename and not the full path. For details, see [issue 34521](https://gitlab.com/gitlab-org/gitlab/-/issues/34521). -### Scope: commits +### Scope: commits **(STARTER)** + +This scope is available only if [Elasticsearch](../integration/elasticsearch.md) is enabled. ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/6/search?scope=commits&search=bye" @@ -1105,7 +1111,9 @@ Example response: ] ``` -### Scope: blobs +### Scope: blobs **(STARTER)** + +This scope is available only if [Elasticsearch](../integration/elasticsearch.md) is enabled. Filters are available for this scope: diff --git a/doc/api/services.md b/doc/api/services.md index 68485d23557..d00ddb07a05 100644 --- a/doc/api/services.md +++ b/doc/api/services.md @@ -1,6 +1,6 @@ --- -stage: none -group: unassigned +stage: Create +group: Ecosystem 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/#assignments --- @@ -645,7 +645,7 @@ GET /projects/:id/services/github > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/20290) in GitLab 11.2. -Google GSuite team collaboration tool. +Google Workspace team collaboration tool. ### Create/Edit Hangouts Chat service diff --git a/doc/api/settings.md b/doc/api/settings.md index 5680687e87e..264021b3a2d 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -83,7 +83,8 @@ Example response: "raw_blob_request_limit": 300, "wiki_page_max_content_bytes": 52428800, "require_admin_approval_after_user_signup": false, - "personal_access_token_prefix": "GL-" + "personal_access_token_prefix": "GL-", + "rate_limiting_response_text": null } ``` @@ -176,7 +177,8 @@ Example response: "raw_blob_request_limit": 300, "wiki_page_max_content_bytes": 52428800, "require_admin_approval_after_user_signup": false, - "personal_access_token_prefix": "GL-" + "personal_access_token_prefix": "GL-", + "rate_limiting_response_text": null } ``` @@ -298,13 +300,14 @@ listed in the descriptions of the relevant settings. | `housekeeping_incremental_repack_period` | integer | required by: `housekeeping_enabled` | Number of Git pushes after which an incremental `git repack` is run. | | `html_emails_enabled` | boolean | no | Enable HTML emails. | | `import_sources` | array of strings | no | Sources to allow project import from, possible values: `github`, `bitbucket`, `bitbucket_server`, `gitlab`, `fogbugz`, `git`, `gitlab_project`, `gitea`, `manifest`, and `phabricator`. | +| `invisible_captcha_enabled` | boolean | no | Enable Invisible Captcha spam detection during signup. Disabled by default. | | `issues_create_limit` | integer | no | Max number of issue creation requests per minute per user. Disabled by default.| | `local_markdown_version` | integer | no | Increase this value when any cached Markdown should be invalidated. | | `maintenance_mode_message` | string | no | **(PREMIUM)** Message displayed when instance is in maintenance mode | | `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 | | `max_artifacts_size` | integer | no | Maximum artifacts size in MB | | `max_attachment_size` | integer | no | Limit attachment size in MB | -| `max_import_size` | integer | no | Maximum import size in MB. 0 for unlimited. Default = 50 | +| `max_import_size` | integer | no | Maximum import size in MB. 0 for unlimited. Default = 0 (unlimited) | | `max_pages_size` | integer | no | Maximum size of pages repositories in MB | | `max_personal_access_token_lifetime` | integer | no | **(ULTIMATE ONLY)** Maximum allowable lifetime for personal access tokens in days | | `metrics_method_call_threshold` | integer | no | A method call is only tracked when it takes longer than the given amount of milliseconds. | @@ -330,6 +333,7 @@ listed in the descriptions of the relevant settings. | `pseudonymizer_enabled` | boolean | no | **(PREMIUM)** When enabled, GitLab runs a background job that produces pseudonymized CSVs of the GitLab database to upload to your configured object storage directory. | `push_event_activities_limit` | integer | no | Number of changes (branches or tags) in a single push to determine whether individual push events or bulk push events are created. [Bulk push events are created](../user/admin_area/settings/push_event_activities_limit.md) if it surpasses that value. | | `push_event_hooks_limit` | integer | no | Number of changes (branches or tags) in a single push to determine whether webhooks and services fire or not. Webhooks and services aren't submitted if it surpasses that value. | +| `rate_limiting_response_text` | string | no | When rate limiting is enabled via the `throttle_*` settings, send this plain text response when a rate limit is exceeded. 'Retry later' is sent if this is blank. | | `raw_blob_request_limit` | integer | no | Max number of requests per minute for each raw path. Default: 300. To disable throttling set to 0.| | `recaptcha_enabled` | boolean | no | (**If enabled, requires:** `recaptcha_private_key` and `recaptcha_site_key`) Enable reCAPTCHA. | | `recaptcha_private_key` | string | required by: `recaptcha_enabled` | Private key for reCAPTCHA. | diff --git a/doc/api/snippet_repository_storage_moves.md b/doc/api/snippet_repository_storage_moves.md new file mode 100644 index 00000000000..f60b1dfb449 --- /dev/null +++ b/doc/api/snippet_repository_storage_moves.md @@ -0,0 +1,293 @@ +--- +stage: Create +group: Editor +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/#assignments +type: reference +--- + +# Snippet repository storage moves API **(CORE ONLY)** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49228) in GitLab 13.8. + +Snippet repositories can be moved between storages. This can be useful when +[migrating to Gitaly Cluster](../administration/gitaly/praefect.md#migrate-existing-repositories-to-gitaly-cluster), +for example. + +As snippet repository storage moves are processed, they transition through different states. Values +of `state` are: + +- `initial` +- `scheduled` +- `started` +- `finished` +- `failed` +- `replicated` +- `cleanup failed` + +To ensure data integrity, snippets are put in a temporary read-only state for the +duration of the move. During this time, users receive a `The repository is temporarily +read-only. Please try again later.` message if they try to push new commits. + +This API requires you to [authenticate yourself](README.md#authentication) as an administrator. + +Project repositories can be moved using the [Project repository storage moves API](project_repository_storage_moves.md). + +## Limitations + +- Group-level wikis [can't be moved with the API](https://gitlab.com/gitlab-org/gitlab/-/issues/219003). + +## Retrieve all snippet repository storage moves + +```plaintext +GET /snippet_repository_storage_moves +``` + +By default, `GET` requests return 20 results at a time because the API results +are [paginated](README.md#pagination). + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/snippet_repository_storage_moves" +``` + +Example response: + +```json +[ + { + "id": 1, + "created_at": "2020-05-07T04:27:17.234Z", + "state": "scheduled", + "source_storage_name": "default", + "destination_storage_name": "storage2", + "snippet": { + "id": 65, + "title": "Test Snippet", + "description": null, + "visibility": "internal", + "updated_at": "2020-12-01T11:15:50.385Z", + "created_at": "2020-12-01T11:15:50.385Z", + "project_id": null, + "web_url": "https://gitlab.example.com/-/snippets/65", + "raw_url": "https://gitlab.example.com/-/snippets/65/raw", + "ssh_url_to_repo": "ssh://user@gitlab.example.com/snippets/65.git", + "http_url_to_repo": "https://gitlab.example.com/snippets/65.git" + } + } +] +``` + +## Retrieve all repository storage moves for a snippet + +```plaintext +GET /snippets/:snippet_id/repository_storage_moves +``` + +By default, `GET` requests return 20 results at a time because the API results +are [paginated](README.md#pagination). + +Supported attributes: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `snippet_id` | integer | yes | ID of the snippet. | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/snippets/1/repository_storage_moves" +``` + +Example response: + +```json +[ + { + "id": 1, + "created_at": "2020-05-07T04:27:17.234Z", + "state": "scheduled", + "source_storage_name": "default", + "destination_storage_name": "storage2", + "snippet": { + "id": 65, + "title": "Test Snippet", + "description": null, + "visibility": "internal", + "updated_at": "2020-12-01T11:15:50.385Z", + "created_at": "2020-12-01T11:15:50.385Z", + "project_id": null, + "web_url": "https://gitlab.example.com/-/snippets/65", + "raw_url": "https://gitlab.example.com/-/snippets/65/raw", + "ssh_url_to_repo": "ssh://user@gitlab.example.com/snippets/65.git", + "http_url_to_repo": "https://gitlab.example.com/snippets/65.git" + } + } +] +``` + +## Get a single snippet repository storage move + +```plaintext +GET /snippet_repository_storage_moves/:repository_storage_id +``` + +Supported attributes: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `repository_storage_id` | integer | yes | ID of the snippet repository storage move. | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/snippet_repository_storage_moves/1" +``` + +Example response: + +```json +{ + "id": 1, + "created_at": "2020-05-07T04:27:17.234Z", + "state": "scheduled", + "source_storage_name": "default", + "destination_storage_name": "storage2", + "snippet": { + "id": 65, + "title": "Test Snippet", + "description": null, + "visibility": "internal", + "updated_at": "2020-12-01T11:15:50.385Z", + "created_at": "2020-12-01T11:15:50.385Z", + "project_id": null, + "web_url": "https://gitlab.example.com/-/snippets/65", + "raw_url": "https://gitlab.example.com/-/snippets/65/raw", + "ssh_url_to_repo": "ssh://user@gitlab.example.com/snippets/65.git", + "http_url_to_repo": "https://gitlab.example.com/snippets/65.git" + } +} +``` + +## Get a single repository storage move for a snippet + +```plaintext +GET /snippets/:snippet_id/repository_storage_moves/:repository_storage_id +``` + +Supported attributes: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `snippet_id` | integer | yes | ID of the snippet. | +| `repository_storage_id` | integer | yes | ID of the snippet repository storage move. | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/snippets/1/repository_storage_moves/1" +``` + +Example response: + +```json +{ + "id": 1, + "created_at": "2020-05-07T04:27:17.234Z", + "state": "scheduled", + "source_storage_name": "default", + "destination_storage_name": "storage2", + "snippet": { + "id": 65, + "title": "Test Snippet", + "description": null, + "visibility": "internal", + "updated_at": "2020-12-01T11:15:50.385Z", + "created_at": "2020-12-01T11:15:50.385Z", + "project_id": null, + "web_url": "https://gitlab.example.com/-/snippets/65", + "raw_url": "https://gitlab.example.com/-/snippets/65/raw", + "ssh_url_to_repo": "ssh://user@gitlab.example.com/snippets/65.git", + "http_url_to_repo": "https://gitlab.example.com/snippets/65.git" + } +} +``` + +## Schedule a repository storage move for a snippet + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49228) in GitLab 13.8. + +```plaintext +POST /snippets/:snippet_id/repository_storage_moves +``` + +Supported attributes: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `snippet_id` | integer | yes | ID of the snippet. | +| `destination_storage_name` | string | no | Name of the destination storage shard. In [GitLab 13.5 and later](https://gitlab.com/gitlab-org/gitaly/-/issues/3209), the storage is selected automatically if not provided. | + +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/snippets/1/repository_storage_moves" +``` + +Example response: + +```json +{ + "id": 1, + "created_at": "2020-05-07T04:27:17.234Z", + "state": "scheduled", + "source_storage_name": "default", + "destination_storage_name": "storage2", + "snippet": { + "id": 65, + "title": "Test Snippet", + "description": null, + "visibility": "internal", + "updated_at": "2020-12-01T11:15:50.385Z", + "created_at": "2020-12-01T11:15:50.385Z", + "project_id": null, + "web_url": "https://gitlab.example.com/-/snippets/65", + "raw_url": "https://gitlab.example.com/-/snippets/65/raw", + "ssh_url_to_repo": "ssh://user@gitlab.example.com/snippets/65.git", + "http_url_to_repo": "https://gitlab.example.com/snippets/65.git" + } +} +``` + +## Schedule repository storage moves for all snippets on a storage shard + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49228) in GitLab 13.8. + +Schedules repository storage moves for each snippet repository stored on the source storage shard. + +```plaintext +POST /snippet_repository_storage_moves +``` + +Supported attributes: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `source_storage_name` | string | yes | Name of the source storage shard. | +| `destination_storage_name` | string | no | Name of the destination storage shard. The storage is selected automatically if not provided. | + +Example request: + +```shell +curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" \ +--data '{"source_storage_name":"default"}' "https://gitlab.example.com/api/v4/snippet_repository_storage_moves" +``` + +Example response: + +```json +{ + "message": "202 Accepted" +} +``` diff --git a/doc/api/users.md b/doc/api/users.md index f73e1829024..ecfd8e26626 100644 --- a/doc/api/users.md +++ b/doc/api/users.md @@ -89,6 +89,7 @@ GET /users | `sort` | string | no | Return users sorted in `asc` or `desc` order. Default is `desc` | | `two_factor` | string | no | Filter users by Two-factor authentication. Filter values are `enabled` or `disabled`. By default it returns all users | | `without_projects` | boolean | no | Filter users without projects. Default is `false` | +| `admins` | boolean | no | Return only admin users. Default is `false` | ```json [ @@ -1480,19 +1481,14 @@ Parameters: | `user_id` | integer | yes | The ID of the user | | `impersonation_token_id` | integer | yes | The ID of the impersonation token | -## Create a personal access token (admin only) +## Create a personal access token **(CORE ONLY)** > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/17176) in GitLab 13.6. -> - It's [deployed behind a feature flag](../user/feature_flags.md), disabled by default. -> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-an-administrators-ability-to-use-the-api-to-create-personal-access-tokens). **(CORE)** +> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/267553) in GitLab 13.8. -WARNING: -This feature might not be available to you. Check the **version history** note above for details. - -> Requires admin permissions. -> Token values are returned once. Make sure you save it - you can't access it again. - -It creates a new personal access token. +Use this API to create a new personal access token. Token values are returned once so, +make sure you save it as you can't access it again. This API can only be used by +GitLab administrators. ```plaintext POST /users/:user_id/personal_access_tokens @@ -1632,22 +1628,3 @@ Example response: }, ] ``` - -## Enable or disable an administrator's ability to use the API to create personal access tokens **(CORE)** - -An administrator's ability to create personal access tokens through the API is -deployed behind a feature flag that is **disabled by default**. -[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md) -can enable it. - -To enable it: - -```ruby -Feature.enable(:pat_creation_api_for_admin) -``` - -To disable it: - -```ruby -Feature.disable(:pat_creation_api_for_admin) -``` |