diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 01:45:44 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 01:45:44 +0000 |
commit | 85dc423f7090da0a52c73eb66faf22ddb20efff9 (patch) | |
tree | 9160f299afd8c80c038f08e1545be119f5e3f1e1 /doc/api | |
parent | 15c2c8c66dbe422588e5411eee7e68f1fa440bb8 (diff) | |
download | gitlab-ce-85dc423f7090da0a52c73eb66faf22ddb20efff9.tar.gz |
Add latest changes from gitlab-org/gitlab@13-4-stable-ee
Diffstat (limited to 'doc/api')
54 files changed, 9898 insertions, 1424 deletions
diff --git a/doc/api/README.md b/doc/api/README.md index 82cce57f47b..53df4114a71 100644 --- a/doc/api/README.md +++ b/doc/api/README.md @@ -4,6 +4,8 @@ Automate GitLab via a simple and powerful API. The main GitLab API is a [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) API. Therefore, documentation in this section assumes knowledge of REST concepts. +There is also a partial [OpenAPI definition](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/api/openapi/openapi.yaml), which allows you to test the API directly from the GitLab user interface. Contributions are welcome. + ## Available API resources For a list of the available resources and their endpoints, see @@ -121,7 +123,7 @@ Read more about [GitLab as an OAuth2 provider](oauth2.md). ### Personal/project access tokens Access tokens can be used to authenticate with the API by passing it in either the `private_token` parameter -or the `Private-Token` header. +or the `PRIVATE-TOKEN` header. Example of using the personal/project access token in a parameter: @@ -132,7 +134,7 @@ curl "https://gitlab.example.com/api/v4/projects?private_token=<your_access_toke Example of using the personal/project access token in a header: ```shell -curl --header "Private-Token: <your_access_token>" "https://gitlab.example.com/api/v4/projects" +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects" ``` You can also use personal/project access tokens with OAuth-compliant headers: @@ -176,7 +178,7 @@ For more information, refer to the [users API](users.md#create-an-impersonation-token) docs. Impersonation tokens are used exactly like regular personal access tokens, and can be passed in either the -`private_token` parameter or the `Private-Token` header. +`private_token` parameter or the `PRIVATE-TOKEN` header. #### Disable impersonation @@ -264,7 +266,7 @@ GET /projects?private_token=<your_access_token>&sudo=username ``` ```shell -curl --header "Private-Token: <your_access_token>" --header "Sudo: username" "https://gitlab.example.com/api/v4/projects" +curl --header "PRIVATE-TOKEN: <your_access_token>" --header "Sudo: username" "https://gitlab.example.com/api/v4/projects" ``` Example of a valid API call and a request using cURL with sudo request, @@ -275,7 +277,7 @@ GET /projects?private_token=<your_access_token>&sudo=23 ``` ```shell -curl --header "Private-Token: <your_access_token>" --header "Sudo: 23" "https://gitlab.example.com/api/v4/projects" +curl --header "PRIVATE-TOKEN: <your_access_token>" --header "Sudo: 23" "https://gitlab.example.com/api/v4/projects" ``` ## Status codes @@ -340,16 +342,19 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab #### Pagination `Link` header -[`Link` headers](https://www.w3.org/wiki/LinkHeader) are sent back with each -response. They have `rel` set to `prev`/`next`/`first`/`last` and contain the relevant -URL. Please use these links instead of generating your own URLs. +[`Link` headers](https://www.w3.org/wiki/LinkHeader) are returned with each +response. They have `rel` set to `prev`/`next`/`first`/`last` and contain the +relevant URL. Be sure to use these links instead of generating your own URLs. + +NOTE: **Note:** +For GitLab.com users, [some pagination headers may not be returned](../user/gitlab_com/index.md#pagination-response-headers). In the cURL example below, we limit the output to 3 items per page (`per_page=3`) and we request the second page (`page=2`) of [comments](notes.md) of the issue -with ID `8` which belongs to the project with ID `8`: +with ID `8` which belongs to the project with ID `9`: ```shell -curl --head --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/8/issues/8/notes?per_page=3&page=2" +curl --head --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/issues/8/notes?per_page=3&page=2" ``` The response will then be: @@ -375,24 +380,19 @@ X-Total-Pages: 3 #### Other pagination headers -Additional pagination headers are also sent back. +GitLab also returns the following additional pagination headers: -| Header | Description | -| ------ | ----------- | -| `X-Total` | The total number of items | -| `X-Total-Pages` | The total number of pages | -| `X-Per-Page` | The number of items per page | +| Header | Description | +| --------------- | --------------------------------------------- | +| `X-Total` | The total number of items | +| `X-Total-Pages` | The total number of pages | +| `X-Per-Page` | The number of items per page | | `X-Page` | The index of the current page (starting at 1) | -| `X-Next-Page` | The index of the next page | -| `X-Prev-Page` | The index of the previous page | +| `X-Next-Page` | The index of the next page | +| `X-Prev-Page` | The index of the previous page | -CAUTION: **Caution:** -For performance reasons since -[GitLab 11.8](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/23931) -and **behind the `api_kaminari_count_with_limit` -[feature flag](../development/feature_flags/index.md)**, if the number of resources is -more than 10,000, the `X-Total` and `X-Total-Pages` headers as well as the -`rel="last"` `Link` are not present in the response headers. +NOTE: **Note:** +For GitLab.com users, [some pagination headers may not be returned](../user/gitlab_com/index.md#pagination-response-headers). ### Keyset-based pagination @@ -639,7 +639,7 @@ follows: ## Unknown route -When you try to access an API URL that does not exist you will receive 404 Not Found. +When you try to access an API URL that does not exist, you will receive 404 Not Found. ```http HTTP/1.1 404 Not Found diff --git a/doc/api/admin_sidekiq_queues.md b/doc/api/admin_sidekiq_queues.md index 5c841ae4076..4a2456d6f4a 100644 --- a/doc/api/admin_sidekiq_queues.md +++ b/doc/api/admin_sidekiq_queues.md @@ -1,4 +1,4 @@ -# Admin Sidekiq queues API +# Sidekiq queues administration API **(CORE ONLY)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25998) in GitLab 12.9 @@ -15,7 +15,7 @@ The response has three fields: delete further jobs (including those added after the first request was issued). -This API endpoint is only available to admin users. +This API endpoint is only available to administrators. ```plaintext DELETE /admin/sidekiq/queues/:queue_name diff --git a/doc/api/api_resources.md b/doc/api/api_resources.md index 886f2e990f0..898aa713331 100644 --- a/doc/api/api_resources.md +++ b/doc/api/api_resources.md @@ -44,6 +44,7 @@ The following API resources are available in the project context: | [Members](members.md) | `/projects/:id/members` (also available for groups) | | [Merge request approvals](merge_request_approvals.md) **(STARTER)** | `/projects/:id/approvals`, `/projects/:id/merge_requests/.../approvals` | | [Merge requests](merge_requests.md) | `/projects/:id/merge_requests` (also available for groups and standalone) | +| [Merge trains](merge_trains.md) | `/projects/:id/merge_trains` | | [Notes](notes.md) (comments) | `/projects/:id/issues/.../notes`, `/projects/:id/snippets/.../notes`, `/projects/:id/merge_requests/.../notes` (also available for groups) | | [Notification settings](notification_settings.md) | `/projects/:id/notification_settings` (also available for groups and standalone) | | [Packages](packages.md) | `/projects/:id/packages` | @@ -115,7 +116,7 @@ The following API resources are available outside of project and group contexts | Resource | Available endpoints | |:---------------------------------------------------|:------------------------------------------------------------------------| | [Instance-level CI/CD variables](instance_level_ci_variables.md) | `/admin/ci/variables` | -| [Admin Sidekiq queues](admin_sidekiq_queues.md) | `/admin/sidekiq/queues/:queue_name` | +| [Sidekiq queues administration](admin_sidekiq_queues.md) **(CORE ONLY)** | `/admin/sidekiq/queues/:queue_name` | | [Appearance](appearance.md) **(CORE ONLY)** | `/application/appearance` | | [Applications](applications.md) | `/applications` | | [Audit Events](audit_events.md) **(PREMIUM ONLY)** | `/audit_events` | @@ -147,10 +148,10 @@ The following API resources are available outside of project and group contexts | [Search](search.md) | `/search` (also available for groups and projects) | | [Settings](settings.md) **(CORE ONLY)** | `/application/settings` | | [Statistics](statistics.md) | `/application/statistics` | -| [Sidekiq metrics](sidekiq_metrics.md) | `/sidekiq` | +| [Sidekiq metrics](sidekiq_metrics.md) **(CORE ONLY)** | `/sidekiq` | | [Suggestions](suggestions.md) | `/suggestions` | | [System hooks](system_hooks.md) | `/hooks` | -| [Todos](todos.md) | `/todos` | +| [To-dos](todos.md) | `/todos` | | [Users](users.md) | `/users` | | [Validate `.gitlab-ci.yml` file](lint.md) | `/lint` | | [Version](version.md) | `/version` | diff --git a/doc/api/audit_events.md b/doc/api/audit_events.md index ce2a9afd53c..5f31919c52b 100644 --- a/doc/api/audit_events.md +++ b/doc/api/audit_events.md @@ -2,7 +2,7 @@ ## Instance Audit Events **(PREMIUM ONLY)** -The Audit Events API allows you to retrieve [instance audit events](../administration/audit_events.md#instance-events-premium-only). +The Audit Events API allows you to retrieve [instance audit events](../administration/audit_events.md#instance-events). To retrieve audit events using the API, you must [authenticate yourself](README.md#authentication) as an Administrator. @@ -124,7 +124,7 @@ Example response: > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/34078) in GitLab 12.5. -The Group Audit Events API allows you to retrieve [group audit events](../administration/audit_events.md#group-events-starter). +The Group Audit Events API allows you to retrieve [group audit events](../administration/audit_events.md#group-events). To retrieve group audit events using the API, you must [authenticate yourself](README.md#authentication) as an Administrator or an owner of the group. @@ -230,7 +230,7 @@ Example response: > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/219238) in GitLab 13.1. -The Project Audit Events API allows you to retrieve [project audit events](../administration/audit_events.md#project-events-starter). +The Project Audit Events API allows you to retrieve [project audit events](../administration/audit_events.md#project-events). To retrieve project audit events using the API, you must [authenticate yourself](README.md#authentication) as a Maintainer or an Owner of the project. diff --git a/doc/api/boards.md b/doc/api/boards.md index a370205aa01..12ebbcf916a 100644 --- a/doc/api/boards.md +++ b/doc/api/boards.md @@ -455,7 +455,7 @@ POST /projects/:id/boards/:board_id/lists NOTE: **Note:** Label, assignee and milestone arguments are mutually exclusive, that is, only one of them are accepted in a request. -Check the [Issue Board docs](../user/project/issue_board.md#summary-of-features-per-tier) +Check the [Issue Board docs](../user/project/issue_board.md) for more information regarding the required license for each list type. ```shell diff --git a/doc/api/deployments.md b/doc/api/deployments.md index 426b3e10ecf..b0de972160b 100644 --- a/doc/api/deployments.md +++ b/doc/api/deployments.md @@ -15,15 +15,15 @@ Get a list of deployments in a project. GET /projects/:id/deployments ``` -| 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 | -| `order_by`| string | no | Return deployments ordered by `id` or `iid` or `created_at` or `updated_at` or `ref` fields. Default is `id` | -| `sort` | string | no | Return deployments sorted in `asc` or `desc` order. Default is `asc` | -| `updated_after` | datetime | no | Return deployments updated after the specified date | -| `updated_before` | datetime | no | Return deployments updated before the specified date | -| `environment` | string | no | The name of the environment to filter deployments by | -| `status` | string | no | The status to filter deployments by | +| 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 | +| `order_by` | string | no | Return deployments ordered by `id` or `iid` or `created_at` or `updated_at` or `ref` fields. Default is `id` | +| `sort` | string | no | Return deployments sorted in `asc` or `desc` order. Default is `asc` | +| `updated_after` | datetime | no | Return deployments updated after the specified date | +| `updated_before` | datetime | no | Return deployments updated before the specified date | +| `environment` | string | no | The [name of the environment](../ci/environments/index.md#defining-environments) to filter deployments by | +| `status` | string | no | The status to filter deployments by | The status attribute can be one of the following values: @@ -278,14 +278,14 @@ Example of response POST /projects/:id/deployments ``` -| 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 | -| `environment` | string | yes | The name of the environment to create the deployment for | -| `sha` | string | yes | The SHA of the commit that is deployed | -| `ref` | string | yes | The name of the branch or tag that is deployed | -| `tag` | boolean | yes | A boolean that indicates if the deployed ref is a tag (true) or not (false) | -| `status` | string | yes | The status of the deployment | +| 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 | +| `environment` | string | yes | The [name of the environment](../ci/environments/index.md#defining-environments) to create the deployment for | +| `sha` | string | yes | The SHA of the commit that is deployed | +| `ref` | string | yes | The name of the branch or tag that is deployed | +| `tag` | boolean | yes | A boolean that indicates if the deployed ref is a tag (true) or not (false) | +| `status` | string | yes | The status of the deployment | The status can be one of the following values: diff --git a/doc/api/epic_links.md b/doc/api/epic_links.md index a2477123ce4..19c8dc78aed 100644 --- a/doc/api/epic_links.md +++ b/doc/api/epic_links.md @@ -2,7 +2,7 @@ > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9188) in GitLab 11.8. -Manages parent-child [epic relationships](../user/group/epics/index.md#multi-level-child-epics-ultimate). +Manages parent-child [epic relationships](../user/group/epics/index.md#multi-level-child-epics). Every API call to `epic_links` must be authenticated. @@ -131,6 +131,7 @@ POST /groups/:id/epics/:epic_iid/epics | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user | | `epic_iid` | integer | yes | The internal ID of the (future parent) epic. | | `title` | string | yes | The title of a newly created epic. | +| `confidential` | boolean | no | Whether the epic should be confidential. Will be ignored if `confidential_epics` feature flag is disabled. Defaults to the confidentiality state of the parent epic. | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/epics?title=Newpic" diff --git a/doc/api/epics.md b/doc/api/epics.md index 45bf406dec2..91ea92c8589 100644 --- a/doc/api/epics.md +++ b/doc/api/epics.md @@ -266,7 +266,7 @@ POST /groups/:id/epics | `title` | string | yes | The title of the epic | | `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. Will be ignored if `confidential_epics` feature flag is disabled. | +| `confidential` | boolean | no | Whether the epic should be confidential | | `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) | @@ -347,7 +347,7 @@ PUT /groups/:id/epics/:epic_iid | `epic_iid` | integer/string | yes | The internal ID of the epic | | `title` | string | no | The title of an epic | | `description` | string | no | The description of an epic. Limited to 1,048,576 characters. | -| `confidential` | boolean | no | Whether the epic should be confidential. Will be ignored if `confidential_epics` feature flag is disabled. | +| `confidential` | boolean | no | Whether the epic should be confidential | | `labels` | string | no | The comma separated list of labels | | `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) | @@ -422,10 +422,10 @@ DELETE /groups/:id/epics/:epic_iid curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5" ``` -## Create a todo +## Create a to-do -Manually creates a todo for the current user on an epic. If -there already exists a todo for the user on that epic, status code `304` is +Manually creates a to-do for the current user on an epic. If +there already exists a to-do for the user on that epic, status code `304` is returned. ```plaintext diff --git a/doc/api/feature_flags.md b/doc/api/feature_flags.md index 479f82914a9..1088154b599 100644 --- a/doc/api/feature_flags.md +++ b/doc/api/feature_flags.md @@ -212,11 +212,11 @@ PUT /projects/:id/feature_flags/:feature_flag_name | `active` | boolean | no | The active state of the flag. [Supported](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38350) in GitLab 13.3 and later. | | `name` | string | no | The new name of the feature flag. [Supported](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38350) in GitLab 13.3 and later. | | `strategies` | JSON | no | The feature flag [strategies](../operations/feature_flags.md#feature-flag-strategies). | -| `strategies:id` | JSON | no | The feature flag strategy id. | +| `strategies:id` | JSON | no | The feature flag strategy ID. | | `strategies:name` | JSON | no | The strategy name. | | `strategies:parameters` | JSON | no | The strategy parameters. | | `strategies:scopes` | JSON | no | The scopes for the strategy. | -| `strategies:scopes:id` | JSON | no | The scopes id. | +| `strategies:scopes:id` | JSON | no | The scopes ID. | | `strategies:scopes:environment_scope` | string | no | The environment spec for the scope. | ```shell diff --git a/doc/api/freeze_periods.md b/doc/api/freeze_periods.md index e6a5e69497f..7a2f88e9f00 100644 --- a/doc/api/freeze_periods.md +++ b/doc/api/freeze_periods.md @@ -31,7 +31,7 @@ GET /projects/:id/freeze_periods Example request: ```shell -curl --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" "https://gitlab.example.com/api/v4/projects/19/freeze_periods" +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/19/freeze_periods" ``` Example response: @@ -65,7 +65,7 @@ GET /projects/:id/freeze_periods/:freeze_period_id Example request: ```shell -curl --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1" +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1" ``` Example response: @@ -99,7 +99,7 @@ POST /projects/:id/freeze_periods Example request: ```shell -curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" \ +curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: <your_access_token>" \ --data '{ "freeze_start": "0 23 * * 5", "freeze_end": "0 7 * * 1", "cron_timezone": "UTC" }' \ --request POST https://gitlab.example.com/api/v4/projects/19/freeze_periods ``` @@ -136,7 +136,7 @@ PUT /projects/:id/freeze_periods/:tag_name Example request: ```shell -curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" \ +curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: <your_access_token>" \ --data '{ "freeze_end": "0 8 * * 1" }' \ --request PUT https://gitlab.example.com/api/v4/projects/19/freeze_periods/1 ``` @@ -170,6 +170,6 @@ DELETE /projects/:id/freeze_periods/:freeze_period_id Example request: ```shell -curl --request DELETE --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1" +curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1" ``` diff --git a/doc/api/geo_nodes.md b/doc/api/geo_nodes.md index ba970d2cdb1..8d2052f7373 100644 --- a/doc/api/geo_nodes.md +++ b/doc/api/geo_nodes.md @@ -371,7 +371,13 @@ Example response: "package_files_checksum_failed_count": 0, "package_files_registry_count": 10, "package_files_synced_count": 6, - "package_files_failed_count": 3 + "package_files_failed_count": 3, + "snippet_repositories_count": 10, + "snippet_repositories_checksummed_count": 10, + "snippet_repositories_checksum_failed_count": 0, + "snippet_repositories_registry_count": 10, + "snippet_repositories_synced_count": 6, + "snippet_repositories_failed_count": 3 }, { "geo_node_id": 2, @@ -442,12 +448,30 @@ Example response: "last_successful_status_check_timestamp": 1510125024, "version": "10.3.0", "revision": "33d33a096a", + "merge_request_diffs_count": 12, + "merge_request_diffs_checksummed_count": 8, + "merge_request_diffs_checksum_failed_count": 0, + "merge_request_diffs_registry_count": 12, + "merge_request_diffs_synced_count": 9, + "merge_request_diffs_failed_count": 3, "package_files_count": 10, "package_files_checksummed_count": 10, "package_files_checksum_failed_count": 0, "package_files_registry_count": 10, "package_files_synced_count": 6, - "package_files_failed_count": 3 + "package_files_failed_count": 3, + "terraform_states_count": 10, + "terraform_states_checksummed_count": 10, + "terraform_states_checksum_failed_count": 0, + "terraform_states_registry_count": 10, + "terraform_states_synced_count": 6, + "terraform_states_failed_count": 3 + "snippet_repositories_count": 10, + "snippet_repositories_checksummed_count": 10, + "snippet_repositories_checksum_failed_count": 0, + "snippet_repositories_registry_count": 10, + "snippet_repositories_synced_count": 6, + "snippet_repositories_failed_count": 3 } ] ``` diff --git a/doc/api/graphql/getting_started.md b/doc/api/graphql/getting_started.md index 12665f68f25..c2220403461 100644 --- a/doc/api/graphql/getting_started.md +++ b/doc/api/graphql/getting_started.md @@ -192,7 +192,7 @@ When you see the result `id` of the note you created - take a note of it. Now le ```graphql mutation { - updateNote(input: { id: "gid://gitlab/Note/<note id>", + updateNote(input: { id: "gid://gitlab/Note/<note ID>", body: "*SIPS TEA*" }) { note { @@ -210,7 +210,7 @@ Let's delete the comment, since our tea is all gone. ```graphql mutation { - destroyNote(input: { id: "gid://gitlab/Note/<note id>" }) { + destroyNote(input: { id: "gid://gitlab/Note/<note ID>" }) { note { id body diff --git a/doc/api/graphql/index.md b/doc/api/graphql/index.md index c513dea239a..bda24a7e90a 100644 --- a/doc/api/graphql/index.md +++ b/doc/api/graphql/index.md @@ -59,6 +59,23 @@ There are no plans to deprecate the REST API. To reduce the technical burden of supporting two APIs in parallel, they should share implementations as much as possible. +### Deprecation process + +Fields marked for removal from the GitLab GraphQL API are first **deprecated** but still available +for at least six releases, and then **removed entirely**. +Removals occur at X.0 and X.6 releases. + +For example, a field can be marked as deprecated (but still usable) in %12.7, but can be used until its removal in %13.6. +When marked as deprecated, an alternative should be provided if there is one. +That gives consumers of the GraphQL API a minimum of six months to update their GraphQL queries. + +The process is as follows: + +1. The field is listed as deprecated in [GraphQL API Reference](reference/index.md). +1. Removals are announced at least one release prior in the Deprecation Warnings section of the + release post (at or prior to X.11 and X.5 releases). +1. Fields meeting criteria are removed in X.0 or X.6. + ## Available queries The GraphQL API includes the following queries at the root level: @@ -96,3 +113,11 @@ Machine-readable versions are also available: - [JSON format](reference/gitlab_schema.json) - [IDL format](reference/gitlab_schema.graphql) + +## Generate updates for documentation + +If you've changed the GraphQL schema, you should set up an MR to gain approval of your changes. +To generate the required documentation and schema, follow the instructions given in the +[Rake tasks for developers](../../development/rake_tasks.md#update-graphql-documentation-and-schema-definitions) page. + +Be sure to run these commands using the [GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit/). diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql index 1d920894eec..01d5044057a 100644 --- a/doc/api/graphql/reference/gitlab_schema.graphql +++ b/doc/api/graphql/reference/gitlab_schema.graphql @@ -731,7 +731,7 @@ type AlertTodoCreatePayload { } """ -An emoji awarded by a user. +An emoji awarded by a user """ type AwardEmoji { """ @@ -1029,7 +1029,7 @@ type Board { """ Filters applied when selecting issues on the board """ - issueFilters: BoardEpicIssueInput + issueFilters: BoardIssueInput """ Returns the last _n_ elements from the list. @@ -1133,7 +1133,12 @@ type BoardEdge { node: Board } -input BoardEpicIssueInput { +""" +Identifier of Board +""" +scalar BoardID + +input BoardIssueInput { """ Filter by assignee username """ @@ -1145,9 +1150,14 @@ input BoardEpicIssueInput { authorUsername: String """ - Filter by epic ID + Filter by epic ID. Incompatible with epicWildcardId + """ + epicId: ID + + """ + Filter by epic ID wildcard. Incompatible with epicId """ - epicId: String + epicWildcardId: EpicWildcardId """ Filter by label name @@ -1167,7 +1177,7 @@ input BoardEpicIssueInput { """ List of negated params. Warning: this argument is experimental and a subject to change in future """ - not: NegatedBoardEpicIssueInput + not: NegatedBoardIssueInput """ Filter by release tag @@ -1175,17 +1185,17 @@ input BoardEpicIssueInput { releaseTag: String """ + Search query for issue title or description + """ + search: String + + """ Filter by weight """ weight: String } """ -Identifier of Board -""" -scalar BoardID - -""" Represents a list for an issue board """ type BoardList { @@ -1219,6 +1229,11 @@ type BoardList { before: String """ + Filters applied when selecting issues in the board list + """ + filters: BoardIssueInput + + """ Returns the first _n_ elements from the list. """ first: Int @@ -1305,12 +1320,17 @@ Autogenerated input type of BoardListCreate """ input BoardListCreateInput { """ + Global ID of an existing user + """ + assigneeId: UserID + + """ Create the backlog list """ backlog: Boolean """ - The Global ID of the issue board to mutate + Global ID of the issue board to mutate """ boardId: BoardID! @@ -1320,9 +1340,14 @@ input BoardListCreateInput { clientMutationId: String """ - ID of an existing label + Global ID of an existing label """ labelId: LabelID + + """ + Global ID of an existing milestone + """ + milestoneId: MilestoneID } """ @@ -1422,6 +1447,36 @@ type Branch { name: String! } +""" +Represents the total number of issues and their weights for a particular day +""" +type BurnupChartDailyTotals { + """ + Number of closed issues as of this day + """ + completedCount: Int! + + """ + Total weight of closed issues as of this day + """ + completedWeight: Int! + + """ + Date for burnup totals + """ + date: ISO8601Date! + + """ + Number of issues as of this day + """ + scopeCount: Int! + + """ + Total weight of issues as of this day + """ + scopeWeight: Int! +} + type CiGroup { """ Jobs in group @@ -1561,6 +1616,11 @@ type CiJobEdge { node: CiJob } +""" +Identifier of Ci::Pipeline +""" +scalar CiPipelineID + type CiStage { """ Group of jobs for the stage @@ -1650,11 +1710,233 @@ type ClusterAgent { project: Project """ + Tokens associated with the cluster agent + """ + tokens( + """ + 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 + ): ClusterAgentTokenConnection + + """ Timestamp the cluster agent was updated """ updatedAt: Time } +""" +The connection type for ClusterAgent. +""" +type ClusterAgentConnection { + """ + A list of edges. + """ + edges: [ClusterAgentEdge] + + """ + A list of nodes. + """ + nodes: [ClusterAgent] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +Autogenerated input type of ClusterAgentDelete +""" +input ClusterAgentDeleteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Global id of the cluster agent that will be deleted + """ + id: ClustersAgentID! +} + +""" +Autogenerated return type of ClusterAgentDelete +""" +type ClusterAgentDeletePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" +An edge in a connection. +""" +type ClusterAgentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ClusterAgent +} + +type ClusterAgentToken { + """ + Cluster agent this token is associated with + """ + clusterAgent: ClusterAgent + + """ + Timestamp the token was created + """ + createdAt: Time + + """ + Global ID of the token + """ + id: ClustersAgentTokenID! +} + +""" +The connection type for ClusterAgentToken. +""" +type ClusterAgentTokenConnection { + """ + A list of edges. + """ + edges: [ClusterAgentTokenEdge] + + """ + A list of nodes. + """ + nodes: [ClusterAgentToken] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +Autogenerated input type of ClusterAgentTokenCreate +""" +input ClusterAgentTokenCreateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Global ID of the cluster agent that will be associated with the new token + """ + clusterAgentId: ClustersAgentID! +} + +""" +Autogenerated return type of ClusterAgentTokenCreate +""" +type ClusterAgentTokenCreatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + Token secret value. Make sure you save it - you won't be able to access it again + """ + secret: String + + """ + Token created after mutation + """ + token: ClusterAgentToken +} + +""" +Autogenerated input type of ClusterAgentTokenDelete +""" +input ClusterAgentTokenDeleteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Global ID of the cluster agent token that will be deleted + """ + id: ClustersAgentTokenID! +} + +""" +Autogenerated return type of ClusterAgentTokenDelete +""" +type ClusterAgentTokenDeletePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" +An edge in a connection. +""" +type ClusterAgentTokenEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ClusterAgentToken +} + +""" +Identifier of Clusters::Agent +""" +scalar ClustersAgentID + +""" +Identifier of Clusters::AgentToken +""" +scalar ClustersAgentTokenID + type Commit { """ Author of the commit @@ -1971,12 +2253,12 @@ input ConfigureSastInput { clientMutationId: String """ - Payload containing SAST variable values (https://docs.gitlab.com/ee/user/application_security/sast/#available-variables). + SAST CI configuration for the project """ - configuration: JSON! + configuration: SastCiConfigurationInput! """ - Full path of the project. + Full path of the project """ projectPath: ID! } @@ -1996,9 +2278,14 @@ type ConfigureSastPayload { errors: [String!]! """ - JSON containing the status of MR creation. + Status of creating the commit for the supplied SAST CI configuration + """ + status: String! + + """ + Redirect path to use when the response is successful """ - result: JSON + successPath: String } """ @@ -2392,7 +2679,7 @@ input CreateEpicInput { clientMutationId: String """ - Indicates if the epic is confidential. Will be ignored if `confidential_epics` feature flag is disabled + Indicates if the epic is confidential """ confidential: Boolean @@ -2672,21 +2959,11 @@ input CreateSnippetInput { clientMutationId: String """ - Content of the snippet - """ - content: String - - """ Description of the snippet """ description: String """ - File name of the snippet - """ - fileName: String - - """ The project full path the snippet is associated with """ projectPath: ID @@ -2728,6 +3005,88 @@ type CreateSnippetPayload { } """ +Autogenerated input type of CreateTestCase +""" +input CreateTestCaseInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The test case description + """ + description: String + + """ + The IDs of labels to be added to the test case. + """ + labelIds: [ID!] + + """ + The project full path to create the test case + """ + projectPath: ID! + + """ + The test case title + """ + title: String! +} + +""" +Autogenerated return type of CreateTestCase +""" +type CreateTestCasePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The test case created + """ + testCase: Issue +} + +interface CurrentUserTodos { + """ + Todos for the current user + """ + currentUserTodos( + """ + 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 + + """ + State of the todos + """ + state: TodoStateEnum + ): TodoConnection! +} + +""" Autogenerated input type of DastOnDemandScanCreate """ input DastOnDemandScanCreateInput { @@ -2737,6 +3096,11 @@ input DastOnDemandScanCreateInput { clientMutationId: String """ + ID of the scanner profile to be used for the scan. + """ + dastScannerProfileId: DastScannerProfileID + + """ ID of the site profile to be used for the scan. """ dastSiteProfileId: DastSiteProfileID! @@ -2775,13 +3139,23 @@ enum DastScanTypeEnum { } """ -Represents a DAST scanner profile. +Represents a DAST scanner profile """ type DastScannerProfile { """ + Relative web path to the edit page of a scanner profile + """ + editPath: String + + """ ID of the DAST scanner profile """ - id: ID! + globalId: DastScannerProfileID! + + """ + ID of the DAST scanner profile. Deprecated in 13.4: Use `global_id` + """ + id: ID! @deprecated(reason: "Use `global_id`. Deprecated in 13.4") """ Name of the DAST scanner profile @@ -2789,7 +3163,7 @@ type DastScannerProfile { profileName: String """ - The maximum number of seconds allowed for the spider to traverse the site + The maximum number of minutes allowed for the spider to traverse the site """ spiderTimeout: Int @@ -2839,7 +3213,7 @@ input DastScannerProfileCreateInput { profileName: String! """ - The maximum number of seconds allowed for the spider to traverse the site. + The maximum number of minutes allowed for the spider to traverse the site. """ spiderTimeout: Int @@ -2866,7 +3240,47 @@ type DastScannerProfileCreatePayload { """ ID of the scanner profile. """ - id: ID + globalId: DastScannerProfileID + + """ + ID of the scanner profile.. Deprecated in 13.4: Use `global_id` + """ + id: ID @deprecated(reason: "Use `global_id`. Deprecated in 13.4") +} + +""" +Autogenerated input type of DastScannerProfileDelete +""" +input DastScannerProfileDeleteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Full path for the project the scanner profile belongs to. + """ + fullPath: ID! + + """ + ID of the scanner profile to be deleted. + """ + id: DastScannerProfileID! +} + +""" +Autogenerated return type of DastScannerProfileDelete +""" +type DastScannerProfileDeletePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! } """ @@ -2885,7 +3299,67 @@ type DastScannerProfileEdge { } """ -Represents a DAST Site Profile. +Identifier of DastScannerProfile +""" +scalar DastScannerProfileID + +""" +Autogenerated input type of DastScannerProfileUpdate +""" +input DastScannerProfileUpdateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project the scanner profile belongs to. + """ + fullPath: ID! + + """ + ID of the scanner profile to be updated. + """ + id: DastScannerProfileID! + + """ + The name of the scanner profile. + """ + profileName: String! + + """ + The maximum number of minutes allowed for the spider to traverse the site. + """ + spiderTimeout: Int! + + """ + The maximum number of seconds allowed for the site under test to respond to a request. + """ + targetTimeout: Int! +} + +""" +Autogenerated return type of DastScannerProfileUpdate +""" +type DastScannerProfileUpdatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + ID of the scanner profile. + """ + id: DastScannerProfileID +} + +""" +Represents a DAST Site Profile """ type DastSiteProfile { """ @@ -3131,7 +3605,7 @@ input DeleteAnnotationInput { clientMutationId: String """ - The global id of the annotation to delete + The global ID of the annotation to delete """ id: ID! } @@ -3152,7 +3626,7 @@ type DeleteAnnotationPayload { } """ -The response from the AdminSidekiqQueuesDeleteJobs mutation. +The response from the AdminSidekiqQueuesDeleteJobs mutation """ type DeleteJobsResponse { """ @@ -3174,7 +3648,37 @@ type DeleteJobsResponse { """ A single design """ -type Design implements DesignFields & Noteable { +type Design implements CurrentUserTodos & DesignFields & Noteable { + """ + Todos for the current user + """ + currentUserTodos( + """ + 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 + + """ + State of the todos + """ + state: TodoStateEnum + ): TodoConnection! + """ The diff refs for this design """ @@ -3312,11 +3816,11 @@ type Design implements DesignFields & Noteable { } """ -A design pinned to a specific version. The image field reflects the design as of the associated version. +A design pinned to a specific version. The image field reflects the design as of the associated version """ type DesignAtVersion implements DesignFields { """ - The underlying design. + The underlying design """ design: Design! @@ -3412,7 +3916,7 @@ type DesignAtVersionEdge { } """ -A collection of designs. +A collection of designs """ type DesignCollection { """ @@ -3952,6 +4456,41 @@ enum DesignVersionEvent { } """ +Autogenerated input type of DestroyBoard +""" +input DestroyBoardInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The global ID of the board to destroy + """ + id: BoardID! +} + +""" +Autogenerated return type of DestroyBoard +""" +type DestroyBoardPayload { + """ + The board after mutation + """ + board: Board + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" Autogenerated input type of DestroyNote """ input DestroyNoteInput { @@ -4567,9 +5106,9 @@ type EnvironmentEdge { } """ -Represents an epic. +Represents an epic """ -type Epic implements Noteable { +type Epic implements CurrentUserTodos & Noteable { """ Author of the epic """ @@ -4673,6 +5212,36 @@ type Epic implements Noteable { createdAt: Time """ + Todos for the current user + """ + currentUserTodos( + """ + 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 + + """ + State of the todos + """ + state: TodoStateEnum + ): TodoConnection! + + """ Number of open and closed descendant epics and issues """ descendantCounts: EpicDescendantCount @@ -5034,7 +5603,7 @@ type EpicConnection { } """ -Counts of descendent epics. +Counts of descendent epics """ type EpicDescendantCount { """ @@ -5109,9 +5678,19 @@ type EpicHealthStatus { } """ +Identifier of Epic +""" +scalar EpicID + +""" Relationship between an epic and an issue """ -type EpicIssue implements Noteable { +type EpicIssue implements CurrentUserTodos & Noteable { + """ + Alert associated to this issue + """ + alertManagementAlert: AlertManagementAlert + """ Assignees of the issue """ @@ -5163,6 +5742,36 @@ type EpicIssue implements Noteable { createdAt: Time! """ + Todos for the current user + """ + currentUserTodos( + """ + 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 + + """ + State of the todos + """ + state: TodoStateEnum + ): TodoConnection! + + """ Description of the issue """ description: String @@ -5353,6 +5962,11 @@ type EpicIssue implements Noteable { relativePosition: Int """ + Severity level of the incident + """ + severity: IssuableSeverity + + """ State of the issue """ state: IssueState! @@ -5589,7 +6203,7 @@ enum EpicSort { } """ -State of an epic. +State of an epic """ enum EpicState { all @@ -5672,6 +6286,21 @@ type EpicTreeReorderPayload { errors: [String!]! } +""" +Epic ID wildcard values +""" +enum EpicWildcardId { + """ + Any epic is assigned + """ + ANY + + """ + No epic is assigned + """ + NONE +} + type GeoNode { """ The maximum concurrency of container repository sync for this secondary node @@ -5709,7 +6338,7 @@ type GeoNode { name: String """ - Package file registries of the GeoNode. Available only when feature flag `geo_self_service_framework` is enabled + Package file registries of the GeoNode. Available only when feature flag `geo_package_file_replication` is enabled """ packageFileRegistries( """ @@ -5789,6 +6418,37 @@ type GeoNode { syncObjectStorage: Boolean """ + Find terraform state registries on this Geo node. Available only when feature + flag `geo_terraform_state_replication` is enabled + """ + terraformStateRegistries( + """ + 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 + + """ + Filters registries by their ID + """ + ids: [ID!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): TerraformStateRegistryConnection + + """ The user-facing URL for this Geo node """ url: String @@ -6057,6 +6717,36 @@ type Group { fullPath: ID! """ + A membership of a user within this group + """ + groupMembers( + """ + 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 + + """ + Search query + """ + search: String + ): GroupMemberConnection + + """ Indicates if Group timelogs are enabled for namespace """ groupTimelogsEnabled: Boolean @@ -6403,6 +7093,16 @@ type Group { Returns the last _n_ elements from the list. """ last: Int + + """ + Search project with most similar names or paths + """ + search: String = null + + """ + Sort projects by this criteria + """ + sort: NamespaceProjectSort = null ): ProjectConnection! """ @@ -6520,6 +7220,16 @@ type Group { first: Int """ + Returns only the vulnerabilities which have linked issues + """ + hasIssues: Boolean + + """ + Returns only the vulnerabilities which have been resolved on default branch + """ + hasResolution: Boolean + + """ Returns the last _n_ elements from the list. """ last: Int @@ -6545,6 +7255,11 @@ type Group { severity: [VulnerabilitySeverity!] """ + List vulnerabilities by sort order + """ + sort: VulnerabilitySort = severity_desc + + """ Filter vulnerabilities by state """ state: [VulnerabilityState!] @@ -6652,13 +7367,43 @@ type Group { ): VulnerabilityScannerConnection """ + Counts for each vulnerability severity in the group and its subgroups + """ + vulnerabilitySeveritiesCount( + """ + Filter vulnerabilities by project + """ + projectId: [ID!] + + """ + Filter vulnerabilities by report type + """ + reportType: [VulnerabilityReportType!] + + """ + Filter vulnerabilities by scanner + """ + scanner: [String!] + + """ + Filter vulnerabilities by severity + """ + severity: [VulnerabilitySeverity!] + + """ + Filter vulnerabilities by state + """ + state: [VulnerabilityState!] + ): VulnerabilitySeveritiesCount + + """ Web URL of the group """ webUrl: String! } """ -Represents a Group Member +Represents a Group Membership """ type GroupMember implements MemberInterface { """ @@ -6687,11 +7432,21 @@ type GroupMember implements MemberInterface { group: Group """ + ID of the member + """ + id: ID! + + """ Date and time the membership was last updated """ updatedAt: Time """ + User that is associated with the member object + """ + user: User! + + """ Permissions for the current user on the resource """ userPermissions: GroupPermissions! @@ -6808,6 +7563,121 @@ type InstanceSecurityDashboard { """ last: Int ): VulnerabilityScannerConnection + + """ + Counts for each vulnerability severity from projects selected in Instance Security Dashboard + """ + vulnerabilitySeveritiesCount( + """ + Filter vulnerabilities by project + """ + projectId: [ID!] + + """ + Filter vulnerabilities by report type + """ + reportType: [VulnerabilityReportType!] + + """ + Filter vulnerabilities by scanner + """ + scanner: [String!] + + """ + Filter vulnerabilities by severity + """ + severity: [VulnerabilitySeverity!] + + """ + Filter vulnerabilities by state + """ + state: [VulnerabilityState!] + ): VulnerabilitySeveritiesCount +} + +""" +Represents a recorded measurement (object count) for the Admins +""" +type InstanceStatisticsMeasurement { + """ + Object count + """ + count: Int! + + """ + The type of objects being measured + """ + identifier: MeasurementIdentifier! + + """ + The time the measurement was recorded + """ + recordedAt: Time +} + +""" +The connection type for InstanceStatisticsMeasurement. +""" +type InstanceStatisticsMeasurementConnection { + """ + A list of edges. + """ + edges: [InstanceStatisticsMeasurementEdge] + + """ + A list of nodes. + """ + nodes: [InstanceStatisticsMeasurement] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type InstanceStatisticsMeasurementEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: InstanceStatisticsMeasurement +} + +""" +Incident severity +""" +enum IssuableSeverity { + """ + Critical severity + """ + CRITICAL + + """ + High severity + """ + HIGH + + """ + Low severity + """ + LOW + + """ + Medium severity + """ + MEDIUM + + """ + Unknown severity + """ + UNKNOWN } """ @@ -6820,7 +7690,12 @@ enum IssuableState { opened } -type Issue implements Noteable { +type Issue implements CurrentUserTodos & Noteable { + """ + Alert associated to this issue + """ + alertManagementAlert: AlertManagementAlert + """ Assignees of the issue """ @@ -6872,6 +7747,36 @@ type Issue implements Noteable { createdAt: Time! """ + Todos for the current user + """ + currentUserTodos( + """ + 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 + + """ + State of the todos + """ + state: TodoStateEnum + ): TodoConnection! + + """ Description of the issue """ description: String @@ -7052,6 +7957,11 @@ type Issue implements Noteable { relativePosition: Int """ + Severity level of the incident + """ + severity: IssuableSeverity + + """ State of the issue """ state: IssueState! @@ -7173,6 +8083,11 @@ type IssueEdge { } """ +Identifier of Issue +""" +scalar IssueID + +""" Autogenerated input type of IssueMoveList """ input IssueMoveListInput { @@ -7187,6 +8102,11 @@ input IssueMoveListInput { clientMutationId: String """ + 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 """ fromListId: ID @@ -7197,12 +8117,12 @@ input IssueMoveListInput { iid: String! """ - ID of issue after which the current issue will be positioned at + ID of issue that should be placed after the current issue """ moveAfterId: ID """ - ID of issue before which the current issue will be positioned at + ID of issue that should be placed before the current issue """ moveBeforeId: ID @@ -7558,6 +8478,51 @@ type IssueSetLockedPayload { } """ +Autogenerated input type of IssueSetSeverity +""" +input IssueSetSeverityInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The IID of the issue to mutate + """ + iid: String! + + """ + The project the issue to mutate is in + """ + projectPath: ID! + + """ + Set the incident severity level. + """ + severity: IssuableSeverity! +} + +""" +Autogenerated return type of IssueSetSeverity +""" +type IssueSetSeverityPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The issue after mutation + """ + issue: Issue +} + +""" Autogenerated input type of IssueSetSubscription """ input IssueSetSubscriptionInput { @@ -7738,7 +8703,7 @@ enum IssueState { } """ -Represents total number of issues for the represented statuses. +Represents total number of issues for the represented statuses """ type IssueStatusCountsType { """ @@ -7770,12 +8735,22 @@ enum IssueType { Issue issue type """ ISSUE + + """ + Test Case issue type + """ + TEST_CASE } """ -Represents an iteration object. +Represents an iteration object """ -type Iteration { +type Iteration implements TimeboxBurnupTimeSeriesInterface { + """ + Daily scope and completed totals for burnup charts + """ + burnupTimeSeries: [BurnupChartDailyTotals!] + """ Timestamp of iteration creation """ @@ -8176,7 +9151,7 @@ type JiraUser { gitlabUsername: String """ - Account id of the Jira user + Account ID of the Jira user """ jiraAccountId: String! @@ -8319,6 +9294,41 @@ type MarkAsSpamSnippetPayload { snippet: Snippet } +""" +Possible identifier types for a measurement +""" +enum MeasurementIdentifier { + """ + Group count + """ + GROUPS + + """ + Issue count + """ + ISSUES + + """ + Merge request count + """ + MERGE_REQUESTS + + """ + Pipeline count + """ + PIPELINES + + """ + Project count + """ + PROJECTS + + """ + User count + """ + USERS +} + interface MemberInterface { """ GitLab::Access level @@ -8341,18 +9351,78 @@ interface MemberInterface { expiresAt: Time """ + ID of the member + """ + id: ID! + + """ Date and time the membership was last updated """ updatedAt: Time + + """ + User that is associated with the member object + """ + user: User! +} + +""" +The connection type for MemberInterface. +""" +type MemberInterfaceConnection { + """ + A list of edges. + """ + edges: [MemberInterfaceEdge] + + """ + A list of nodes. + """ + nodes: [MemberInterface] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! } -type MergeRequest implements Noteable { +""" +An edge in a connection. +""" +type MemberInterfaceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: MemberInterface +} + +type MergeRequest implements CurrentUserTodos & Noteable { """ Indicates if members of the target project can push to the fork """ allowCollaboration: Boolean """ + Number of approvals left + """ + approvalsLeft: Int + + """ + Number of approvals required + """ + approvalsRequired: Int + + """ + Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured. + """ + approved: Boolean! + + """ Users who approved the merge request """ approvedBy( @@ -8408,16 +9478,56 @@ type MergeRequest implements Noteable { author: User """ + Indicates if auto merge is enabled for the merge request + """ + autoMergeEnabled: Boolean! + + """ Number of commits in the merge request """ commitCount: Int """ + Indicates if the merge request has conflicts + """ + conflicts: Boolean! + + """ Timestamp of when the merge request was created """ createdAt: Time! """ + Todos for the current user + """ + currentUserTodos( + """ + 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 + + """ + State of the todos + """ + state: TodoStateEnum + ): TodoConnection! + + """ Default merge commit message of the merge request """ defaultMergeCommitMessage: String @@ -8675,7 +9785,7 @@ type MergeRequest implements Noteable { Filter pipelines by their status """ status: PipelineStatusEnum - ): PipelineConnection! + ): PipelineConnection """ Alias for target_project @@ -8933,6 +10043,11 @@ type MergeRequestPermissions { adminMergeRequest: Boolean! """ + Indicates the user can perform `can_merge` on this resource + """ + canMerge: Boolean! + + """ Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource """ cherryPickOnCurrentMergeRequest: Boolean! @@ -9249,6 +10364,71 @@ type MergeRequestSetWipPayload { } """ +Values for sorting merge requests +""" +enum MergeRequestSort { + """ + Label priority by ascending order + """ + LABEL_PRIORITY_ASC + + """ + Label priority by descending order + """ + LABEL_PRIORITY_DESC + + """ + Merge time by ascending order + """ + MERGED_AT_ASC + + """ + Merge time by descending order + """ + MERGED_AT_DESC + + """ + Milestone due date by ascending order + """ + MILESTONE_DUE_ASC + + """ + Milestone due date by descending order + """ + MILESTONE_DUE_DESC + + """ + Priority by ascending order + """ + PRIORITY_ASC + + """ + Priority by descending order + """ + PRIORITY_DESC + + """ + Created at ascending order + """ + created_asc + + """ + Created at descending order + """ + created_desc + + """ + Updated at ascending order + """ + updated_asc + + """ + Updated at descending order + """ + updated_desc +} + +""" State of a GitLab merge request """ enum MergeRequestState { @@ -9436,9 +10616,14 @@ type MetricsDashboardAnnotationEdge { } """ -Represents a milestone. +Represents a milestone """ -type Milestone { +type Milestone implements TimeboxBurnupTimeSeriesInterface { + """ + Daily scope and completed totals for burnup charts + """ + burnupTimeSeries: [BurnupChartDailyTotals!] + """ Timestamp of milestone creation """ @@ -9591,6 +10776,9 @@ type Mutation { awardEmojiToggle(input: AwardEmojiToggleInput!): AwardEmojiTogglePayload boardListCreate(input: BoardListCreateInput!): BoardListCreatePayload boardListUpdateLimitMetrics(input: BoardListUpdateLimitMetricsInput!): BoardListUpdateLimitMetricsPayload + clusterAgentDelete(input: ClusterAgentDeleteInput!): ClusterAgentDeletePayload + clusterAgentTokenCreate(input: ClusterAgentTokenCreateInput!): ClusterAgentTokenCreatePayload + clusterAgentTokenDelete(input: ClusterAgentTokenDeleteInput!): ClusterAgentTokenDeletePayload commitCreate(input: CommitCreateInput!): CommitCreatePayload configureSast(input: ConfigureSastInput!): ConfigureSastPayload createAlertIssue(input: CreateAlertIssueInput!): CreateAlertIssuePayload @@ -9604,8 +10792,11 @@ type Mutation { createNote(input: CreateNoteInput!): CreateNotePayload createRequirement(input: CreateRequirementInput!): CreateRequirementPayload createSnippet(input: CreateSnippetInput!): CreateSnippetPayload + createTestCase(input: CreateTestCaseInput!): CreateTestCasePayload dastOnDemandScanCreate(input: DastOnDemandScanCreateInput!): DastOnDemandScanCreatePayload dastScannerProfileCreate(input: DastScannerProfileCreateInput!): DastScannerProfileCreatePayload + dastScannerProfileDelete(input: DastScannerProfileDeleteInput!): DastScannerProfileDeletePayload + dastScannerProfileUpdate(input: DastScannerProfileUpdateInput!): DastScannerProfileUpdatePayload dastSiteProfileCreate(input: DastSiteProfileCreateInput!): DastSiteProfileCreatePayload dastSiteProfileDelete(input: DastSiteProfileDeleteInput!): DastSiteProfileDeletePayload dastSiteProfileUpdate(input: DastSiteProfileUpdateInput!): DastSiteProfileUpdatePayload @@ -9613,6 +10804,7 @@ type Mutation { designManagementDelete(input: DesignManagementDeleteInput!): DesignManagementDeletePayload designManagementMove(input: DesignManagementMoveInput!): DesignManagementMovePayload designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload + destroyBoard(input: DestroyBoardInput!): DestroyBoardPayload destroyNote(input: DestroyNoteInput!): DestroyNotePayload destroySnippet(input: DestroySnippetInput!): DestroySnippetPayload @@ -9631,6 +10823,7 @@ type Mutation { issueSetEpic(input: IssueSetEpicInput!): IssueSetEpicPayload issueSetIteration(input: IssueSetIterationInput!): IssueSetIterationPayload issueSetLocked(input: IssueSetLockedInput!): IssueSetLockedPayload + issueSetSeverity(input: IssueSetSeverityInput!): IssueSetSeverityPayload issueSetSubscription(input: IssueSetSubscriptionInput!): IssueSetSubscriptionPayload issueSetWeight(input: IssueSetWeightInput!): IssueSetWeightPayload jiraImportStart(input: JiraImportStartInput!): JiraImportStartPayload @@ -9649,9 +10842,12 @@ type Mutation { """ mergeRequestUpdate(input: MergeRequestUpdateInput!): MergeRequestUpdatePayload namespaceIncreaseStorageTemporarily(input: NamespaceIncreaseStorageTemporarilyInput!): NamespaceIncreaseStorageTemporarilyPayload + pipelineCancel(input: PipelineCancelInput!): PipelineCancelPayload + pipelineDestroy(input: PipelineDestroyInput!): PipelineDestroyPayload + pipelineRetry(input: PipelineRetryInput!): PipelineRetryPayload removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload @deprecated(reason: "Use awardEmojiRemove. Deprecated in 13.2") removeProjectFromSecurityDashboard(input: RemoveProjectFromSecurityDashboardInput!): RemoveProjectFromSecurityDashboardPayload - runDastScan(input: RunDASTScanInput!): RunDASTScanPayload + runDastScan(input: RunDASTScanInput!): RunDASTScanPayload @deprecated(reason: "Use DastOnDemandScanCreate. Deprecated in 13.4") todoMarkDone(input: TodoMarkDoneInput!): TodoMarkDonePayload todoRestore(input: TodoRestoreInput!): TodoRestorePayload todoRestoreMany(input: TodoRestoreManyInput!): TodoRestoreManyPayload @@ -9679,10 +10875,11 @@ type Mutation { updateNote(input: UpdateNoteInput!): UpdateNotePayload updateRequirement(input: UpdateRequirementInput!): UpdateRequirementPayload updateSnippet(input: UpdateSnippetInput!): UpdateSnippetPayload + vulnerabilityResolve(input: VulnerabilityResolveInput!): VulnerabilityResolvePayload } """ -Different toggles for changing mutator behavior. +Different toggles for changing mutator behavior """ enum MutationOperationMode { """ @@ -9780,6 +10977,16 @@ type Namespace { Returns the last _n_ elements from the list. """ last: Int + + """ + Search project with most similar names or paths + """ + search: String = null + + """ + Sort projects by this criteria + """ + sort: NamespaceProjectSort = null ): ProjectConnection! """ @@ -9878,7 +11085,17 @@ type NamespaceIncreaseStorageTemporarilyPayload { namespace: Namespace } -input NegatedBoardEpicIssueInput { +""" +Values for sorting projects +""" +enum NamespaceProjectSort { + """ + Most similar to the search query + """ + SIMILARITY +} + +input NegatedBoardIssueInput { """ Filter by assignee username """ @@ -9890,9 +11107,9 @@ input NegatedBoardEpicIssueInput { authorUsername: String """ - Filter by epic ID + Filter by epic ID. Incompatible with epicWildcardId """ - epicId: String + epicId: ID """ Filter by label name @@ -10283,6 +11500,11 @@ enum PackageTypeEnum { CONAN """ + Packages from the generic package manager + """ + GENERIC + + """ Packages from the maven package manager """ MAVEN @@ -10335,6 +11557,11 @@ type Pipeline { beforeSha: String """ + Specifies if a pipeline can be canceled + """ + cancelable: Boolean! + + """ Timestamp of the pipeline's commit """ committedAt: Time @@ -10382,6 +11609,11 @@ type Pipeline { iid: String! """ + Specifies if a pipeline can be retried + """ + retryable: Boolean! + + """ Vulnerability and scanned resource counts for each security scanner of the pipeline """ securityReportSummary: SecurityReportSummary @@ -10443,6 +11675,36 @@ type Pipeline { userPermissions: PipelinePermissions! } +""" +Autogenerated input type of PipelineCancel +""" +input PipelineCancelInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the pipeline to mutate + """ + id: CiPipelineID! +} + +""" +Autogenerated return type of PipelineCancel +""" +type PipelineCancelPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + enum PipelineConfigSourceEnum { AUTO_DEVOPS_SOURCE BRIDGE_SOURCE @@ -10480,6 +11742,36 @@ type PipelineConnection { } """ +Autogenerated input type of PipelineDestroy +""" +input PipelineDestroyInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the pipeline to mutate + """ + id: CiPipelineID! +} + +""" +Autogenerated return type of PipelineDestroy +""" +type PipelineDestroyPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" An edge in a connection. """ type PipelineEdge { @@ -10511,6 +11803,41 @@ type PipelinePermissions { updatePipeline: Boolean! } +""" +Autogenerated input type of PipelineRetry +""" +input PipelineRetryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the pipeline to mutate + """ + id: CiPipelineID! +} + +""" +Autogenerated return type of PipelineRetry +""" +type PipelineRetryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The pipeline after mutation + """ + pipeline: Pipeline +} + enum PipelineStatusEnum { CANCELED CREATED @@ -10668,6 +11995,41 @@ type Project { ): BoardConnection """ + Find a single cluster agent by name + """ + clusterAgent( + """ + Name of the cluster agent + """ + name: String! + ): ClusterAgent + + """ + Cluster agents associated with the project + """ + clusterAgents( + """ + 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 + ): ClusterAgentConnection + + """ Compliance frameworks associated with the project """ complianceFrameworks( @@ -10733,6 +12095,16 @@ type Project { ): DastScannerProfileConnection """ + DAST Site Profile associated with the project + """ + dastSiteProfile( + """ + ID of the site profile + """ + id: DastSiteProfileID! + ): DastSiteProfile + + """ DAST Site Profiles associated with the project """ dastSiteProfiles( @@ -11309,6 +12681,16 @@ type Project { after: String """ + Username of the assignee + """ + assigneeUsername: String + + """ + Username of the author + """ + authorUsername: String + + """ Returns the elements in the list that come before the specified cursor. """ before: String @@ -11344,6 +12726,16 @@ type Project { mergedBefore: Time """ + Title of the milestone + """ + milestoneTitle: String + + """ + Sort merge requests by this criteria + """ + sort: MergeRequestSort = created_desc + + """ Array of source branch names. All resolved merge requests will have one of these branches as their source. """ sourceBranches: [String!] @@ -11567,7 +12959,7 @@ type Project { Search query """ search: String - ): ProjectMemberConnection + ): MemberInterfaceConnection """ Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts @@ -11795,7 +13187,7 @@ type Project { ): ServiceConnection """ - Indicates if Shared Runners are enabled for the project + Indicates if shared runners are enabled for the project """ sharedRunnersEnabled: Boolean @@ -11894,6 +13286,16 @@ type Project { first: Int """ + Returns only the vulnerabilities which have linked issues + """ + hasIssues: Boolean + + """ + Returns only the vulnerabilities which have been resolved on default branch + """ + hasResolution: Boolean + + """ Returns the last _n_ elements from the list. """ last: Int @@ -11919,12 +13321,52 @@ type Project { severity: [VulnerabilitySeverity!] """ + List vulnerabilities by sort order + """ + sort: VulnerabilitySort = severity_desc + + """ Filter vulnerabilities by state """ state: [VulnerabilityState!] ): VulnerabilityConnection """ + Number of vulnerabilities per day for the project + """ + vulnerabilitiesCountByDay( + """ + 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 + + """ + Last day for which to fetch vulnerability history + """ + endDate: ISO8601Date! + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + First day for which to fetch vulnerability history + """ + startDate: ISO8601Date! + ): VulnerabilitiesCountByDayConnection + + """ Vulnerability scanners reported on the project vulnerabilties """ vulnerabilityScanners( @@ -11950,9 +13392,34 @@ type Project { ): VulnerabilityScannerConnection """ - Counts for each severity of vulnerability of the project + Counts for each vulnerability severity in the project """ - vulnerabilitySeveritiesCount: VulnerabilitySeveritiesCount + vulnerabilitySeveritiesCount( + """ + Filter vulnerabilities by project + """ + projectId: [ID!] + + """ + Filter vulnerabilities by report type + """ + reportType: [VulnerabilityReportType!] + + """ + Filter vulnerabilities by scanner + """ + scanner: [String!] + + """ + Filter vulnerabilities by severity + """ + severity: [VulnerabilitySeverity!] + + """ + Filter vulnerabilities by state + """ + state: [VulnerabilityState!] + ): VulnerabilitySeveritiesCount """ Web URL of the project @@ -12001,7 +13468,7 @@ type ProjectEdge { } """ -Represents a Project Member +Represents a Project Membership """ type ProjectMember implements MemberInterface { """ @@ -12412,6 +13879,46 @@ type Query { instanceSecurityDashboard: InstanceSecurityDashboard """ + Get statistics on the instance + """ + instanceStatisticsMeasurements( + """ + 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 + + """ + The type of measurement/statistics to retrieve + """ + identifier: MeasurementIdentifier! + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): InstanceStatisticsMeasurementConnection + + """ + Find an issue + """ + issue( + """ + The global ID of the Issue + """ + id: IssueID! + ): Issue + + """ Find an iteration """ iteration( @@ -12476,6 +13983,11 @@ type Query { first: Int """ + Filter projects by IDs + """ + ids: [ID!] + + """ Returns the last _n_ elements from the list. """ last: Int @@ -12621,6 +14133,16 @@ type Query { first: Int """ + Returns only the vulnerabilities which have linked issues + """ + hasIssues: Boolean + + """ + Returns only the vulnerabilities which have been resolved on default branch + """ + hasResolution: Boolean + + """ Returns the last _n_ elements from the list. """ last: Int @@ -12646,6 +14168,11 @@ type Query { severity: [VulnerabilitySeverity!] """ + List vulnerabilities by sort order + """ + sort: VulnerabilitySort = severity_desc + + """ Filter vulnerabilities by state """ state: [VulnerabilityState!] @@ -12725,7 +14252,7 @@ type Query { } """ -State of a Geo registry. +State of a Geo registry """ enum RegistryState { """ @@ -12857,6 +14384,11 @@ type Release { Relative web path to the tag associated with the release """ tagPath: String + + """ + Indicates the release is an upcoming release + """ + upcomingRelease: Boolean } """ @@ -12864,6 +14396,11 @@ Represents an asset link associated with a release """ type ReleaseAssetLink { """ + Direct asset URL of the link + """ + directAssetUrl: String + + """ Indicates the link points to an external resource """ external: Boolean @@ -13014,6 +14551,11 @@ The connection type for Release. """ type ReleaseConnection { """ + Total count of collection + """ + count: Int! + + """ A list of edges. """ edges: [ReleaseEdge] @@ -13308,6 +14850,11 @@ type Requirement { iid: ID! """ + Latest requirement test report state + """ + lastTestReportState: TestReportState + + """ Project to which the requirement belongs """ project: Project! @@ -13437,7 +14984,7 @@ enum RequirementState { } """ -Counts of requirements by their state. +Counts of requirements by their state """ type RequirementStatesCount { """ @@ -13645,24 +15192,49 @@ Represents an analyzer entity in SAST CI configuration """ type SastCiConfigurationAnalyzersEntity { """ - Analyzer description that is displayed on the form. + Analyzer description that is displayed on the form """ description: String """ - Indicates whether an analyzer is enabled. + Indicates whether an analyzer is enabled """ enabled: Boolean """ - Analyzer label used in the config UI. + Analyzer label used in the config UI """ label: String """ - Name of the analyzer. + Name of the analyzer """ name: String + + """ + List of supported variables + """ + variables( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SastCiConfigurationEntityConnection } """ @@ -13801,6 +15373,41 @@ type SastCiConfigurationEntityEdge { } """ +Represents an entity in SAST CI configuration +""" +input SastCiConfigurationEntityInput { + """ + Default value that is used if value is empty + """ + defaultValue: String! + + """ + CI keyword of entity + """ + field: String! + + """ + Current value of the entity + """ + value: String! +} + +""" +Represents a CI configuration of SAST +""" +input SastCiConfigurationInput { + """ + List of global entities related to SAST configuration + """ + global: [SastCiConfigurationEntityInput!] + + """ + List of pipeline entities related to SAST configuration + """ + pipeline: [SastCiConfigurationEntityInput!] +} + +""" Represents an entity for options in SAST CI configuration """ type SastCiConfigurationOptionsEntity { @@ -13990,7 +15597,7 @@ type SecurityReportSummarySection { } """ -The type of the security scanner. +The type of the security scanner """ enum SecurityScannerType { CONTAINER_SCANNING @@ -14022,7 +15629,7 @@ type SecurityScanners { } """ -A Sentry error. +A Sentry error """ type SentryDetailedError { """ @@ -14167,7 +15774,7 @@ type SentryDetailedError { } """ -A Sentry error. A simplified version of SentryDetailedError. +A Sentry error. A simplified version of SentryDetailedError """ type SentryError { """ @@ -14257,7 +15864,7 @@ type SentryError { } """ -An object containing a collection of Sentry errors, and a detailed error. +An object containing a collection of Sentry errors, and a detailed error """ type SentryErrorCollection { """ @@ -14310,7 +15917,7 @@ type SentryErrorCollection { 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 @@ -14369,7 +15976,7 @@ type SentryErrorFrequency { } """ -An object containing a stack trace entry for a Sentry error. +An object containing a stack trace entry for a Sentry error """ type SentryErrorStackTrace { """ @@ -14404,7 +16011,7 @@ type SentryErrorStackTraceContext { } """ -An object containing a stack trace entry for a Sentry error. +An object containing a stack trace entry for a Sentry error """ type SentryErrorStackTraceEntry { """ @@ -14533,6 +16140,7 @@ enum ServiceType { DISCORD_SERVICE DRONE_CI_SERVICE EMAILS_ON_PUSH_SERVICE + EWM_SERVICE EXTERNAL_WIKI_SERVICE FLOWDOCK_SERVICE GITHUB_SERVICE @@ -15023,7 +16631,87 @@ type TaskCompletionStatus { } """ -Represents a requirement test report. +Represents the sync and verification state of a terraform state +""" +type TerraformStateRegistry { + """ + Timestamp when the TerraformStateRegistry was created + """ + createdAt: Time + + """ + ID of the TerraformStateRegistry + """ + id: ID! + + """ + Error message during sync of the TerraformStateRegistry + """ + lastSyncFailure: String + + """ + Timestamp of the most recent successful sync of the TerraformStateRegistry + """ + lastSyncedAt: Time + + """ + Timestamp after which the TerraformStateRegistry should be resynced + """ + retryAt: Time + + """ + Number of consecutive failed sync attempts of the TerraformStateRegistry + """ + retryCount: Int + + """ + Sync state of the TerraformStateRegistry + """ + state: RegistryState + + """ + ID of the TerraformState + """ + terraformStateId: ID! +} + +""" +The connection type for TerraformStateRegistry. +""" +type TerraformStateRegistryConnection { + """ + A list of edges. + """ + edges: [TerraformStateRegistryEdge] + + """ + A list of nodes. + """ + nodes: [TerraformStateRegistry] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type TerraformStateRegistryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: TerraformStateRegistry +} + +""" +Represents a requirement test report """ type TestReport { """ @@ -15095,6 +16783,13 @@ Time represented in ISO 8601 """ scalar Time +interface TimeboxBurnupTimeSeriesInterface { + """ + Daily scope and completed totals for burnup charts + """ + burnupTimeSeries: [BurnupChartDailyTotals!] +} + type Timelog { """ Timestamp of when the time tracked was spent at. Deprecated in 12.10: Use `spentAt` @@ -15107,6 +16802,11 @@ type Timelog { issue: Issue """ + The note where the quick action to add the logged time was executed + """ + note: Note + + """ Timestamp of when the time tracked was spent at """ spentAt: Time @@ -15167,7 +16867,7 @@ type Todo { action: TodoActionEnum! """ - The owner of this todo + The author of this todo """ author: User! @@ -15918,7 +17618,7 @@ input UpdateEpicInput { clientMutationId: String """ - Indicates if the epic is confidential. Will be ignored if `confidential_epics` feature flag is disabled + Indicates if the epic is confidential """ confidential: Boolean @@ -16068,6 +17768,11 @@ input UpdateIssueInput { dueDate: Time """ + The ID of the parent epic. NULL when removing the association + """ + epicId: ID + + """ The desired health status """ healthStatus: HealthStatus @@ -16243,6 +17948,11 @@ input UpdateRequirementInput { iid: String! """ + Creates a test report for the requirement with the given state + """ + lastTestReportState: TestReportState + + """ The project full path the requirement is associated with """ projectPath: ID! @@ -16293,21 +18003,11 @@ input UpdateSnippetInput { clientMutationId: String """ - Content of the snippet - """ - content: String - - """ Description of the snippet """ description: String """ - File name of the snippet - """ - fileName: String - - """ The global id of the snippet to update """ id: ID! @@ -16391,6 +18091,11 @@ type User { mergedBefore: Time """ + Title of the milestone + """ + milestoneTitle: String + + """ The global ID of the project the authored merge requests should be in. Incompatible with projectPath. """ projectId: ID @@ -16401,6 +18106,11 @@ type User { projectPath: String """ + Sort merge requests by this criteria + """ + sort: MergeRequestSort = created_desc + + """ Array of source branch names. All resolved merge requests will have one of these branches as their source. """ sourceBranches: [String!] @@ -16461,6 +18171,11 @@ type User { mergedBefore: Time """ + Title of the milestone + """ + milestoneTitle: String + + """ The global ID of the project the authored merge requests should be in. Incompatible with projectPath. """ projectId: ID @@ -16471,6 +18186,11 @@ type User { projectPath: String """ + Sort merge requests by this criteria + """ + sort: MergeRequestSort = created_desc + + """ Array of source branch names. All resolved merge requests will have one of these branches as their source. """ sourceBranches: [String!] @@ -16597,6 +18317,36 @@ type User { ): SnippetConnection """ + Projects starred by the user + """ + starredProjects( + """ + 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 + + """ + Search query + """ + search: String + ): ProjectConnection + + """ State of the user """ state: UserState! @@ -16717,6 +18467,11 @@ type UserEdge { node: User } +""" +Identifier of User +""" +scalar UserID + type UserPermissions { """ Indicates the user can perform `create_snippet` on this resource @@ -16909,7 +18664,7 @@ type VulnerabilitiesCountByDayEdge { } """ -Represents a vulnerability. +Represents a vulnerability """ type Vulnerability { """ @@ -16918,6 +18673,11 @@ type Vulnerability { description: String """ + Timestamp of when the vulnerability was first detected + """ + detectedAt: Time! + + """ GraphQL ID of the vulnerability """ id: ID! @@ -17067,7 +18827,12 @@ enum VulnerabilityGrade { } """ -Represents a vulnerability identifier. +Identifier of Vulnerability +""" +scalar VulnerabilityID + +""" +Represents a vulnerability identifier """ type VulnerabilityIdentifier { """ @@ -17092,7 +18857,7 @@ type VulnerabilityIdentifier { } """ -Represents an issue link of a vulnerability. +Represents an issue link of a vulnerability """ type VulnerabilityIssueLink { """ @@ -17147,7 +18912,7 @@ type VulnerabilityIssueLinkEdge { } """ -The type of the issue link related to a vulnerability. +The type of the issue link related to a vulnerability """ enum VulnerabilityIssueLinkType { CREATED @@ -17355,7 +19120,7 @@ type VulnerabilityPermissions { } """ -The type of the security scan that found the vulnerability. +The type of the security scan that found the vulnerability """ enum VulnerabilityReportType { CONTAINER_SCANNING @@ -17367,7 +19132,42 @@ enum VulnerabilityReportType { } """ -Represents a vulnerability scanner. +Autogenerated input type of VulnerabilityResolve +""" +input VulnerabilityResolveInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the vulnerability to be resolveed + """ + id: VulnerabilityID! +} + +""" +Autogenerated return type of VulnerabilityResolve +""" +type VulnerabilityResolvePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The vulnerability after state change + """ + vulnerability: Vulnerability +} + +""" +Represents a vulnerability scanner """ type VulnerabilityScanner { """ @@ -17462,7 +19262,7 @@ type VulnerabilitySeveritiesCount { } """ -The severity of the vulnerability. +The severity of the vulnerability """ enum VulnerabilitySeverity { CRITICAL @@ -17474,7 +19274,22 @@ enum VulnerabilitySeverity { } """ -The state of the vulnerability. +Vulnerability sort values +""" +enum VulnerabilitySort { + """ + Severity in ascending order + """ + severity_asc + + """ + Severity in descending order + """ + severity_desc +} + +""" +The state of the vulnerability """ enum VulnerabilityState { CONFIRMED diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json index 7ee37fb4d43..6458a676612 100644 --- a/doc/api/graphql/reference/gitlab_schema.json +++ b/doc/api/graphql/reference/gitlab_schema.json @@ -1837,7 +1837,7 @@ { "kind": "OBJECT", "name": "AwardEmoji", - "description": "An emoji awarded by a user.", + "description": "An emoji awarded by a user", "fields": [ { "name": "description", @@ -2716,7 +2716,7 @@ "description": "Filters applied when selecting issues on the board", "type": { "kind": "INPUT_OBJECT", - "name": "BoardEpicIssueInput", + "name": "BoardIssueInput", "ofType": null }, "defaultValue": null @@ -3042,8 +3042,18 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "BoardID", + "description": "Identifier of Board", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "INPUT_OBJECT", - "name": "BoardEpicIssueInput", + "name": "BoardIssueInput", "description": null, "fields": null, "inputFields": [ @@ -3106,8 +3116,8 @@ "defaultValue": null }, { - "name": "epicId", - "description": "Filter by epic ID", + "name": "myReactionEmoji", + "description": "Filter by reaction emoji", "type": { "kind": "SCALAR", "name": "String", @@ -3116,11 +3126,11 @@ "defaultValue": null }, { - "name": "myReactionEmoji", - "description": "Filter by reaction emoji", + "name": "epicId", + "description": "Filter by epic ID. Incompatible with epicWildcardId", "type": { "kind": "SCALAR", - "name": "String", + "name": "ID", "ofType": null }, "defaultValue": null @@ -3140,7 +3150,27 @@ "description": "List of negated params. Warning: this argument is experimental and a subject to change in future", "type": { "kind": "INPUT_OBJECT", - "name": "NegatedBoardEpicIssueInput", + "name": "NegatedBoardIssueInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "search", + "description": "Search query for issue title or description", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "epicWildcardId", + "description": "Filter by epic ID wildcard. Incompatible with epicId", + "type": { + "kind": "ENUM", + "name": "EpicWildcardId", "ofType": null }, "defaultValue": null @@ -3151,16 +3181,6 @@ "possibleTypes": null }, { - "kind": "SCALAR", - "name": "BoardID", - "description": "Identifier of Board", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { "kind": "OBJECT", "name": "BoardList", "description": "Represents a list for an issue board", @@ -3216,6 +3236,16 @@ "description": "Board issues", "args": [ { + "name": "filters", + "description": "Filters applied when selecting issues in the board list", + "type": { + "kind": "INPUT_OBJECT", + "name": "BoardIssueInput", + "ofType": null + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -3495,7 +3525,7 @@ "inputFields": [ { "name": "boardId", - "description": "The Global ID of the issue board to mutate", + "description": "Global ID of the issue board to mutate", "type": { "kind": "NON_NULL", "name": null, @@ -3519,7 +3549,7 @@ }, { "name": "labelId", - "description": "ID of an existing label", + "description": "Global ID of an existing label", "type": { "kind": "SCALAR", "name": "LabelID", @@ -3528,6 +3558,26 @@ "defaultValue": null }, { + "name": "milestoneId", + "description": "Global ID of an existing milestone", + "type": { + "kind": "SCALAR", + "name": "MilestoneID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "assigneeId", + "description": "Global ID of an existing user", + "type": { + "kind": "SCALAR", + "name": "UserID", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -3843,6 +3893,109 @@ }, { "kind": "OBJECT", + "name": "BurnupChartDailyTotals", + "description": "Represents the total number of issues and their weights for a particular day", + "fields": [ + { + "name": "completedCount", + "description": "Number of closed issues as of this day", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "completedWeight", + "description": "Total weight of closed issues as of this day", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "date", + "description": "Date for burnup totals", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ISO8601Date", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scopeCount", + "description": "Number of issues as of this day", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scopeWeight", + "description": "Total weight of issues as of this day", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "CiGroup", "description": null, "fields": [ @@ -4240,6 +4393,16 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "CiPipelineID", + "description": "Identifier of Ci::Pipeline", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "CiStage", "description": null, @@ -4497,6 +4660,59 @@ "deprecationReason": null }, { + "name": "tokens", + "description": "Tokens associated with the cluster agent", + "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": "ClusterAgentTokenConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updatedAt", "description": "Timestamp the cluster agent was updated", "args": [ @@ -4520,6 +4736,601 @@ }, { "kind": "OBJECT", + "name": "ClusterAgentConnection", + "description": "The connection type for ClusterAgent.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterAgentEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterAgent", + "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": "INPUT_OBJECT", + "name": "ClusterAgentDeleteInput", + "description": "Autogenerated input type of ClusterAgentDelete", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Global id of the cluster agent that will be deleted", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ClustersAgentID", + "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": "ClusterAgentDeletePayload", + "description": "Autogenerated return type of ClusterAgentDelete", + "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": "ClusterAgentEdge", + "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": "ClusterAgent", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterAgentToken", + "description": null, + "fields": [ + { + "name": "clusterAgent", + "description": "Cluster agent this token is associated with", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "ClusterAgent", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createdAt", + "description": "Timestamp the token was created", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "Global ID of the token", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ClustersAgentTokenID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterAgentTokenConnection", + "description": "The connection type for ClusterAgentToken.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterAgentTokenEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterAgentToken", + "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": "INPUT_OBJECT", + "name": "ClusterAgentTokenCreateInput", + "description": "Autogenerated input type of ClusterAgentTokenCreate", + "fields": null, + "inputFields": [ + { + "name": "clusterAgentId", + "description": "Global ID of the cluster agent that will be associated with the new token", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ClustersAgentID", + "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": "ClusterAgentTokenCreatePayload", + "description": "Autogenerated return type of ClusterAgentTokenCreate", + "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": "secret", + "description": "Token secret value. Make sure you save it - you won't be able to access it again", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "Token created after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "ClusterAgentToken", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ClusterAgentTokenDeleteInput", + "description": "Autogenerated input type of ClusterAgentTokenDelete", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "Global ID of the cluster agent token that will be deleted", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ClustersAgentTokenID", + "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": "ClusterAgentTokenDeletePayload", + "description": "Autogenerated return type of ClusterAgentTokenDelete", + "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": "ClusterAgentTokenEdge", + "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": "ClusterAgentToken", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ClustersAgentID", + "description": "Identifier of Clusters::Agent", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ClustersAgentTokenID", + "description": "Identifier of Clusters::AgentToken", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "Commit", "description": null, "fields": [ @@ -5325,7 +6136,7 @@ "inputFields": [ { "name": "projectPath", - "description": "Full path of the project.", + "description": "Full path of the project", "type": { "kind": "NON_NULL", "name": null, @@ -5339,13 +6150,13 @@ }, { "name": "configuration", - "description": "Payload containing SAST variable values (https://docs.gitlab.com/ee/user/application_security/sast/#available-variables).", + "description": "SAST CI configuration for the project", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "JSON", + "kind": "INPUT_OBJECT", + "name": "SastCiConfigurationInput", "ofType": null } }, @@ -5412,14 +6223,32 @@ "deprecationReason": null }, { - "name": "result", - "description": "JSON containing the status of MR creation.", + "name": "status", + "description": "Status of creating the commit for the supplied SAST CI configuration", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "successPath", + "description": "Redirect path to use when the response is successful", "args": [ ], "type": { "kind": "SCALAR", - "name": "JSON", + "name": "String", "ofType": null }, "isDeprecated": false, @@ -6443,7 +7272,7 @@ }, { "name": "confidential", - "description": "Indicates if the epic is confidential. Will be ignored if `confidential_epics` feature flag is disabled", + "description": "Indicates if the epic is confidential", "type": { "kind": "SCALAR", "name": "Boolean", @@ -7170,26 +7999,6 @@ "defaultValue": null }, { - "name": "fileName", - "description": "File name of the snippet", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "content", - "description": "Content of the snippet", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { "name": "description", "description": "Description of the snippet", "type": { @@ -7343,6 +8152,254 @@ }, { "kind": "INPUT_OBJECT", + "name": "CreateTestCaseInput", + "description": "Autogenerated input type of CreateTestCase", + "fields": null, + "inputFields": [ + { + "name": "title", + "description": "The test case title", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "description", + "description": "The test case description", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "labelIds", + "description": "The IDs of labels to be added to the test case.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "projectPath", + "description": "The project full path to create the test case", + "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": "CreateTestCasePayload", + "description": "Autogenerated return type of CreateTestCase", + "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": "testCase", + "description": "The test case created", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Issue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "CurrentUserTodos", + "description": null, + "fields": [ + { + "name": "currentUserTodos", + "description": "Todos for the current user", + "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 + }, + { + "name": "state", + "description": "State of the todos", + "type": { + "kind": "ENUM", + "name": "TodoStateEnum", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TodoConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "Design", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Epic", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "EpicIssue", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Issue", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "MergeRequest", + "ofType": null + } + ] + }, + { + "kind": "INPUT_OBJECT", "name": "DastOnDemandScanCreateInput", "description": "Autogenerated input type of DastOnDemandScanCreate", "fields": null, @@ -7376,6 +8433,16 @@ "defaultValue": null }, { + "name": "dastScannerProfileId", + "description": "ID of the scanner profile to be used for the scan.", + "type": { + "kind": "SCALAR", + "name": "DastScannerProfileID", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -7477,10 +8544,24 @@ { "kind": "OBJECT", "name": "DastScannerProfile", - "description": "Represents a DAST scanner profile.", + "description": "Represents a DAST scanner profile", "fields": [ { - "name": "id", + "name": "editPath", + "description": "Relative web path to the edit page of a scanner profile", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalId", "description": "ID of the DAST scanner profile", "args": [ @@ -7490,7 +8571,7 @@ "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "DastScannerProfileID", "ofType": null } }, @@ -7498,6 +8579,24 @@ "deprecationReason": null }, { + "name": "id", + "description": "ID of the DAST scanner profile. Deprecated in 13.4: Use `global_id`", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "Use `global_id`. Deprecated in 13.4" + }, + { "name": "profileName", "description": "Name of the DAST scanner profile", "args": [ @@ -7513,7 +8612,7 @@ }, { "name": "spiderTimeout", - "description": "The maximum number of seconds allowed for the spider to traverse the site", + "description": "The maximum number of minutes allowed for the spider to traverse the site", "args": [ ], @@ -7650,7 +8749,7 @@ }, { "name": "spiderTimeout", - "description": "The maximum number of seconds allowed for the spider to traverse the site.", + "description": "The maximum number of minutes allowed for the spider to traverse the site.", "type": { "kind": "SCALAR", "name": "Int", @@ -7729,16 +8828,132 @@ "deprecationReason": null }, { - "name": "id", + "name": "globalId", "description": "ID of the scanner profile.", "args": [ ], "type": { "kind": "SCALAR", + "name": "DastScannerProfileID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "ID of the scanner profile.. Deprecated in 13.4: Use `global_id`", + "args": [ + + ], + "type": { + "kind": "SCALAR", "name": "ID", "ofType": null }, + "isDeprecated": true, + "deprecationReason": "Use `global_id`. Deprecated in 13.4" + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DastScannerProfileDeleteInput", + "description": "Autogenerated input type of DastScannerProfileDelete", + "fields": null, + "inputFields": [ + { + "name": "fullPath", + "description": "Full path for the project the scanner profile belongs to.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "id", + "description": "ID of the scanner profile to be deleted.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DastScannerProfileID", + "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": "DastScannerProfileDeletePayload", + "description": "Autogenerated return type of DastScannerProfileDelete", + "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 } @@ -7796,9 +9011,177 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "DastScannerProfileID", + "description": "Identifier of DastScannerProfile", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DastScannerProfileUpdateInput", + "description": "Autogenerated input type of DastScannerProfileUpdate", + "fields": null, + "inputFields": [ + { + "name": "fullPath", + "description": "The project the scanner profile belongs to.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "id", + "description": "ID of the scanner profile to be updated.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DastScannerProfileID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "profileName", + "description": "The name of the scanner profile.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "spiderTimeout", + "description": "The maximum number of minutes allowed for the spider to traverse the site.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "targetTimeout", + "description": "The maximum number of seconds allowed for the site under test to respond to a request.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "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": "DastScannerProfileUpdatePayload", + "description": "Autogenerated return type of DastScannerProfileUpdate", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "ID of the scanner profile.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "DastScannerProfileID", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "DastSiteProfile", - "description": "Represents a DAST Site Profile.", + "description": "Represents a DAST Site Profile", "fields": [ { "name": "editPath", @@ -8464,7 +9847,7 @@ "inputFields": [ { "name": "id", - "description": "The global id of the annotation to delete", + "description": "The global ID of the annotation to delete", "type": { "kind": "NON_NULL", "name": null, @@ -8547,7 +9930,7 @@ { "kind": "OBJECT", "name": "DeleteJobsResponse", - "description": "The response from the AdminSidekiqQueuesDeleteJobs mutation.", + "description": "The response from the AdminSidekiqQueuesDeleteJobs mutation", "fields": [ { "name": "completed", @@ -8605,6 +9988,73 @@ "description": "A single design", "fields": [ { + "name": "currentUserTodos", + "description": "Todos for the current user", + "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 + }, + { + "name": "state", + "description": "State of the todos", + "type": { + "kind": "ENUM", + "name": "TodoStateEnum", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TodoConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "diffRefs", "description": "The diff refs for this design", "args": [ @@ -8983,6 +10433,11 @@ "kind": "INTERFACE", "name": "DesignFields", "ofType": null + }, + { + "kind": "INTERFACE", + "name": "CurrentUserTodos", + "ofType": null } ], "enumValues": null, @@ -8991,11 +10446,11 @@ { "kind": "OBJECT", "name": "DesignAtVersion", - "description": "A design pinned to a specific version. The image field reflects the design as of the associated version.", + "description": "A design pinned to a specific version. The image field reflects the design as of the associated version", "fields": [ { "name": "design", - "description": "The underlying design.", + "description": "The underlying design", "args": [ ], @@ -9332,7 +10787,7 @@ { "kind": "OBJECT", "name": "DesignCollection", - "description": "A collection of designs.", + "description": "A collection of designs", "fields": [ { "name": "design", @@ -10869,6 +12324,108 @@ }, { "kind": "INPUT_OBJECT", + "name": "DestroyBoardInput", + "description": "Autogenerated input type of DestroyBoard", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "The global ID of the board to destroy", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BoardID", + "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": "DestroyBoardPayload", + "description": "Autogenerated return type of DestroyBoard", + "fields": [ + { + "name": "board", + "description": "The board after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Board", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", "name": "DestroyNoteInput", "description": "Autogenerated input type of DestroyNote", "fields": null, @@ -12801,7 +14358,7 @@ { "kind": "OBJECT", "name": "Epic", - "description": "Represents an epic.", + "description": "Represents an epic", "fields": [ { "name": "author", @@ -13043,6 +14600,73 @@ "deprecationReason": null }, { + "name": "currentUserTodos", + "description": "Todos for the current user", + "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 + }, + { + "name": "state", + "description": "State of the todos", + "type": { + "kind": "ENUM", + "name": "TodoStateEnum", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TodoConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "descendantCounts", "description": "Number of open and closed descendant epics and issues", "args": [ @@ -13821,6 +15445,11 @@ "kind": "INTERFACE", "name": "Noteable", "ofType": null + }, + { + "kind": "INTERFACE", + "name": "CurrentUserTodos", + "ofType": null } ], "enumValues": null, @@ -14054,7 +15683,7 @@ { "kind": "OBJECT", "name": "EpicDescendantCount", - "description": "Counts of descendent epics.", + "description": "Counts of descendent epics", "fields": [ { "name": "closedEpics", @@ -14262,11 +15891,35 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "EpicID", + "description": "Identifier of Epic", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "EpicIssue", "description": "Relationship between an epic and an issue", "fields": [ { + "name": "alertManagementAlert", + "description": "Alert associated to this issue", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "AlertManagementAlert", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "assignees", "description": "Assignees of the issue", "args": [ @@ -14406,6 +16059,73 @@ "deprecationReason": null }, { + "name": "currentUserTodos", + "description": "Todos for the current user", + "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 + }, + { + "name": "state", + "description": "State of the todos", + "type": { + "kind": "ENUM", + "name": "TodoStateEnum", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TodoConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "description", "description": "Description of the issue", "args": [ @@ -14893,6 +16613,20 @@ "deprecationReason": null }, { + "name": "severity", + "description": "Severity level of the incident", + "args": [ + + ], + "type": { + "kind": "ENUM", + "name": "IssuableSeverity", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "state", "description": "State of the issue", "args": [ @@ -15171,6 +16905,11 @@ "kind": "INTERFACE", "name": "Noteable", "ofType": null + }, + { + "kind": "INTERFACE", + "name": "CurrentUserTodos", + "ofType": null } ], "enumValues": null, @@ -15631,7 +17370,7 @@ { "kind": "ENUM", "name": "EpicState", - "description": "State of an epic.", + "description": "State of an epic", "fields": null, "inputFields": null, "interfaces": null, @@ -15838,6 +17577,29 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "EpicWildcardId", + "description": "Epic ID wildcard values", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "NONE", + "description": "No epic is assigned", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ANY", + "description": "Any epic is assigned", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "SCALAR", "name": "Float", "description": "Represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", @@ -15956,7 +17718,7 @@ }, { "name": "packageFileRegistries", - "description": "Package file registries of the GeoNode. Available only when feature flag `geo_self_service_framework` is enabled", + "description": "Package file registries of the GeoNode. Available only when feature flag `geo_package_file_replication` is enabled", "args": [ { "name": "ids", @@ -16157,6 +17919,77 @@ "deprecationReason": null }, { + "name": "terraformStateRegistries", + "description": "Find terraform state registries on this Geo node. Available only when feature flag `geo_terraform_state_replication` is enabled", + "args": [ + { + "name": "ids", + "description": "Filters registries by their ID", + "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": { + "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": "TerraformStateRegistryConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "url", "description": "The user-facing URL for this Geo node", "args": [ @@ -16843,6 +18676,69 @@ "deprecationReason": null }, { + "name": "groupMembers", + "description": "A membership of a user within this group", + "args": [ + { + "name": "search", + "description": "Search query", + "type": { + "kind": "SCALAR", + "name": "String", + "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": "GroupMemberConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "groupTimelogsEnabled", "description": "Indicates if Group timelogs are enabled for namespace", "args": [ @@ -17584,6 +19480,26 @@ "defaultValue": "false" }, { + "name": "search", + "description": "Search project with most similar names or paths", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": "null" + }, + { + "name": "sort", + "description": "Sort projects by this criteria", + "type": { + "kind": "ENUM", + "name": "NamespaceProjectSort", + "ofType": null + }, + "defaultValue": "null" + }, + { "name": "hasVulnerabilities", "description": "Returns only the projects which have vulnerabilities", "type": { @@ -17982,6 +19898,36 @@ "defaultValue": null }, { + "name": "sort", + "description": "List vulnerabilities by sort order", + "type": { + "kind": "ENUM", + "name": "VulnerabilitySort", + "ofType": null + }, + "defaultValue": "severity_desc" + }, + { + "name": "hasResolution", + "description": "Returns only the vulnerabilities which have been resolved on default branch", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "hasIssues", + "description": "Returns only the vulnerabilities which have linked issues", + "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": { @@ -18272,6 +20218,109 @@ "deprecationReason": null }, { + "name": "vulnerabilitySeveritiesCount", + "description": "Counts for each vulnerability severity in the group and its subgroups", + "args": [ + { + "name": "projectId", + "description": "Filter vulnerabilities by project", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "reportType", + "description": "Filter vulnerabilities by report type", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilityReportType", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "severity", + "description": "Filter vulnerabilities by severity", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilitySeverity", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "state", + "description": "Filter vulnerabilities by state", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilityState", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "scanner", + "description": "Filter vulnerabilities by scanner", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilitySeveritiesCount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "webUrl", "description": "Web URL of the group", "args": [ @@ -18300,7 +20349,7 @@ { "kind": "OBJECT", "name": "GroupMember", - "description": "Represents a Group Member", + "description": "Represents a Group Membership", "fields": [ { "name": "accessLevel", @@ -18373,6 +20422,24 @@ "deprecationReason": null }, { + "name": "id", + "description": "ID of the member", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updatedAt", "description": "Date and time the membership was last updated", "args": [ @@ -18387,6 +20454,24 @@ "deprecationReason": null }, { + "name": "user", + "description": "User that is associated with the member object", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "userPermissions", "description": "Permissions for the current user on the resource", "args": [ @@ -18748,6 +20833,284 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "vulnerabilitySeveritiesCount", + "description": "Counts for each vulnerability severity from projects selected in Instance Security Dashboard", + "args": [ + { + "name": "projectId", + "description": "Filter vulnerabilities by project", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "reportType", + "description": "Filter vulnerabilities by report type", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilityReportType", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "severity", + "description": "Filter vulnerabilities by severity", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilitySeverity", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "state", + "description": "Filter vulnerabilities by state", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilityState", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "scanner", + "description": "Filter vulnerabilities by scanner", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilitySeveritiesCount", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InstanceStatisticsMeasurement", + "description": "Represents a recorded measurement (object count) for the Admins", + "fields": [ + { + "name": "count", + "description": "Object count", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": "The type of objects being measured", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "MeasurementIdentifier", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "recordedAt", + "description": "The time the measurement was recorded", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "InstanceStatisticsMeasurementConnection", + "description": "The connection type for InstanceStatisticsMeasurement.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "InstanceStatisticsMeasurementEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "InstanceStatisticsMeasurement", + "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": "InstanceStatisticsMeasurementEdge", + "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": "InstanceStatisticsMeasurement", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -18769,6 +21132,47 @@ }, { "kind": "ENUM", + "name": "IssuableSeverity", + "description": "Incident severity", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "UNKNOWN", + "description": "Unknown severity", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LOW", + "description": "Low severity", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MEDIUM", + "description": "Medium severity", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "HIGH", + "description": "High severity", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CRITICAL", + "description": "Critical severity", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", "name": "IssuableState", "description": "State of a GitLab issue or merge request", "fields": null, @@ -18808,6 +21212,20 @@ "description": null, "fields": [ { + "name": "alertManagementAlert", + "description": "Alert associated to this issue", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "AlertManagementAlert", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "assignees", "description": "Assignees of the issue", "args": [ @@ -18947,6 +21365,73 @@ "deprecationReason": null }, { + "name": "currentUserTodos", + "description": "Todos for the current user", + "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 + }, + { + "name": "state", + "description": "State of the todos", + "type": { + "kind": "ENUM", + "name": "TodoStateEnum", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TodoConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "description", "description": "Description of the issue", "args": [ @@ -19406,6 +21891,20 @@ "deprecationReason": null }, { + "name": "severity", + "description": "Severity level of the incident", + "args": [ + + ], + "type": { + "kind": "ENUM", + "name": "IssuableSeverity", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "state", "description": "State of the issue", "args": [ @@ -19684,6 +22183,11 @@ "kind": "INTERFACE", "name": "Noteable", "ofType": null + }, + { + "kind": "INTERFACE", + "name": "CurrentUserTodos", + "ofType": null } ], "enumValues": null, @@ -19820,6 +22324,16 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "IssueID", + "description": "Identifier of Issue", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "INPUT_OBJECT", "name": "IssueMoveListInput", "description": "Autogenerated input type of IssueMoveList", @@ -19889,7 +22403,7 @@ }, { "name": "moveBeforeId", - "description": "ID of issue before which the current issue will be positioned at", + "description": "ID of issue that should be placed before the current issue", "type": { "kind": "SCALAR", "name": "ID", @@ -19899,7 +22413,7 @@ }, { "name": "moveAfterId", - "description": "ID of issue after which the current issue will be positioned at", + "description": "ID of issue that should be placed after the current issue", "type": { "kind": "SCALAR", "name": "ID", @@ -19908,6 +22422,16 @@ "defaultValue": null }, { + "name": "epicId", + "description": "The ID of the parent epic. NULL when removing the association", + "type": { + "kind": "SCALAR", + "name": "EpicID", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -20938,6 +23462,136 @@ }, { "kind": "INPUT_OBJECT", + "name": "IssueSetSeverityInput", + "description": "Autogenerated input type of IssueSetSeverity", + "fields": null, + "inputFields": [ + { + "name": "projectPath", + "description": "The project the issue to mutate is in", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "iid", + "description": "The IID of the issue to mutate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "severity", + "description": "Set the incident severity level.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "IssuableSeverity", + "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": "IssueSetSeverityPayload", + "description": "Autogenerated return type of IssueSetSeverity", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errors", + "description": "Errors encountered during execution of the mutation.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issue", + "description": "The issue after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Issue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", "name": "IssueSetSubscriptionInput", "description": "Autogenerated input type of IssueSetSubscription", "fields": null, @@ -21335,7 +23989,7 @@ { "kind": "OBJECT", "name": "IssueStatusCountsType", - "description": "Represents total number of issues for the represented statuses.", + "description": "Represents total number of issues for the represented statuses", "fields": [ { "name": "all", @@ -21406,6 +24060,12 @@ "description": "Incident issue type", "isDeprecated": false, "deprecationReason": null + }, + { + "name": "TEST_CASE", + "description": "Test Case issue type", + "isDeprecated": false, + "deprecationReason": null } ], "possibleTypes": null @@ -21413,9 +24073,31 @@ { "kind": "OBJECT", "name": "Iteration", - "description": "Represents an iteration object.", + "description": "Represents an iteration object", "fields": [ { + "name": "burnupTimeSeries", + "description": "Daily scope and completed totals for burnup charts", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BurnupChartDailyTotals", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "createdAt", "description": "Timestamp of iteration creation", "args": [ @@ -21646,7 +24328,11 @@ ], "inputFields": null, "interfaces": [ - + { + "kind": "INTERFACE", + "name": "TimeboxBurnupTimeSeriesInterface", + "ofType": null + } ], "enumValues": null, "possibleTypes": null @@ -22659,7 +25345,7 @@ }, { "name": "jiraAccountId", - "description": "Account id of the Jira user", + "description": "Account ID of the Jira user", "args": [ ], @@ -23117,6 +25803,53 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "MeasurementIdentifier", + "description": "Possible identifier types for a measurement", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PROJECTS", + "description": "Project count", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "USERS", + "description": "User count", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ISSUES", + "description": "Issue count", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MERGE_REQUESTS", + "description": "Merge request count", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "GROUPS", + "description": "Group count", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PIPELINES", + "description": "Pipeline count", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "INTERFACE", "name": "MemberInterface", "description": null, @@ -23178,6 +25911,24 @@ "deprecationReason": null }, { + "name": "id", + "description": "ID of the member", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "updatedAt", "description": "Date and time the membership was last updated", "args": [ @@ -23190,6 +25941,24 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "user", + "description": "User that is associated with the member object", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -23210,6 +25979,118 @@ }, { "kind": "OBJECT", + "name": "MemberInterfaceConnection", + "description": "The connection type for MemberInterface.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MemberInterfaceEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "MemberInterface", + "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": "MemberInterfaceEdge", + "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": "INTERFACE", + "name": "MemberInterface", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "MergeRequest", "description": null, "fields": [ @@ -23228,6 +26109,52 @@ "deprecationReason": null }, { + "name": "approvalsLeft", + "description": "Number of approvals left", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "approvalsRequired", + "description": "Number of approvals required", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "approved", + "description": "Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured.", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "approvedBy", "description": "Users who approved the merge request", "args": [ @@ -23348,6 +26275,24 @@ "deprecationReason": null }, { + "name": "autoMergeEnabled", + "description": "Indicates if auto merge is enabled for the merge request", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "commitCount", "description": "Number of commits in the merge request", "args": [ @@ -23362,6 +26307,24 @@ "deprecationReason": null }, { + "name": "conflicts", + "description": "Indicates if the merge request has conflicts", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "createdAt", "description": "Timestamp of when the merge request was created", "args": [ @@ -23380,6 +26343,73 @@ "deprecationReason": null }, { + "name": "currentUserTodos", + "description": "Todos for the current user", + "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 + }, + { + "name": "state", + "description": "State of the todos", + "type": { + "kind": "ENUM", + "name": "TodoStateEnum", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TodoConnection", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "defaultMergeCommitMessage", "description": "Default merge commit message of the merge request", "args": [ @@ -24034,13 +27064,9 @@ } ], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PipelineConnection", - "ofType": null - } + "kind": "OBJECT", + "name": "PipelineConnection", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -24537,6 +27563,11 @@ "kind": "INTERFACE", "name": "Noteable", "ofType": null + }, + { + "kind": "INTERFACE", + "name": "CurrentUserTodos", + "ofType": null } ], "enumValues": null, @@ -24868,6 +27899,24 @@ "deprecationReason": null }, { + "name": "canMerge", + "description": "Indicates the user can perform `can_merge` on this resource", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "cherryPickOnCurrentMergeRequest", "description": "Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource", "args": [ @@ -25815,6 +28864,89 @@ }, { "kind": "ENUM", + "name": "MergeRequestSort", + "description": "Values for sorting merge requests", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "updated_desc", + "description": "Updated at descending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updated_asc", + "description": "Updated at ascending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "created_desc", + "description": "Created at descending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "created_asc", + "description": "Created at ascending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIORITY_ASC", + "description": "Priority by ascending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PRIORITY_DESC", + "description": "Priority by descending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LABEL_PRIORITY_ASC", + "description": "Label priority by ascending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LABEL_PRIORITY_DESC", + "description": "Label priority by descending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MILESTONE_DUE_ASC", + "description": "Milestone due date by ascending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MILESTONE_DUE_DESC", + "description": "Milestone due date by descending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MERGED_AT_ASC", + "description": "Merge time by ascending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MERGED_AT_DESC", + "description": "Merge time by descending order", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", "name": "MergeRequestState", "description": "State of a GitLab merge request", "fields": null, @@ -26377,9 +29509,31 @@ { "kind": "OBJECT", "name": "Milestone", - "description": "Represents a milestone.", + "description": "Represents a milestone", "fields": [ { + "name": "burnupTimeSeries", + "description": "Daily scope and completed totals for burnup charts", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BurnupChartDailyTotals", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "createdAt", "description": "Timestamp of milestone creation", "args": [ @@ -26600,7 +29754,11 @@ ], "inputFields": null, "interfaces": [ - + { + "kind": "INTERFACE", + "name": "TimeboxBurnupTimeSeriesInterface", + "ofType": null + } ], "enumValues": null, "possibleTypes": null @@ -27090,6 +30248,87 @@ "deprecationReason": null }, { + "name": "clusterAgentDelete", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ClusterAgentDeleteInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ClusterAgentDeletePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusterAgentTokenCreate", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ClusterAgentTokenCreateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ClusterAgentTokenCreatePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusterAgentTokenDelete", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ClusterAgentTokenDeleteInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ClusterAgentTokenDeletePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "commitCreate", "description": null, "args": [ @@ -27441,6 +30680,33 @@ "deprecationReason": null }, { + "name": "createTestCase", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateTestCaseInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "CreateTestCasePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "dastOnDemandScanCreate", "description": null, "args": [ @@ -27495,6 +30761,60 @@ "deprecationReason": null }, { + "name": "dastScannerProfileDelete", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DastScannerProfileDeleteInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DastScannerProfileDeletePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dastScannerProfileUpdate", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DastScannerProfileUpdateInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DastScannerProfileUpdatePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "dastSiteProfileCreate", "description": null, "args": [ @@ -27684,6 +31004,33 @@ "deprecationReason": null }, { + "name": "destroyBoard", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DestroyBoardInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DestroyBoardPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "destroyNote", "description": null, "args": [ @@ -28062,6 +31409,33 @@ "deprecationReason": null }, { + "name": "issueSetSeverity", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "IssueSetSeverityInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "IssueSetSeverityPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "issueSetSubscription", "description": null, "args": [ @@ -28440,6 +31814,87 @@ "deprecationReason": null }, { + "name": "pipelineCancel", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PipelineCancelInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PipelineCancelPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelineDestroy", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PipelineDestroyInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PipelineDestroyPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelineRetry", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PipelineRetryInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PipelineRetryPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "removeAwardEmoji", "description": null, "args": [ @@ -28517,8 +31972,8 @@ "name": "RunDASTScanPayload", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "Use DastOnDemandScanCreate. Deprecated in 13.4" }, { "name": "todoMarkDone", @@ -28951,6 +32406,33 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "vulnerabilityResolve", + "description": null, + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VulnerabilityResolveInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "VulnerabilityResolvePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -28963,7 +32445,7 @@ { "kind": "ENUM", "name": "MutationOperationMode", - "description": "Different toggles for changing mutator behavior.", + "description": "Different toggles for changing mutator behavior", "fields": null, "inputFields": null, "interfaces": null, @@ -29159,6 +32641,26 @@ "defaultValue": "false" }, { + "name": "search", + "description": "Search project with most similar names or paths", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": "null" + }, + { + "name": "sort", + "description": "Sort projects by this criteria", + "type": { + "kind": "ENUM", + "name": "NamespaceProjectSort", + "ofType": null + }, + "defaultValue": "null" + }, + { "name": "hasVulnerabilities", "description": "Returns only the projects which have vulnerabilities", "type": { @@ -29514,8 +33016,25 @@ "possibleTypes": null }, { + "kind": "ENUM", + "name": "NamespaceProjectSort", + "description": "Values for sorting projects", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "SIMILARITY", + "description": "Most similar to the search query", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { "kind": "INPUT_OBJECT", - "name": "NegatedBoardEpicIssueInput", + "name": "NegatedBoardIssueInput", "description": null, "fields": null, "inputFields": [ @@ -29578,8 +33097,8 @@ "defaultValue": null }, { - "name": "epicId", - "description": "Filter by epic ID", + "name": "myReactionEmoji", + "description": "Filter by reaction emoji", "type": { "kind": "SCALAR", "name": "String", @@ -29588,11 +33107,11 @@ "defaultValue": null }, { - "name": "myReactionEmoji", - "description": "Filter by reaction emoji", + "name": "epicId", + "description": "Filter by epic ID. Incompatible with epicWildcardId", "type": { "kind": "SCALAR", - "name": "String", + "name": "ID", "ofType": null }, "defaultValue": null @@ -30796,6 +34315,12 @@ "description": "Packages from the composer package manager", "isDeprecated": false, "deprecationReason": null + }, + { + "name": "GENERIC", + "description": "Packages from the generic package manager", + "isDeprecated": false, + "deprecationReason": null } ], "possibleTypes": null @@ -30897,6 +34422,24 @@ "deprecationReason": null }, { + "name": "cancelable", + "description": "Specifies if a pipeline can be canceled", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "committedAt", "description": "Timestamp of the pipeline's commit", "args": [ @@ -31039,6 +34582,24 @@ "deprecationReason": null }, { + "name": "retryable", + "description": "Specifies if a pipeline can be retried", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "securityReportSummary", "description": "Vulnerability and scanned resource counts for each security scanner of the pipeline", "args": [ @@ -31214,6 +34775,94 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "PipelineCancelInput", + "description": "Autogenerated input type of PipelineCancel", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "The id of the pipeline to mutate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CiPipelineID", + "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": "PipelineCancelPayload", + "description": "Autogenerated return type of PipelineCancel", + "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": "ENUM", "name": "PipelineConfigSourceEnum", "description": null, @@ -31358,6 +35007,94 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "PipelineDestroyInput", + "description": "Autogenerated input type of PipelineDestroy", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "The id of the pipeline to mutate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CiPipelineID", + "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": "PipelineDestroyPayload", + "description": "Autogenerated return type of PipelineDestroy", + "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": "PipelineEdge", "description": "An edge in a connection.", @@ -31470,6 +35207,108 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "PipelineRetryInput", + "description": "Autogenerated input type of PipelineRetry", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "The id of the pipeline to mutate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CiPipelineID", + "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": "PipelineRetryPayload", + "description": "Autogenerated return type of PipelineRetry", + "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": "pipeline", + "description": "The pipeline after mutation", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Pipeline", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "ENUM", "name": "PipelineStatusEnum", "description": null, @@ -31879,6 +35718,86 @@ "deprecationReason": null }, { + "name": "clusterAgent", + "description": "Find a single cluster agent by name", + "args": [ + { + "name": "name", + "description": "Name of the cluster agent", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ClusterAgent", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusterAgents", + "description": "Cluster agents associated with the project", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ClusterAgentConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "complianceFrameworks", "description": "Compliance frameworks associated with the project", "args": [ @@ -32027,6 +35946,33 @@ "deprecationReason": null }, { + "name": "dastSiteProfile", + "description": "DAST Site Profile associated with the project", + "args": [ + { + "name": "id", + "description": "ID of the site profile", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DastSiteProfileID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "DastSiteProfile", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "dastSiteProfiles", "description": "DAST Site Profiles associated with the project", "args": [ @@ -33468,6 +37414,46 @@ "defaultValue": null }, { + "name": "milestoneTitle", + "description": "Title of the milestone", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "sort", + "description": "Sort merge requests by this criteria", + "type": { + "kind": "ENUM", + "name": "MergeRequestSort", + "ofType": null + }, + "defaultValue": "created_desc" + }, + { + "name": "assigneeUsername", + "description": "Username of the assignee", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "authorUsername", + "description": "Username of the author", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { "name": "after", "description": "Returns the elements in the list that come after the specified cursor.", "type": { @@ -33999,7 +37985,7 @@ ], "type": { "kind": "OBJECT", - "name": "ProjectMemberConnection", + "name": "MemberInterfaceConnection", "ofType": null }, "isDeprecated": false, @@ -34559,7 +38545,7 @@ }, { "name": "sharedRunnersEnabled", - "description": "Indicates if Shared Runners are enabled for the project", + "description": "Indicates if shared runners are enabled for the project", "args": [ ], @@ -34867,6 +38853,36 @@ "defaultValue": null }, { + "name": "sort", + "description": "List vulnerabilities by sort order", + "type": { + "kind": "ENUM", + "name": "VulnerabilitySort", + "ofType": null + }, + "defaultValue": "severity_desc" + }, + { + "name": "hasResolution", + "description": "Returns only the vulnerabilities which have been resolved on default branch", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "hasIssues", + "description": "Returns only the vulnerabilities which have linked issues", + "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": { @@ -34916,6 +38932,87 @@ "deprecationReason": null }, { + "name": "vulnerabilitiesCountByDay", + "description": "Number of vulnerabilities per day for the project", + "args": [ + { + "name": "startDate", + "description": "First day for which to fetch vulnerability history", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ISO8601Date", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "endDate", + "description": "Last day for which to fetch vulnerability history", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ISO8601Date", + "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": "VulnerabilitiesCountByDayConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "vulnerabilityScanners", "description": "Vulnerability scanners reported on the project vulnerabilties", "args": [ @@ -34970,9 +39067,98 @@ }, { "name": "vulnerabilitySeveritiesCount", - "description": "Counts for each severity of vulnerability of the project", + "description": "Counts for each vulnerability severity in the project", "args": [ - + { + "name": "projectId", + "description": "Filter vulnerabilities by project", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "reportType", + "description": "Filter vulnerabilities by report type", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilityReportType", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "severity", + "description": "Filter vulnerabilities by severity", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilitySeverity", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "state", + "description": "Filter vulnerabilities by state", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "VulnerabilityState", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "scanner", + "description": "Filter vulnerabilities by scanner", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + } ], "type": { "kind": "OBJECT", @@ -35133,7 +39319,7 @@ { "kind": "OBJECT", "name": "ProjectMember", - "description": "Represents a Project Member", + "description": "Represents a Project Membership", "fields": [ { "name": "accessLevel", @@ -36538,6 +40724,100 @@ "deprecationReason": null }, { + "name": "instanceStatisticsMeasurements", + "description": "Get statistics on the instance", + "args": [ + { + "name": "identifier", + "description": "The type of measurement/statistics to retrieve", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "MeasurementIdentifier", + "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": "InstanceStatisticsMeasurementConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issue", + "description": "Find an issue", + "args": [ + { + "name": "id", + "description": "The global ID of the Issue", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "IssueID", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "Issue", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "iteration", "description": "Find an iteration", "args": [ @@ -36684,6 +40964,24 @@ "defaultValue": null }, { + "name": "ids", + "description": "Filter projects by IDs", + "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": { @@ -37080,6 +41378,36 @@ "defaultValue": null }, { + "name": "sort", + "description": "List vulnerabilities by sort order", + "type": { + "kind": "ENUM", + "name": "VulnerabilitySort", + "ofType": null + }, + "defaultValue": "severity_desc" + }, + { + "name": "hasResolution", + "description": "Returns only the vulnerabilities which have been resolved on default branch", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "hasIssues", + "description": "Returns only the vulnerabilities which have linked issues", + "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": { @@ -37301,7 +41629,7 @@ { "kind": "ENUM", "name": "RegistryState", - "description": "State of a Geo registry.", + "description": "State of a Geo registry", "fields": null, "inputFields": null, "interfaces": null, @@ -37597,6 +41925,20 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "upcomingRelease", + "description": "Indicates the release is an upcoming release", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -37612,6 +41954,20 @@ "description": "Represents an asset link associated with a release", "fields": [ { + "name": "directAssetUrl", + "description": "Direct asset URL of the link", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "external", "description": "Indicates the link points to an external resource", "args": [ @@ -37979,6 +42335,24 @@ "description": "The connection type for Release.", "fields": [ { + "name": "count", + "description": "Total count of collection", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "edges", "description": "A list of edges.", "args": [ @@ -38880,6 +43254,20 @@ "deprecationReason": null }, { + "name": "lastTestReportState", + "description": "Latest requirement test report state", + "args": [ + + ], + "type": { + "kind": "ENUM", + "name": "TestReportState", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "project", "description": "Project to which the requirement belongs", "args": [ @@ -39277,7 +43665,7 @@ { "kind": "OBJECT", "name": "RequirementStatesCount", - "description": "Counts of requirements by their state.", + "description": "Counts of requirements by their state", "fields": [ { "name": "archived", @@ -39863,7 +44251,7 @@ "fields": [ { "name": "description", - "description": "Analyzer description that is displayed on the form.", + "description": "Analyzer description that is displayed on the form", "args": [ ], @@ -39877,7 +44265,7 @@ }, { "name": "enabled", - "description": "Indicates whether an analyzer is enabled.", + "description": "Indicates whether an analyzer is enabled", "args": [ ], @@ -39891,7 +44279,7 @@ }, { "name": "label", - "description": "Analyzer label used in the config UI.", + "description": "Analyzer label used in the config UI", "args": [ ], @@ -39905,7 +44293,7 @@ }, { "name": "name", - "description": "Name of the analyzer.", + "description": "Name of the analyzer", "args": [ ], @@ -39916,6 +44304,59 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "variables", + "description": "List of supported variables", + "args": [ + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "SastCiConfigurationEntityConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -40314,6 +44755,106 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "SastCiConfigurationEntityInput", + "description": "Represents an entity in SAST CI configuration", + "fields": null, + "inputFields": [ + { + "name": "field", + "description": "CI keyword of entity", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "defaultValue", + "description": "Default value that is used if value is empty", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "value", + "description": "Current value of the entity", + "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": "SastCiConfigurationInput", + "description": "Represents a CI configuration of SAST", + "fields": null, + "inputFields": [ + { + "name": "global", + "description": "List of global entities related to SAST configuration", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SastCiConfigurationEntityInput", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "pipeline", + "description": "List of pipeline entities related to SAST configuration", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SastCiConfigurationEntityInput", + "ofType": null + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "SastCiConfigurationOptionsEntity", "description": "Represents an entity for options in SAST CI configuration", @@ -40856,7 +45397,7 @@ { "kind": "ENUM", "name": "SecurityScannerType", - "description": "The type of the security scanner.", + "description": "The type of the security scanner", "fields": null, "inputFields": null, "interfaces": null, @@ -40982,7 +45523,7 @@ { "kind": "OBJECT", "name": "SentryDetailedError", - "description": "A Sentry error.", + "description": "A Sentry error", "fields": [ { "name": "count", @@ -41467,7 +46008,7 @@ { "kind": "OBJECT", "name": "SentryError", - "description": "A Sentry error. A simplified version of SentryDetailedError.", + "description": "A Sentry error. A simplified version of SentryDetailedError", "fields": [ { "name": "count", @@ -41790,7 +46331,7 @@ { "kind": "OBJECT", "name": "SentryErrorCollection", - "description": "An object containing a collection of Sentry errors, and a detailed error.", + "description": "An object containing a collection of Sentry errors, and a detailed error", "fields": [ { "name": "detailedError", @@ -41902,7 +46443,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", @@ -42105,7 +46646,7 @@ { "kind": "OBJECT", "name": "SentryErrorStackTrace", - "description": "An object containing a stack trace entry for a Sentry error.", + "description": "An object containing a stack trace entry for a Sentry error", "fields": [ { "name": "dateReceived", @@ -42229,7 +46770,7 @@ { "kind": "OBJECT", "name": "SentryErrorStackTraceEntry", - "description": "An object containing a stack trace entry for a Sentry error.", + "description": "An object containing a stack trace entry for a Sentry error", "fields": [ { "name": "col", @@ -42636,6 +47177,12 @@ "deprecationReason": null }, { + "name": "EWM_SERVICE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "EXTERNAL_WIKI_SERVICE", "description": null, "isDeprecated": false, @@ -44217,8 +48764,253 @@ }, { "kind": "OBJECT", + "name": "TerraformStateRegistry", + "description": "Represents the sync and verification state of a terraform state", + "fields": [ + { + "name": "createdAt", + "description": "Timestamp when the TerraformStateRegistry was created", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "ID of the TerraformStateRegistry", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastSyncFailure", + "description": "Error message during sync of the TerraformStateRegistry", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastSyncedAt", + "description": "Timestamp of the most recent successful sync of the TerraformStateRegistry", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "retryAt", + "description": "Timestamp after which the TerraformStateRegistry should be resynced", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "retryCount", + "description": "Number of consecutive failed sync attempts of the TerraformStateRegistry", + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "state", + "description": "Sync state of the TerraformStateRegistry", + "args": [ + + ], + "type": { + "kind": "ENUM", + "name": "RegistryState", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terraformStateId", + "description": "ID of the TerraformState", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TerraformStateRegistryConnection", + "description": "The connection type for TerraformStateRegistry.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TerraformStateRegistryEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TerraformStateRegistry", + "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": "TerraformStateRegistryEdge", + "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": "TerraformStateRegistry", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", "name": "TestReport", - "description": "Represents a requirement test report.", + "description": "Represents a requirement test report", "fields": [ { "name": "author", @@ -44442,6 +49234,50 @@ "possibleTypes": null }, { + "kind": "INTERFACE", + "name": "TimeboxBurnupTimeSeriesInterface", + "description": null, + "fields": [ + { + "name": "burnupTimeSeries", + "description": "Daily scope and completed totals for burnup charts", + "args": [ + + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BurnupChartDailyTotals", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "Iteration", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Milestone", + "ofType": null + } + ] + }, + { "kind": "OBJECT", "name": "Timelog", "description": null, @@ -44479,6 +49315,20 @@ "deprecationReason": null }, { + "name": "note", + "description": "The note where the quick action to add the logged time was executed", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Note", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "spentAt", "description": "Timestamp of when the time tracked was spent at", "args": [ @@ -44673,7 +49523,7 @@ }, { "name": "author", - "description": "The owner of this todo", + "description": "The author of this todo", "args": [ ], @@ -46877,7 +51727,7 @@ }, { "name": "confidential", - "description": "Indicates if the epic is confidential. Will be ignored if `confidential_epics` feature flag is disabled", + "description": "Indicates if the epic is confidential", "type": { "kind": "SCALAR", "name": "Boolean", @@ -47316,6 +52166,16 @@ "defaultValue": null }, { + "name": "epicId", + "description": "The ID of the parent epic. NULL when removing the association", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -47730,6 +52590,16 @@ "defaultValue": null }, { + "name": "lastTestReportState", + "description": "Creates a test report for the requirement with the given state", + "type": { + "kind": "ENUM", + "name": "TestReportState", + "ofType": null + }, + "defaultValue": null + }, + { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", "type": { @@ -47842,26 +52712,6 @@ "defaultValue": null }, { - "name": "fileName", - "description": "File name of the snippet", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "content", - "description": "Content of the snippet", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { "name": "description", "description": "Description of the snippet", "type": { @@ -48103,6 +52953,26 @@ "defaultValue": null }, { + "name": "milestoneTitle", + "description": "Title of the milestone", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "sort", + "description": "Sort merge requests by this criteria", + "type": { + "kind": "ENUM", + "name": "MergeRequestSort", + "ofType": null + }, + "defaultValue": "created_desc" + }, + { "name": "projectPath", "description": "The full-path of the project the authored merge requests should be in. Incompatible with projectId.", "type": { @@ -48278,6 +53148,26 @@ "defaultValue": null }, { + "name": "milestoneTitle", + "description": "Title of the milestone", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "sort", + "description": "Sort merge requests by this criteria", + "type": { + "kind": "ENUM", + "name": "MergeRequestSort", + "ofType": null + }, + "defaultValue": "created_desc" + }, + { "name": "projectPath", "description": "The full-path of the project the authored merge requests should be in. Incompatible with projectId.", "type": { @@ -48608,6 +53498,69 @@ "deprecationReason": null }, { + "name": "starredProjects", + "description": "Projects starred by the user", + "args": [ + { + "name": "search", + "description": "Search query", + "type": { + "kind": "SCALAR", + "name": "String", + "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": "ProjectConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "state", "description": "State of the user", "args": [ @@ -48997,6 +53950,16 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "UserID", + "description": "Identifier of User", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "UserPermissions", "description": null, @@ -49608,7 +54571,7 @@ { "kind": "OBJECT", "name": "Vulnerability", - "description": "Represents a vulnerability.", + "description": "Represents a vulnerability", "fields": [ { "name": "description", @@ -49625,6 +54588,24 @@ "deprecationReason": null }, { + "name": "detectedAt", + "description": "Timestamp of when the vulnerability was first detected", + "args": [ + + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { "name": "id", "description": "GraphQL ID of the vulnerability", "args": [ @@ -50077,9 +55058,19 @@ "possibleTypes": null }, { + "kind": "SCALAR", + "name": "VulnerabilityID", + "description": "Identifier of Vulnerability", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "VulnerabilityIdentifier", - "description": "Represents a vulnerability identifier.", + "description": "Represents a vulnerability identifier", "fields": [ { "name": "externalId", @@ -50148,7 +55139,7 @@ { "kind": "OBJECT", "name": "VulnerabilityIssueLink", - "description": "Represents an issue link of a vulnerability.", + "description": "Represents an issue link of a vulnerability", "fields": [ { "name": "id", @@ -50327,7 +55318,7 @@ { "kind": "ENUM", "name": "VulnerabilityIssueLinkType", - "description": "The type of the issue link related to a vulnerability.", + "description": "The type of the issue link related to a vulnerability", "fields": null, "inputFields": null, "interfaces": null, @@ -50962,7 +55953,7 @@ { "kind": "ENUM", "name": "VulnerabilityReportType", - "description": "The type of the security scan that found the vulnerability.", + "description": "The type of the security scan that found the vulnerability", "fields": null, "inputFields": null, "interfaces": null, @@ -51007,9 +55998,111 @@ "possibleTypes": null }, { + "kind": "INPUT_OBJECT", + "name": "VulnerabilityResolveInput", + "description": "Autogenerated input type of VulnerabilityResolve", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": "ID of the vulnerability to be resolveed", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VulnerabilityID", + "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": "VulnerabilityResolvePayload", + "description": "Autogenerated return type of VulnerabilityResolve", + "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": "vulnerability", + "description": "The vulnerability after state change", + "args": [ + + ], + "type": { + "kind": "OBJECT", + "name": "Vulnerability", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + + ], + "enumValues": null, + "possibleTypes": null + }, + { "kind": "OBJECT", "name": "VulnerabilityScanner", - "description": "Represents a vulnerability scanner.", + "description": "Represents a vulnerability scanner", "fields": [ { "name": "externalId", @@ -51287,7 +56380,7 @@ { "kind": "ENUM", "name": "VulnerabilitySeverity", - "description": "The severity of the vulnerability.", + "description": "The severity of the vulnerability", "fields": null, "inputFields": null, "interfaces": null, @@ -51333,8 +56426,31 @@ }, { "kind": "ENUM", + "name": "VulnerabilitySort", + "description": "Vulnerability sort values", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "severity_desc", + "description": "Severity in descending order", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "severity_asc", + "description": "Severity in ascending order", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "ENUM", "name": "VulnerabilityState", - "description": "The state of the vulnerability.", + "description": "The state of the vulnerability", "fields": null, "inputFields": null, "interfaces": null, diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 8ba1862b009..fc27298aff2 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -16,51 +16,62 @@ fields and methods on a model are available via GraphQL. CAUTION: **Caution:** Fields that are deprecated are marked with **{warning-solid}**. -## AccessLevel +## Object types -Represents the access level of a relationship between a User and object that it is related to +Object types represent the resources that GitLab's GraphQL API can return. +They contain _fields_. Each field has its own type, which will either be one of the +basic GraphQL [scalar types](https://graphql.org/learn/schema/#scalar-types) +(e.g.: `String` or `Boolean`) or other object types. -| Name | Type | Description | -| --- | ---- | ---------- | +For more information, see +[Object Types and Fields](https://graphql.org/learn/schema/#object-types-and-fields) +on `graphql.org`. + +### AccessLevel + +Represents the access level of a relationship between a User and object that it is related to. + +| Field | Type | Description | +| ----- | ---- | ----------- | | `integerValue` | Int | Integer representation of access level | | `stringValue` | AccessLevelEnum | String representation of access level | -## AddAwardEmojiPayload +### AddAwardEmojiPayload -Autogenerated return type of AddAwardEmoji +Autogenerated return type of AddAwardEmoji. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `awardEmoji` | AwardEmoji | The award emoji after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## AddProjectToSecurityDashboardPayload +### AddProjectToSecurityDashboardPayload -Autogenerated return type of AddProjectToSecurityDashboard +Autogenerated return type of AddProjectToSecurityDashboard. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## AdminSidekiqQueuesDeleteJobsPayload +### AdminSidekiqQueuesDeleteJobsPayload -Autogenerated return type of AdminSidekiqQueuesDeleteJobs +Autogenerated return type of AdminSidekiqQueuesDeleteJobs. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## AlertManagementAlert +### AlertManagementAlert -Describes an alert from the project's Alert Management +Describes an alert from the project's Alert Management. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createdAt` | Time | Timestamp the alert was created | | `description` | String | Description of the alert | | `details` | JSON | Alert details | @@ -81,12 +92,12 @@ Describes an alert from the project's Alert Management | `title` | String | Title of the alert | | `updatedAt` | Time | Timestamp the alert was last updated | -## AlertManagementAlertStatusCountsType +### AlertManagementAlertStatusCountsType -Represents total number of alerts for the represented categories +Represents total number of alerts for the represented categories. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `acknowledged` | Int | Number of alerts with status ACKNOWLEDGED for the project | | `all` | Int | Total number of alerts for the project | | `ignored` | Int | Number of alerts with status IGNORED for the project | @@ -94,36 +105,36 @@ Represents total number of alerts for the represented categories | `resolved` | Int | Number of alerts with status RESOLVED for the project | | `triggered` | Int | Number of alerts with status TRIGGERED for the project | -## AlertSetAssigneesPayload +### AlertSetAssigneesPayload -Autogenerated return type of AlertSetAssignees +Autogenerated return type of AlertSetAssignees. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `alert` | AlertManagementAlert | The alert after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue created after mutation | | `todo` | Todo | The todo after mutation | -## AlertTodoCreatePayload +### AlertTodoCreatePayload -Autogenerated return type of AlertTodoCreate +Autogenerated return type of AlertTodoCreate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `alert` | AlertManagementAlert | The alert after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue created after mutation | | `todo` | Todo | The todo after mutation | -## AwardEmoji +### AwardEmoji An emoji awarded by a user. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `description` | String! | The emoji description | | `emoji` | String! | The emoji as an icon | | `name` | String! | The emoji name | @@ -131,48 +142,48 @@ An emoji awarded by a user. | `unicodeVersion` | String! | The unicode version for this emoji | | `user` | User! | The user who awarded the emoji | -## AwardEmojiAddPayload +### AwardEmojiAddPayload -Autogenerated return type of AwardEmojiAdd +Autogenerated return type of AwardEmojiAdd. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `awardEmoji` | AwardEmoji | The award emoji after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## AwardEmojiRemovePayload +### AwardEmojiRemovePayload -Autogenerated return type of AwardEmojiRemove +Autogenerated return type of AwardEmojiRemove. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `awardEmoji` | AwardEmoji | The award emoji after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## AwardEmojiTogglePayload +### AwardEmojiTogglePayload -Autogenerated return type of AwardEmojiToggle +Autogenerated return type of AwardEmojiToggle. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `awardEmoji` | AwardEmoji | The award emoji after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `toggledOn` | Boolean! | Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. | -## BaseService +### BaseService -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `active` | Boolean | Indicates if the service is active | | `type` | String | Class name of the service | -## Blob +### Blob -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `flatPath` | String! | Flat path of the entry | | `id` | ID! | ID of the entry | | `lfsOid` | String | LFS ID of the blob | @@ -184,12 +195,12 @@ Autogenerated return type of AwardEmojiToggle | `webPath` | String | Web path of the blob | | `webUrl` | String | Web URL of the blob | -## Board +### Board -Represents a project or group board +Represents a project or group board. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `assignee` | User | The board assignee. | | `hideBacklogList` | Boolean | Whether or not backlog list is hidden. | | `hideClosedList` | Boolean | Whether or not closed list is hidden. | @@ -198,12 +209,12 @@ Represents a project or group board | `name` | String | Name of the board | | `weight` | Int | Weight of the board. | -## BoardList +### BoardList -Represents a list for an issue board +Represents a list for an issue board. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `assignee` | User | Assignee in the list | | `collapsed` | Boolean | Indicates if list is collapsed for this user | | `id` | ID! | ID (global ID) of the list | @@ -218,66 +229,115 @@ Represents a list for an issue board | `title` | String! | Title of the list | | `totalWeight` | Int | Total weight of all issues in the list | -## BoardListCreatePayload +### BoardListCreatePayload -Autogenerated return type of BoardListCreate +Autogenerated return type of BoardListCreate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## BoardListUpdateLimitMetricsPayload +### BoardListUpdateLimitMetricsPayload -Autogenerated return type of BoardListUpdateLimitMetrics +Autogenerated return type of BoardListUpdateLimitMetrics. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## Branch +### Branch -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `commit` | Commit | Commit for the branch | | `name` | String! | Name of the branch | -## CiGroup +### BurnupChartDailyTotals + +Represents the total number of issues and their weights for a particular day. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `completedCount` | Int! | Number of closed issues as of this day | +| `completedWeight` | Int! | Total weight of closed issues as of this day | +| `date` | ISO8601Date! | Date for burnup totals | +| `scopeCount` | Int! | Number of issues as of this day | +| `scopeWeight` | Int! | Total weight of issues as of this day | -| Name | Type | Description | -| --- | ---- | ---------- | +### CiGroup + +| Field | Type | Description | +| ----- | ---- | ----------- | | `name` | String | Name of the job group | | `size` | Int | Size of the group | -## CiJob +### CiJob -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `name` | String | Name of the job | -## CiStage +### CiStage -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `name` | String | Name of the stage | -## ClusterAgent +### ClusterAgent -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createdAt` | Time | Timestamp the cluster agent was created | | `id` | ID! | ID of the cluster agent | | `name` | String | Name of the cluster agent | | `project` | Project | The project this cluster agent is associated with | | `updatedAt` | Time | Timestamp the cluster agent was updated | -## Commit +### ClusterAgentDeletePayload + +Autogenerated return type of ClusterAgentDelete. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + +### ClusterAgentToken + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clusterAgent` | ClusterAgent | Cluster agent this token is associated with | +| `createdAt` | Time | Timestamp the token was created | +| `id` | ClustersAgentTokenID! | Global ID of the token | + +### ClusterAgentTokenCreatePayload + +Autogenerated return type of ClusterAgentTokenCreate. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `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 | + +### ClusterAgentTokenDeletePayload -| Name | Type | Description | -| --- | ---- | ---------- | +Autogenerated return type of ClusterAgentTokenDelete. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + +### Commit + +| Field | Type | Description | +| ----- | ---- | ----------- | | `author` | User | Author of the commit | | `authorGravatar` | String | Commit authors gravatar | | `authorName` | String | Commit authors name | @@ -294,40 +354,41 @@ Autogenerated return type of BoardListUpdateLimitMetrics | `webPath` | String! | Web path of the commit | | `webUrl` | String! | Web URL of the commit | -## CommitCreatePayload +### CommitCreatePayload -Autogenerated return type of CommitCreate +Autogenerated return type of CommitCreate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `commit` | Commit | The commit after mutation | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## ComplianceFramework +### ComplianceFramework -Represents a ComplianceFramework associated with a Project +Represents a ComplianceFramework associated with a Project. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `name` | ProjectSettingEnum! | Name of the compliance framework | -## ConfigureSastPayload +### ConfigureSastPayload -Autogenerated return type of ConfigureSast +Autogenerated return type of ConfigureSast. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `result` | JSON | JSON containing the status of MR creation. | +| `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 +### ContainerExpirationPolicy -A tag expiration policy designed to keep only the images that matter most +A tag expiration policy designed to keep only the images that matter most. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `cadence` | ContainerExpirationPolicyCadenceEnum! | This container expiration policy schedule | | `createdAt` | Time! | Timestamp of when the container expiration policy was created | | `enabled` | Boolean! | Indicates whether this container expiration policy is enabled | @@ -338,155 +399,187 @@ A tag expiration policy designed to keep only the images that matter most | `olderThan` | ContainerExpirationPolicyOlderThanEnum | Tags older that this will expire | | `updatedAt` | Time! | Timestamp of when the container expiration policy was updated | -## CreateAlertIssuePayload +### CreateAlertIssuePayload -Autogenerated return type of CreateAlertIssue +Autogenerated return type of CreateAlertIssue. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `alert` | AlertManagementAlert | The alert after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue created after mutation | | `todo` | Todo | The todo after mutation | -## CreateAnnotationPayload +### CreateAnnotationPayload -Autogenerated return type of CreateAnnotation +Autogenerated return type of CreateAnnotation. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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. | -## CreateBranchPayload +### CreateBranchPayload -Autogenerated return type of CreateBranch +Autogenerated return type of CreateBranch. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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. | -## CreateClusterAgentPayload +### CreateClusterAgentPayload -Autogenerated return type of CreateClusterAgent +Autogenerated return type of CreateClusterAgent. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `clusterAgent` | ClusterAgent | Cluster agent created after mutation | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## CreateDiffNotePayload +### CreateDiffNotePayload -Autogenerated return type of CreateDiffNote +Autogenerated return type of CreateDiffNote. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## CreateEpicPayload +### CreateEpicPayload -Autogenerated return type of CreateEpic +Autogenerated return type of CreateEpic. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `epic` | Epic | The created epic | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## CreateImageDiffNotePayload +### CreateImageDiffNotePayload -Autogenerated return type of CreateImageDiffNote +Autogenerated return type of CreateImageDiffNote. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## CreateIterationPayload +### CreateIterationPayload -Autogenerated return type of CreateIteration +Autogenerated return type of CreateIteration. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `iteration` | Iteration | The created iteration | -## CreateNotePayload +### CreateNotePayload -Autogenerated return type of CreateNote +Autogenerated return type of CreateNote. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## CreateRequirementPayload +### CreateRequirementPayload -Autogenerated return type of CreateRequirement +Autogenerated return type of CreateRequirement. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `requirement` | Requirement | The requirement after mutation | -## CreateSnippetPayload +### CreateSnippetPayload -Autogenerated return type of CreateSnippet +Autogenerated return type of CreateSnippet. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## DastOnDemandScanCreatePayload +### CreateTestCasePayload + +Autogenerated return type of CreateTestCase. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `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 | + +### DastOnDemandScanCreatePayload -Autogenerated return type of DastOnDemandScanCreate +Autogenerated return type of DastOnDemandScanCreate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `pipelineUrl` | String | URL of the pipeline that was created. | -## DastScannerProfile +### DastScannerProfile Represents a DAST scanner profile. -| Name | Type | Description | -| --- | ---- | ---------- | -| `id` | ID! | ID of the DAST scanner profile | +| Field | Type | Description | +| ----- | ---- | ----------- | +| `editPath` | String | Relative web path to the edit page of a scanner profile | +| `globalId` | DastScannerProfileID! | ID of the DAST scanner profile | +| `id` **{warning-solid}** | ID! | **Deprecated:** Use `global_id`. Deprecated in 13.4 | | `profileName` | String | Name of the DAST scanner profile | -| `spiderTimeout` | Int | The maximum number of seconds allowed for the spider to traverse the site | +| `spiderTimeout` | Int | The maximum number of minutes allowed for the spider to traverse the site | | `targetTimeout` | Int | The maximum number of seconds allowed for the site under test to respond to a request | -## DastScannerProfileCreatePayload +### DastScannerProfileCreatePayload -Autogenerated return type of DastScannerProfileCreate +Autogenerated return type of DastScannerProfileCreate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -| `id` | ID | ID of the scanner profile. | +| `globalId` | DastScannerProfileID | ID of the scanner profile. | +| `id` **{warning-solid}** | ID | **Deprecated:** Use `global_id`. Deprecated in 13.4 | -## DastSiteProfile +### DastScannerProfileDeletePayload + +Autogenerated return type of DastScannerProfileDelete. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + +### DastScannerProfileUpdatePayload + +Autogenerated return type of DastScannerProfileUpdate. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `id` | DastScannerProfileID | ID of the scanner profile. | + +### DastSiteProfile Represents a DAST Site Profile. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `editPath` | String | Relative web path to the edit page of a site profile | | `id` | DastSiteProfileID! | ID of the site profile | | `profileName` | String | The name of the site profile | @@ -494,68 +587,68 @@ Represents a DAST Site Profile. | `userPermissions` | DastSiteProfilePermissions! | Permissions for the current user on the resource | | `validationStatus` | DastSiteProfileValidationStatusEnum | The current validation status of the site profile | -## DastSiteProfileCreatePayload +### DastSiteProfileCreatePayload -Autogenerated return type of DastSiteProfileCreate +Autogenerated return type of DastSiteProfileCreate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `id` | DastSiteProfileID | ID of the site profile. | -## DastSiteProfileDeletePayload +### DastSiteProfileDeletePayload -Autogenerated return type of DastSiteProfileDelete +Autogenerated return type of DastSiteProfileDelete. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## DastSiteProfilePermissions +### DastSiteProfilePermissions -Check permissions for the current user on site profile +Check permissions for the current user on site profile. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createOnDemandDastScan` | Boolean! | Indicates the user can perform `create_on_demand_dast_scan` on this resource | -## DastSiteProfileUpdatePayload +### DastSiteProfileUpdatePayload -Autogenerated return type of DastSiteProfileUpdate +Autogenerated return type of DastSiteProfileUpdate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `id` | DastSiteProfileID | ID of the site profile. | -## DeleteAnnotationPayload +### DeleteAnnotationPayload -Autogenerated return type of DeleteAnnotation +Autogenerated return type of DeleteAnnotation. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## DeleteJobsResponse +### DeleteJobsResponse The response from the AdminSidekiqQueuesDeleteJobs mutation. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `completed` | Boolean | Whether or not the entire queue was processed in time; if not, retrying the same request is safe | | `deletedJobs` | Int | The number of matching jobs deleted | | `queueSize` | Int | The queue size after processing | -## Design +### Design -A single design +A single design. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `diffRefs` | DiffRefs! | The diff refs for this design | | `event` | DesignVersionEvent! | How this design was changed in the current version | | `filename` | String! | The filename of the design | @@ -567,13 +660,13 @@ A single design | `notesCount` | Int! | The total count of user-created notes for this design | | `project` | Project! | The project the design belongs to | -## DesignAtVersion +### DesignAtVersion A design pinned to a specific version. The image field reflects the design as of the associated version. -| Name | Type | Description | -| --- | ---- | ---------- | -| `design` | Design! | The underlying design. | +| Field | Type | Description | +| ----- | ---- | ----------- | +| `design` | Design! | The underlying design | | `diffRefs` | DiffRefs! | The diff refs for this design | | `event` | DesignVersionEvent! | How this design was changed in the current version | | `filename` | String! | The filename of the design | @@ -586,90 +679,100 @@ A design pinned to a specific version. The image field reflects the design as of | `project` | Project! | The project the design belongs to | | `version` | DesignVersion! | The version this design-at-versions is pinned to | -## DesignCollection +### DesignCollection A collection of designs. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `design` | Design | Find a specific design | | `designAtVersion` | DesignAtVersion | Find a design as of a version | | `issue` | Issue! | Issue associated with the design collection | | `project` | Project! | Project associated with the design collection | | `version` | DesignVersion | A specific version | -## DesignManagement +### DesignManagement -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `designAtVersion` | DesignAtVersion | Find a design as of a version | | `version` | DesignVersion | Find a version | -## DesignManagementDeletePayload +### DesignManagementDeletePayload -Autogenerated return type of DesignManagementDelete +Autogenerated return type of DesignManagementDelete. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## DesignManagementMovePayload +### DesignManagementMovePayload -Autogenerated return type of DesignManagementMove +Autogenerated return type of DesignManagementMove. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `designCollection` | DesignCollection | The current state of the collection | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## DesignManagementUploadPayload +### DesignManagementUploadPayload -Autogenerated return type of DesignManagementUpload +Autogenerated return type of DesignManagementUpload. -| Name | Type | Description | -| --- | ---- | ---------- | +| 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 | | `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 | -## DesignVersion +### DesignVersion -A specific version in which designs were added, modified or deleted +A specific version in which designs were added, modified or deleted. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `designAtVersion` | DesignAtVersion! | A particular design as of this version, provided it is visible at this version | | `id` | ID! | ID of the design version | | `sha` | ID! | SHA of the design version | -## DestroyNotePayload +### DestroyBoardPayload + +Autogenerated return type of DestroyBoard. -Autogenerated return type of DestroyNote +| Field | Type | Description | +| ----- | ---- | ----------- | +| `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. | + +### DestroyNotePayload -| Name | Type | Description | -| --- | ---- | ---------- | +Autogenerated return type of DestroyNote. + +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## DestroySnippetPayload +### DestroySnippetPayload -Autogenerated return type of DestroySnippet +Autogenerated return type of DestroySnippet. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## DetailedStatus +### DetailedStatus -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `detailsPath` | String! | Path of the details for the pipeline status | | `favicon` | String! | Favicon of the pipeline status | | `group` | String! | Group of the pipeline status | @@ -679,10 +782,10 @@ Autogenerated return type of DestroySnippet | `text` | String! | Text of the pipeline status | | `tooltip` | String! | Tooltip associated with the pipeline status | -## DiffPosition +### DiffPosition -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `diffRefs` | DiffRefs! | Information about the branch, HEAD, and base at the time of commenting | | `filePath` | String! | Path of the file that was changed | | `height` | Int | Total height of the image | @@ -695,39 +798,39 @@ Autogenerated return type of DestroySnippet | `x` | Int | X position of the note | | `y` | Int | Y position of the note | -## DiffRefs +### DiffRefs -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `baseSha` | String | Merge base of the branch the comment was made on | | `headSha` | String! | SHA of the HEAD at the time the comment was made | | `startSha` | String! | SHA of the branch being compared against | -## DiffStats +### DiffStats -Changes to a single file +Changes to a single file. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `additions` | Int! | Number of lines added to this file | | `deletions` | Int! | Number of lines deleted from this file | | `path` | String! | File path, relative to repository root | -## DiffStatsSummary +### DiffStatsSummary -Aggregated summary of changes +Aggregated summary of changes. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `additions` | Int! | Number of lines added | | `changes` | Int! | Number of lines changed | | `deletions` | Int! | Number of lines deleted | | `fileCount` | Int! | Number of files changed | -## Discussion +### Discussion -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createdAt` | Time! | Timestamp of the discussion's creation | | `id` | ID! | ID of this discussion | | `replyId` | ID! | ID used to reply to this discussion | @@ -736,44 +839,44 @@ Aggregated summary of changes | `resolvedAt` | Time | Timestamp of when the object was resolved | | `resolvedBy` | User | User who resolved the object | -## DiscussionToggleResolvePayload +### DiscussionToggleResolvePayload -Autogenerated return type of DiscussionToggleResolve +Autogenerated return type of DiscussionToggleResolve. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `discussion` | Discussion | The discussion after mutation | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## DismissVulnerabilityPayload +### DismissVulnerabilityPayload -Autogenerated return type of DismissVulnerability +Autogenerated return type of DismissVulnerability. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## Environment +### Environment -Describes where code is deployed for a project +Describes where code is deployed for a project. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `id` | ID! | ID of the environment | | `latestOpenedMostSevereAlert` | AlertManagementAlert | The most severe open alert for the environment. If multiple alerts have equal severity, the most recent is returned. | | `metricsDashboard` | MetricsDashboard | Metrics dashboard schema for the environment | | `name` | String! | Human-readable name of the environment | | `state` | String! | State of the environment, for example: available/stopped | -## Epic +### Epic Represents an epic. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `author` | User! | Author of the epic | | `closedAt` | Time | Timestamp of the epic's closure | | `confidential` | Boolean | Indicates if the epic is confidential | @@ -810,53 +913,54 @@ Represents an epic. | `webPath` | String! | Web path of the epic | | `webUrl` | String! | Web URL of the epic | -## EpicAddIssuePayload +### EpicAddIssuePayload -Autogenerated return type of EpicAddIssue +Autogenerated return type of EpicAddIssue. -| Name | Type | Description | -| --- | ---- | ---------- | +| 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 | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## EpicDescendantCount +### EpicDescendantCount Counts of descendent epics. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `closedEpics` | Int | Number of closed child epics | | `closedIssues` | Int | Number of closed epic issues | | `openedEpics` | Int | Number of opened child epics | | `openedIssues` | Int | Number of opened epic issues | -## EpicDescendantWeights +### EpicDescendantWeights -Total weight of open and closed descendant issues +Total weight of open and closed descendant issues. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `closedIssues` | Int | Total weight of completed (closed) issues in this epic, including epic descendants | | `openedIssues` | Int | Total weight of opened issues in this epic, including epic descendants | -## EpicHealthStatus +### EpicHealthStatus -Health status of child issues +Health status of child issues. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `issuesAtRisk` | Int | Number of issues at risk | | `issuesNeedingAttention` | Int | Number of issues that need attention | | `issuesOnTrack` | Int | Number of issues on track | -## EpicIssue +### EpicIssue -Relationship between an epic and an issue +Relationship between an epic and an issue. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | +| `alertManagementAlert` | AlertManagementAlert | Alert associated to this issue | | `author` | User! | User that created the issue | | `blocked` | Boolean! | Indicates the issue is blocked | | `closedAt` | Time | Timestamp of when the issue was closed | @@ -879,6 +983,7 @@ Relationship between an epic and an issue | `reference` | String! | Internal reference of the issue. Returned in shortened format by default | | `relationPath` | String | URI path of the epic-issue relation | | `relativePosition` | Int | Relative position of the issue (used for positioning in epic tree and issue boards) | +| `severity` | IssuableSeverity | Severity level of the incident | | `state` | IssueState! | State of the issue | | `statusPagePublishedIncident` | Boolean | Indicates whether an issue is published to the status page | | `subscribed` | Boolean! | Indicates the currently logged in user is subscribed to the issue | @@ -896,12 +1001,12 @@ Relationship between an epic and an issue | `webUrl` | String! | Web URL of the issue | | `weight` | Int | Weight of the issue | -## EpicPermissions +### EpicPermissions -Check permissions for the current user on an epic +Check permissions for the current user on an epic. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminEpic` | Boolean! | Indicates the user can perform `admin_epic` on this resource | | `awardEmoji` | Boolean! | Indicates the user can perform `award_emoji` on this resource | | `createEpic` | Boolean! | Indicates the user can perform `create_epic` on this resource | @@ -911,29 +1016,29 @@ Check permissions for the current user on an epic | `readEpicIid` | Boolean! | Indicates the user can perform `read_epic_iid` on this resource | | `updateEpic` | Boolean! | Indicates the user can perform `update_epic` on this resource | -## EpicSetSubscriptionPayload +### EpicSetSubscriptionPayload -Autogenerated return type of EpicSetSubscription +Autogenerated return type of EpicSetSubscription. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `epic` | Epic | The epic after mutation | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## EpicTreeReorderPayload +### EpicTreeReorderPayload -Autogenerated return type of EpicTreeReorder +Autogenerated return type of EpicTreeReorder. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## GeoNode +### GeoNode -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `containerRepositoriesMaxCapacity` | Int | The maximum concurrency of container repository sync for this secondary node | | `enabled` | Boolean | Indicates whether this Geo node is enabled | | `filesMaxCapacity` | Int | The maximum concurrency of LFS/attachment backfill for this secondary node | @@ -949,10 +1054,10 @@ Autogenerated return type of EpicTreeReorder | `url` | String | The user-facing URL for this Geo node | | `verificationMaxCapacity` | Int | The maximum concurrency of repository verification for this secondary node | -## GrafanaIntegration +### GrafanaIntegration -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createdAt` | Time! | Timestamp of the issue's creation | | `enabled` | Boolean! | Indicates whether Grafana integration is enabled | | `grafanaUrl` | String! | URL for the Grafana host for the Grafana integration | @@ -960,10 +1065,10 @@ Autogenerated return type of EpicTreeReorder | `token` **{warning-solid}** | String! | **Deprecated:** Plain text token has been masked for security reasons. Deprecated in 12.7 | | `updatedAt` | Time! | Timestamp of the issue's last activity | -## Group +### Group -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `autoDevopsEnabled` | Boolean | Indicates whether Auto DevOps is enabled for all projects within this group | | `avatarUrl` | String | Avatar URL of the group | | `board` | Board | A single board of the group | @@ -995,38 +1100,53 @@ Autogenerated return type of EpicTreeReorder | `userPermissions` | GroupPermissions! | Permissions for the current user on the resource | | `visibility` | String | Visibility of the namespace | | `vulnerabilityGrades` | VulnerableProjectsByGrade! => Array | Represents vulnerable project counts for each grade | +| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each vulnerability severity in the group and its subgroups | | `webUrl` | String! | Web URL of the group | -## GroupMember +### GroupMember -Represents a Group Member +Represents a Group Membership. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `accessLevel` | AccessLevel | GitLab::Access level | | `createdAt` | Time | Date and time the membership was created | | `createdBy` | User | User that authorized membership | | `expiresAt` | Time | Date and time the membership expires | | `group` | Group | Group that a User is a member of | +| `id` | ID! | ID of the member | | `updatedAt` | Time | Date and time the membership was last updated | +| `user` | User! | User that is associated with the member object | | `userPermissions` | GroupPermissions! | Permissions for the current user on the resource | -## GroupPermissions +### GroupPermissions -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `readGroup` | Boolean! | Indicates the user can perform `read_group` on this resource | -## InstanceSecurityDashboard +### InstanceSecurityDashboard -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `vulnerabilityGrades` | VulnerableProjectsByGrade! => Array | Represents vulnerable project counts for each grade | +| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each vulnerability severity from projects selected in Instance Security Dashboard | + +### InstanceStatisticsMeasurement + +Represents a recorded measurement (object count) for the Admins. -## Issue +| Field | Type | Description | +| ----- | ---- | ----------- | +| `count` | Int! | Object count | +| `identifier` | MeasurementIdentifier! | The type of objects being measured | +| `recordedAt` | Time | The time the measurement was recorded | -| Name | Type | Description | -| --- | ---- | ---------- | +### Issue + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `alertManagementAlert` | AlertManagementAlert | Alert associated to this issue | | `author` | User! | User that created the issue | | `blocked` | Boolean! | Indicates the issue is blocked | | `closedAt` | Time | Timestamp of when the issue was closed | @@ -1047,6 +1167,7 @@ Represents a Group Member | `milestone` | Milestone | Milestone of the issue | | `reference` | String! | Internal reference of the issue. Returned in shortened format by default | | `relativePosition` | Int | Relative position of the issue (used for positioning in epic tree and issue boards) | +| `severity` | IssuableSeverity | Severity level of the incident | | `state` | IssueState! | State of the issue | | `statusPagePublishedIncident` | Boolean | Indicates whether an issue is published to the status page | | `subscribed` | Boolean! | Indicates the currently logged in user is subscribed to the issue | @@ -1064,22 +1185,22 @@ Represents a Group Member | `webUrl` | String! | Web URL of the issue | | `weight` | Int | Weight of the issue | -## IssueMoveListPayload +### IssueMoveListPayload -Autogenerated return type of IssueMoveList +Autogenerated return type of IssueMoveList. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssuePermissions +### IssuePermissions -Check permissions for the current user on a issue +Check permissions for the current user on a issue. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminIssue` | Boolean! | Indicates the user can perform `admin_issue` on this resource | | `createDesign` | Boolean! | Indicates the user can perform `create_design` on this resource | | `createNote` | Boolean! | Indicates the user can perform `create_note` on this resource | @@ -1089,102 +1210,113 @@ Check permissions for the current user on a issue | `reopenIssue` | Boolean! | Indicates the user can perform `reopen_issue` on this resource | | `updateIssue` | Boolean! | Indicates the user can perform `update_issue` on this resource | -## IssueSetAssigneesPayload +### IssueSetAssigneesPayload + +Autogenerated return type of IssueSetAssignees. -Autogenerated return type of IssueSetAssignees +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | +| `issue` | Issue | The issue after mutation | + +### IssueSetConfidentialPayload + +Autogenerated return type of IssueSetConfidential. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueSetConfidentialPayload +### IssueSetDueDatePayload -Autogenerated return type of IssueSetConfidential +Autogenerated return type of IssueSetDueDate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueSetDueDatePayload +### IssueSetEpicPayload -Autogenerated return type of IssueSetDueDate +Autogenerated return type of IssueSetEpic. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueSetEpicPayload +### IssueSetIterationPayload -Autogenerated return type of IssueSetEpic +Autogenerated return type of IssueSetIteration. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueSetIterationPayload +### IssueSetLockedPayload -Autogenerated return type of IssueSetIteration +Autogenerated return type of IssueSetLocked. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueSetLockedPayload +### IssueSetSeverityPayload -Autogenerated return type of IssueSetLocked +Autogenerated return type of IssueSetSeverity. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueSetSubscriptionPayload +### IssueSetSubscriptionPayload -Autogenerated return type of IssueSetSubscription +Autogenerated return type of IssueSetSubscription. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueSetWeightPayload +### IssueSetWeightPayload -Autogenerated return type of IssueSetWeight +Autogenerated return type of IssueSetWeight. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## IssueStatusCountsType +### IssueStatusCountsType Represents total number of issues for the represented statuses. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `all` | Int | Number of issues with status ALL for the project | | `closed` | Int | Number of issues with status CLOSED for the project | | `opened` | Int | Number of issues with status OPENED for the project | -## Iteration +### Iteration Represents an iteration object. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | +| `burnupTimeSeries` | BurnupChartDailyTotals! => Array | Daily scope and completed totals for burnup charts | | `createdAt` | Time! | Timestamp of iteration creation | | `description` | String | Description of the iteration | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | @@ -1200,10 +1332,10 @@ Represents an iteration object. | `webPath` | String! | Web path of the iteration | | `webUrl` | String! | Web URL of the iteration | -## JiraImport +### JiraImport -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createdAt` | Time | Timestamp of when the Jira import was created | | `failedToImportCount` | Int! | Count of issues that failed to import | | `importedIssuesCount` | Int! | Count of issues that were successfully imported | @@ -1212,56 +1344,56 @@ Represents an iteration object. | `scheduledBy` | User | User that started the Jira import | | `totalIssueCount` | Int! | Total count of issues that were attempted to import | -## JiraImportStartPayload +### JiraImportStartPayload -Autogenerated return type of JiraImportStart +Autogenerated return type of JiraImportStart. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## JiraImportUsersPayload +### JiraImportUsersPayload -Autogenerated return type of JiraImportUsers +Autogenerated return type of JiraImportUsers. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `jiraUsers` | JiraUser! => Array | Users returned from Jira, matched by email and name if possible. | -## JiraProject +### JiraProject -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `key` | String! | Key of the Jira project | | `name` | String | Name of the Jira project | | `projectId` | Int! | ID of the Jira project | -## JiraService +### JiraService -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `active` | Boolean | Indicates if the service is active | | `type` | String | Class name of the service | -## JiraUser +### JiraUser -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `gitlabId` | Int | ID of the matched GitLab user | | `gitlabName` | String | Name of the matched GitLab user | | `gitlabUsername` | String | Username of the matched GitLab user | -| `jiraAccountId` | String! | Account id of the Jira user | +| `jiraAccountId` | String! | Account ID of the Jira user | | `jiraDisplayName` | String! | Display name of the Jira user | | `jiraEmail` | String | Email of the Jira user, returned only for users with public emails | -## Label +### Label -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `color` | String! | Background color of the label | | `description` | String | Description of the label (Markdown rendered as HTML for caching) | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | @@ -1269,23 +1401,28 @@ Autogenerated return type of JiraImportUsers | `textColor` | String! | Text color of the label | | `title` | String! | Content of the label | -## MarkAsSpamSnippetPayload +### MarkAsSpamSnippetPayload -Autogenerated return type of MarkAsSpamSnippet +Autogenerated return type of MarkAsSpamSnippet. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## MergeRequest +### MergeRequest -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `allowCollaboration` | Boolean | Indicates if members of the target project can push to the fork | +| `approvalsLeft` | Int | Number of approvals left | +| `approvalsRequired` | Int | Number of approvals required | +| `approved` | Boolean! | Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured. | | `author` | User | User who created this merge request | +| `autoMergeEnabled` | Boolean! | Indicates if auto merge is enabled for the merge request | | `commitCount` | Int | Number of commits in the merge request | +| `conflicts` | Boolean! | Indicates if the merge request has conflicts | | `createdAt` | Time! | Timestamp of when the merge request was created | | `defaultMergeCommitMessage` | String | Default merge commit message of the merge request | | `description` | String | Description of the merge request (Markdown rendered as HTML for caching) | @@ -1339,23 +1476,24 @@ Autogenerated return type of MarkAsSpamSnippet | `webUrl` | String | Web URL of the merge request | | `workInProgress` | Boolean! | Indicates if the merge request is a work in progress (WIP) | -## MergeRequestCreatePayload +### MergeRequestCreatePayload -Autogenerated return type of MergeRequestCreate +Autogenerated return type of MergeRequestCreate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## MergeRequestPermissions +### MergeRequestPermissions -Check permissions for the current user on a merge request +Check permissions for the current user on a merge request. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminMergeRequest` | Boolean! | Indicates the user can perform `admin_merge_request` on this resource | +| `canMerge` | Boolean! | Indicates the user can perform `can_merge` on this resource | | `cherryPickOnCurrentMergeRequest` | Boolean! | Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource | | `createNote` | Boolean! | Indicates the user can perform `create_note` on this resource | | `pushToSourceBranch` | Boolean! | Indicates the user can perform `push_to_source_branch` on this resource | @@ -1364,106 +1502,107 @@ Check permissions for the current user on a merge request | `revertOnCurrentMergeRequest` | Boolean! | Indicates the user can perform `revert_on_current_merge_request` on this resource | | `updateMergeRequest` | Boolean! | Indicates the user can perform `update_merge_request` on this resource | -## MergeRequestSetAssigneesPayload +### MergeRequestSetAssigneesPayload -Autogenerated return type of MergeRequestSetAssignees +Autogenerated return type of MergeRequestSetAssignees. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## MergeRequestSetLabelsPayload +### MergeRequestSetLabelsPayload -Autogenerated return type of MergeRequestSetLabels +Autogenerated return type of MergeRequestSetLabels. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## MergeRequestSetLockedPayload +### MergeRequestSetLockedPayload -Autogenerated return type of MergeRequestSetLocked +Autogenerated return type of MergeRequestSetLocked. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## MergeRequestSetMilestonePayload +### MergeRequestSetMilestonePayload -Autogenerated return type of MergeRequestSetMilestone +Autogenerated return type of MergeRequestSetMilestone. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## MergeRequestSetSubscriptionPayload +### MergeRequestSetSubscriptionPayload -Autogenerated return type of MergeRequestSetSubscription +Autogenerated return type of MergeRequestSetSubscription. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## MergeRequestSetWipPayload +### MergeRequestSetWipPayload -Autogenerated return type of MergeRequestSetWip +Autogenerated return type of MergeRequestSetWip. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## MergeRequestUpdatePayload +### MergeRequestUpdatePayload -Autogenerated return type of MergeRequestUpdate +Autogenerated return type of MergeRequestUpdate. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `mergeRequest` | MergeRequest | The merge request after mutation | -## Metadata +### Metadata -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `revision` | String! | Revision | | `version` | String! | Version | -## MetricsDashboard +### MetricsDashboard -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `path` | String | Path to a file with the dashboard definition | | `schemaValidationWarnings` | String! => Array | Dashboard schema validation warnings | -## MetricsDashboardAnnotation +### MetricsDashboardAnnotation -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `description` | String | Description of the annotation | | `endingAt` | Time | Timestamp marking end of annotated time span | | `id` | ID! | ID of the annotation | | `panelId` | String | ID of a dashboard panel to which the annotation should be scoped | | `startingAt` | Time | Timestamp marking start of annotated time span | -## Milestone +### Milestone Represents a milestone. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | +| `burnupTimeSeries` | BurnupChartDailyTotals! => Array | Daily scope and completed totals for burnup charts | | `createdAt` | Time! | Timestamp of milestone creation | | `description` | String | Description of the milestone | | `dueDate` | Time | Timestamp of the milestone due date | @@ -1478,19 +1617,19 @@ Represents a milestone. | `updatedAt` | Time! | Timestamp of last milestone update | | `webPath` | String! | Web path of the milestone | -## MilestoneStats +### MilestoneStats -Contains statistics about a milestone +Contains statistics about a milestone. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `closedIssuesCount` | Int | Number of closed issues associated with the milestone | | `totalIssuesCount` | Int | Total number of issues associated with the milestone | -## Namespace +### Namespace -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `description` | String | Description of the namespace | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | | `fullName` | String! | Full name of the namespace | @@ -1506,20 +1645,20 @@ Contains statistics about a milestone | `temporaryStorageIncreaseEndsOn` | Time | Date until the temporary storage increase is active | | `visibility` | String | Visibility of the namespace | -## NamespaceIncreaseStorageTemporarilyPayload +### NamespaceIncreaseStorageTemporarilyPayload -Autogenerated return type of NamespaceIncreaseStorageTemporarily +Autogenerated return type of NamespaceIncreaseStorageTemporarily. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## Note +### Note -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `author` | User! | User who wrote this note | | `body` | String! | Content of the note | | `bodyHtml` | String | The GitLab Flavored Markdown rendering of `note` | @@ -1538,22 +1677,22 @@ Autogenerated return type of NamespaceIncreaseStorageTemporarily | `updatedAt` | Time! | Timestamp of the note's last activity | | `userPermissions` | NotePermissions! | Permissions for the current user on the resource | -## NotePermissions +### NotePermissions -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminNote` | Boolean! | Indicates the user can perform `admin_note` on this resource | | `awardEmoji` | Boolean! | Indicates the user can perform `award_emoji` on this resource | | `createNote` | Boolean! | Indicates the user can perform `create_note` on this resource | | `readNote` | Boolean! | Indicates the user can perform `read_note` on this resource | | `resolveNote` | Boolean! | Indicates the user can perform `resolve_note` on this resource | -## Package +### Package -Represents a package +Represents a package. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createdAt` | Time! | The created date | | `id` | ID! | The ID of the package | | `name` | String! | The name of the package | @@ -1561,12 +1700,12 @@ Represents a package | `updatedAt` | Time! | The update date | | `version` | String | The version of the package | -## PackageFileRegistry +### PackageFileRegistry -Represents the sync and verification state of a package file +Represents the sync and verification state of a package file. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createdAt` | Time | Timestamp when the PackageFileRegistry was created | | `id` | ID! | ID of the PackageFileRegistry | | `lastSyncFailure` | String | Error message during sync of the PackageFileRegistry | @@ -1576,22 +1715,23 @@ Represents the 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 | -## PageInfo +### PageInfo -Information about pagination in a connection. +Information about pagination in a connection.. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `endCursor` | String | When paginating forwards, the cursor to continue. | | `hasNextPage` | Boolean! | When paginating forwards, are there more items? | | `hasPreviousPage` | Boolean! | When paginating backwards, are there more items? | | `startCursor` | String | When paginating backwards, the cursor to continue. | -## Pipeline +### Pipeline -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `beforeSha` | String | Base SHA of the source branch | +| `cancelable` | Boolean! | Specifies if a pipeline can be canceled | | `committedAt` | Time | Timestamp of the pipeline's commit | | `configSource` | PipelineConfigSourceEnum | Config source of the pipeline (UNKNOWN_SOURCE, REPOSITORY_SOURCE, AUTO_DEVOPS_SOURCE, WEBIDE_SOURCE, REMOTE_SOURCE, EXTERNAL_PROJECT_SOURCE, BRIDGE_SOURCE, PARAMETER_SOURCE) | | `coverage` | Float | Coverage percentage | @@ -1601,6 +1741,7 @@ Information about pagination in a connection. | `finishedAt` | Time | Timestamp of the pipeline's completion | | `id` | ID! | ID of the pipeline | | `iid` | String! | Internal ID of the pipeline | +| `retryable` | Boolean! | Specifies if a pipeline can be retried | | `securityReportSummary` | SecurityReportSummary | Vulnerability and scanned resource counts for each security scanner of the pipeline | | `sha` | String! | SHA of the pipeline's commit | | `startedAt` | Time | Timestamp when the pipeline was started | @@ -1609,18 +1750,46 @@ Information about pagination in a connection. | `user` | User | Pipeline user | | `userPermissions` | PipelinePermissions! | Permissions for the current user on the resource | -## PipelinePermissions +### PipelineCancelPayload + +Autogenerated return type of PipelineCancel. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + +### PipelineDestroyPayload -| Name | Type | Description | -| --- | ---- | ---------- | +Autogenerated return type of PipelineDestroy. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `clientMutationId` | String | A unique identifier for the client performing the mutation. | +| `errors` | String! => Array | Errors encountered during execution of the mutation. | + +### PipelinePermissions + +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminPipeline` | Boolean! | Indicates the user can perform `admin_pipeline` on this resource | | `destroyPipeline` | Boolean! | Indicates the user can perform `destroy_pipeline` on this resource | | `updatePipeline` | Boolean! | Indicates the user can perform `update_pipeline` on this resource | -## Project +### PipelineRetryPayload + +Autogenerated return type of PipelineRetry. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `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 | + +### Project -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `alertManagementAlert` | AlertManagementAlert | A single Alert Management alert of the project | | `alertManagementAlertStatusCounts` | AlertManagementAlertStatusCountsType | Counts of alerts by status for the project | | `allowMergeOnSkippedPipeline` | Boolean | If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge requests of the project can also be merged with skipped jobs | @@ -1628,9 +1797,11 @@ Information about pagination in a connection. | `autocloseReferencedIssues` | Boolean | Indicates if issues referenced by merge requests and commits within the default branch are closed automatically | | `avatarUrl` | String | URL to avatar image file of the project | | `board` | Board | A single board of the project | +| `clusterAgent` | ClusterAgent | Find a single cluster agent by name | | `containerExpirationPolicy` | ContainerExpirationPolicy | The container expiration policy of the project | | `containerRegistryEnabled` | Boolean | Indicates if the project stores Docker container images in a container registry | | `createdAt` | Time | Timestamp of the project creation | +| `dastSiteProfile` | DastSiteProfile | DAST Site Profile associated with the project | | `description` | String | Short description of the project | | `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` | | `environment` | Environment | A single environment of the project | @@ -1675,7 +1846,7 @@ Information about pagination in a connection. | `sentryErrors` | SentryErrorCollection | Paginated collection of Sentry errors on the project | | `serviceDeskAddress` | String | E-mail address of the service desk. | | `serviceDeskEnabled` | Boolean | Indicates if the project has service desk enabled. | -| `sharedRunnersEnabled` | Boolean | Indicates if Shared Runners are enabled for the project | +| `sharedRunnersEnabled` | Boolean | Indicates if shared runners are enabled for the project | | `snippetsEnabled` | Boolean | Indicates if Snippets are enabled for the current user | | `sshUrlToRepo` | String | URL to connect to the project via SSH | | `starCount` | Int! | Number of times the project has been starred | @@ -1684,16 +1855,16 @@ Information about pagination in a connection. | `tagList` | String | List of project topics (not Git tags) | | `userPermissions` | ProjectPermissions! | Permissions for the current user on the resource | | `visibility` | String | Visibility of the project | -| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each severity of vulnerability of the project | +| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each vulnerability severity in the project | | `webUrl` | String | Web URL of the project | | `wikiEnabled` | Boolean | Indicates if Wikis are enabled for the current user | -## ProjectMember +### ProjectMember -Represents a Project Member +Represents a Project Membership. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `accessLevel` | AccessLevel | GitLab::Access level | | `createdAt` | Time | Date and time the membership was created | | `createdBy` | User | User that authorized membership | @@ -1704,10 +1875,10 @@ Represents a Project Member | `user` | User! | User that is associated with the member object | | `userPermissions` | ProjectPermissions! | Permissions for the current user on the resource | -## ProjectPermissions +### ProjectPermissions -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminOperations` | Boolean! | Indicates the user can perform `admin_operations` on this resource | | `adminProject` | Boolean! | Indicates the user can perform `admin_project` on this resource | | `adminRemoteMirror` | Boolean! | Indicates the user can perform `admin_remote_mirror` on this resource | @@ -1751,10 +1922,10 @@ Represents a Project Member | `updateWiki` | Boolean! | Indicates the user can perform `update_wiki` on this resource | | `uploadFile` | Boolean! | Indicates the user can perform `upload_file` on this resource | -## ProjectStatistics +### ProjectStatistics -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `buildArtifactsSize` | Float! | Build artifacts size of the project | | `commitCount` | Float! | Commit count of the project | | `lfsObjectsSize` | Float! | Large File Storage (LFS) object size of the project | @@ -1764,21 +1935,21 @@ Represents a Project Member | `storageSize` | Float! | Storage size of the project | | `wikiSize` | Float | Wiki size of the project | -## PrometheusAlert +### PrometheusAlert -The alert condition for Prometheus +The alert condition for Prometheus. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `humanizedText` | String! | The human-readable text of the alert condition | | `id` | ID! | ID of the alert condition | -## Release +### Release -Represents a release +Represents a release. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `assets` | ReleaseAssets | Assets of the release | | `author` | User | User that created the release | | `commit` | Commit | The commit associated with the release | @@ -1790,125 +1961,128 @@ Represents a release | `releasedAt` | Time | Timestamp of when the release was released | | `tagName` | String | Name of the tag associated with the release | | `tagPath` | String | Relative web path to the tag associated with the release | +| `upcomingRelease` | Boolean | Indicates the release is an upcoming release | -## ReleaseAssetLink +### ReleaseAssetLink -Represents an asset link associated with a release +Represents an asset link associated with a release. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | +| `directAssetUrl` | String | Direct asset URL of the link | | `external` | Boolean | Indicates the link points to an external resource | | `id` | ID! | ID of the link | | `linkType` | ReleaseAssetLinkType | Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` | | `name` | String | Name of the link | | `url` | String | URL of the link | -## ReleaseAssets +### ReleaseAssets -A container for all assets associated with a release +A container for all assets associated with a release. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `count` | Int | Number of assets of the release | -## ReleaseEvidence +### ReleaseEvidence -Evidence for a release +Evidence for a release. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `collectedAt` | Time | Timestamp when the evidence was collected | | `filepath` | String | URL from where the evidence can be downloaded | | `id` | ID! | ID of the evidence | | `sha` | String | SHA1 ID of the evidence hash | -## ReleaseLinks +### ReleaseLinks -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `editUrl` | String | HTTP URL of the release's edit page | | `issuesUrl` | String | HTTP URL of the issues page filtered by this release | | `mergeRequestsUrl` | String | HTTP URL of the merge request page filtered by this release | | `selfUrl` | String | HTTP URL of the release | -## ReleaseSource +### ReleaseSource -Represents the source code attached to a release in a particular format +Represents the source code attached to a release in a particular format. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `format` | String | Format of the source | | `url` | String | Download URL of the source | -## RemoveAwardEmojiPayload +### RemoveAwardEmojiPayload -Autogenerated return type of RemoveAwardEmoji +Autogenerated return type of RemoveAwardEmoji. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `awardEmoji` | AwardEmoji | The award emoji after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## RemoveProjectFromSecurityDashboardPayload +### RemoveProjectFromSecurityDashboardPayload -Autogenerated return type of RemoveProjectFromSecurityDashboard +Autogenerated return type of RemoveProjectFromSecurityDashboard. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## Repository +### Repository -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `empty` | Boolean! | Indicates repository has no visible content | | `exists` | Boolean! | Indicates a corresponding Git repository exists on disk | | `rootRef` | String | Default branch of the repository | | `tree` | Tree | Tree of the repository | -## Requirement +### Requirement -Represents a requirement +Represents a requirement. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `author` | User! | Author of the requirement | | `createdAt` | Time! | Timestamp of when the requirement was created | | `id` | ID! | ID of the requirement | | `iid` | ID! | Internal ID of the requirement | +| `lastTestReportState` | TestReportState | Latest requirement test report state | | `project` | Project! | Project to which the requirement belongs | | `state` | RequirementState! | State of the requirement | | `title` | String | Title of the requirement | | `updatedAt` | Time! | Timestamp of when the requirement was last updated | | `userPermissions` | RequirementPermissions! | Permissions for the current user on the resource | -## RequirementPermissions +### RequirementPermissions -Check permissions for the current user on a requirement +Check permissions for the current user on a requirement. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminRequirement` | Boolean! | Indicates the user can perform `admin_requirement` on this resource | | `createRequirement` | Boolean! | Indicates the user can perform `create_requirement` on this resource | | `destroyRequirement` | Boolean! | Indicates the user can perform `destroy_requirement` on this resource | | `readRequirement` | Boolean! | Indicates the user can perform `read_requirement` on this resource | | `updateRequirement` | Boolean! | Indicates the user can perform `update_requirement` on this resource | -## RequirementStatesCount +### RequirementStatesCount Counts of requirements by their state. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `archived` | Int | Number of archived requirements | | `opened` | Int | Number of opened requirements | -## RootStorageStatistics +### RootStorageStatistics -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `buildArtifactsSize` | Float! | The CI artifacts size in bytes | | `lfsObjectsSize` | Float! | The LFS objects size in bytes | | `packagesSize` | Float! | The packages size in bytes | @@ -1917,33 +2091,33 @@ Counts of requirements by their state. | `storageSize` | Float! | The total storage in bytes | | `wikiSize` | Float! | The wiki size in bytes | -## RunDASTScanPayload +### RunDASTScanPayload -Autogenerated return type of RunDASTScan +Autogenerated return type of RunDASTScan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `pipelineUrl` | String | URL of the pipeline that was created. | -## SastCiConfigurationAnalyzersEntity +### SastCiConfigurationAnalyzersEntity -Represents an analyzer entity in SAST CI configuration +Represents an analyzer entity in SAST CI configuration. -| Name | Type | Description | -| --- | ---- | ---------- | -| `description` | String | Analyzer description that is displayed on the form. | -| `enabled` | Boolean | Indicates whether an analyzer is enabled. | -| `label` | String | Analyzer label used in the config UI. | -| `name` | String | Name of the analyzer. | +| Field | Type | Description | +| ----- | ---- | ----------- | +| `description` | String | Analyzer description that is displayed on the form | +| `enabled` | Boolean | Indicates whether an analyzer is enabled | +| `label` | String | Analyzer label used in the config UI | +| `name` | String | Name of the analyzer | -## SastCiConfigurationEntity +### SastCiConfigurationEntity -Represents an entity in SAST CI configuration +Represents an entity in SAST CI configuration. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `defaultValue` | String | Default value that is used if value is empty. | | `description` | String | Entity description that is displayed on the form. | | `field` | String | CI keyword of entity. | @@ -1952,30 +2126,30 @@ Represents an entity in SAST CI configuration | `type` | String | Type of the field value. | | `value` | String | Current value of the entity. | -## SastCiConfigurationOptionsEntity +### SastCiConfigurationOptionsEntity -Represents an entity for options in SAST CI configuration +Represents an entity for options in SAST CI configuration. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `label` | String | Label of option entity. | | `value` | String | Value of option entity. | -## ScannedResource +### ScannedResource -Represents a resource scanned by a security scan +Represents a resource scanned by a security scan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `requestMethod` | String | The HTTP request method used to access the URL | | `url` | String | The URL scanned by the scanner | -## SecurityReportSummary +### SecurityReportSummary -Represents summary of a security report +Represents summary of a security report. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `containerScanning` | SecurityReportSummarySection | Aggregated counts for the container_scanning scan | | `coverageFuzzing` | SecurityReportSummarySection | Aggregated counts for the coverage_fuzzing scan | | `dast` | SecurityReportSummarySection | Aggregated counts for the dast scan | @@ -1983,32 +2157,32 @@ Represents summary of a security report | `sast` | SecurityReportSummarySection | Aggregated counts for the sast scan | | `secretDetection` | SecurityReportSummarySection | Aggregated counts for the secret_detection scan | -## SecurityReportSummarySection +### SecurityReportSummarySection -Represents a section of a summary of a security report +Represents a section of a summary of a security report. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `scannedResourcesCount` | Int | Total number of scanned resources | | `scannedResourcesCsvPath` | String | Path to download all the scanned resources in CSV format | | `vulnerabilitiesCount` | Int | Total number of vulnerabilities | -## SecurityScanners +### SecurityScanners -Represents a list of security scanners +Represents a list of security scanners. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `available` | SecurityScannerType! => Array | List of analyzers which are available for the project. | | `enabled` | SecurityScannerType! => Array | List of analyzers which are enabled for the project. | | `pipelineRun` | SecurityScannerType! => Array | List of analyzers which ran successfully in the latest pipeline. | -## SentryDetailedError +### SentryDetailedError A Sentry error. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `count` | Int! | Count of occurrences | | `culprit` | String! | Culprit of the error | | `externalBaseUrl` | String! | External Base URL of the Sentry Instance | @@ -2038,12 +2212,12 @@ A Sentry error. | `type` | String! | Type of the error | | `userCount` | Int! | Count of users affected by the error | -## SentryError +### SentryError A Sentry error. A simplified version of SentryDetailedError. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `count` | Int! | Count of occurrences | | `culprit` | String! | Culprit of the error | | `externalUrl` | String! | External URL of the error | @@ -2062,70 +2236,70 @@ A Sentry error. A simplified version of SentryDetailedError. | `type` | String! | Type of the error | | `userCount` | Int! | Count of users affected by the error | -## SentryErrorCollection +### SentryErrorCollection An object containing a collection of Sentry errors, and a detailed error. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `detailedError` | SentryDetailedError | Detailed version of a Sentry error on the project | | `errorStackTrace` | SentryErrorStackTrace | Stack Trace of Sentry Error | | `errors` | SentryErrorConnection | Collection of Sentry Errors | | `externalUrl` | String | External URL for Sentry | -## SentryErrorFrequency +### SentryErrorFrequency -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `count` | Int! | Count of errors received since the previously recorded time | | `time` | Time! | Time the error frequency stats were recorded | -## SentryErrorStackTrace +### SentryErrorStackTrace An object containing a stack trace entry for a Sentry error. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `dateReceived` | String! | Time the stack trace was received by Sentry | | `issueId` | String! | ID of the Sentry error | | `stackTraceEntries` | SentryErrorStackTraceEntry! => Array | Stack trace entries for the Sentry error | -## SentryErrorStackTraceContext +### SentryErrorStackTraceContext -An object context for a Sentry error stack trace +An object context for a Sentry error stack trace. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `code` | String! | Code number of the context | | `line` | Int! | Line number of the context | -## SentryErrorStackTraceEntry +### SentryErrorStackTraceEntry An object containing a stack trace entry for a Sentry error. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `col` | String | Function in which the Sentry error occurred | | `fileName` | String | File in which the Sentry error occurred | | `function` | String | Function in which the Sentry error occurred | | `line` | String | Function in which the Sentry error occurred | | `traceContext` | SentryErrorStackTraceContext! => Array | Context of the Sentry error | -## SentryErrorTags +### SentryErrorTags -State of a Sentry error +State of a Sentry error. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `level` | String | Severity level of the Sentry Error | | `logger` | String | Logger of the Sentry Error | -## Snippet +### Snippet -Represents a snippet entry +Represents a snippet entry. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `author` | User | The owner of the snippet | | `blob` **{warning-solid}** | SnippetBlob! | **Deprecated:** Use `blobs`. Deprecated in 13.3 | | `blobs` | SnippetBlob! => Array | Snippet blobs | @@ -2144,12 +2318,12 @@ Represents a snippet entry | `visibilityLevel` | VisibilityLevelsEnum! | Visibility Level of the snippet | | `webUrl` | String! | Web URL of the snippet | -## SnippetBlob +### SnippetBlob -Represents the snippet blob +Represents the snippet blob. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `binary` | Boolean! | Shows whether the blob is binary | | `externalStorage` | String | Blob external storage | | `mode` | String | Blob mode | @@ -2163,12 +2337,12 @@ Represents the snippet blob | `simpleViewer` | SnippetBlobViewer! | Blob content simple viewer | | `size` | Int! | Blob size | -## SnippetBlobViewer +### SnippetBlobViewer -Represents how the blob content should be displayed +Represents how the blob content should be displayed. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `collapsed` | Boolean! | Shows whether the blob should be displayed collapsed | | `fileType` | String! | Content file type | | `loadAsync` | Boolean! | Shows whether the blob content is loaded async | @@ -2177,10 +2351,10 @@ Represents how the blob content should be displayed | `tooLarge` | Boolean! | Shows whether the blob too large to be displayed | | `type` | BlobViewersType! | Type of blob viewer | -## SnippetPermissions +### SnippetPermissions -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminSnippet` | Boolean! | Indicates the user can perform `admin_snippet` on this resource | | `awardEmoji` | Boolean! | Indicates the user can perform `award_emoji` on this resource | | `createNote` | Boolean! | Indicates the user can perform `create_note` on this resource | @@ -2188,10 +2362,10 @@ Represents how the blob content should be displayed | `reportSnippet` | Boolean! | Indicates the user can perform `report_snippet` on this resource | | `updateSnippet` | Boolean! | Indicates the user can perform `update_snippet` on this resource | -## Submodule +### Submodule -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `flatPath` | String! | Flat path of the entry | | `id` | ID! | ID of the entry | | `name` | String! | Name of the entry | @@ -2201,44 +2375,60 @@ Represents how the blob content should be displayed | `type` | EntryType! | Type of tree entry | | `webUrl` | String | Web URL for the sub-module | -## TaskCompletionStatus +### TaskCompletionStatus -Completion status of tasks +Completion status of tasks. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `completedCount` | Int! | Number of completed tasks | | `count` | Int! | Number of total tasks | -## TestReport +### TerraformStateRegistry + +Represents the sync and verification state of a terraform state. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `createdAt` | Time | Timestamp when the TerraformStateRegistry was created | +| `id` | ID! | ID of the TerraformStateRegistry | +| `lastSyncFailure` | String | Error message during sync of the TerraformStateRegistry | +| `lastSyncedAt` | Time | Timestamp of the most recent successful sync of the TerraformStateRegistry | +| `retryAt` | Time | Timestamp after which the TerraformStateRegistry should be resynced | +| `retryCount` | Int | Number of consecutive failed sync attempts of the TerraformStateRegistry | +| `state` | RegistryState | Sync state of the TerraformStateRegistry | +| `terraformStateId` | ID! | ID of the TerraformState | + +### TestReport Represents a requirement test report. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `author` | User | Author of the test report | | `createdAt` | Time! | Timestamp of when the test report was created | | `id` | ID! | ID of the test report | | `state` | TestReportState! | State of the test report | -## Timelog +### Timelog -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `date` **{warning-solid}** | Time! | **Deprecated:** Use `spentAt`. Deprecated in 12.10 | | `issue` | Issue | The issue that logged time was added to | +| `note` | Note | The note where the quick action to add the logged time was executed | | `spentAt` | Time | Timestamp of when the time tracked was spent at | | `timeSpent` | Int! | The time spent displayed in seconds | | `user` | User! | The user that logged the time | -## Todo +### Todo -Representing a todo entry +Representing a todo entry. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `action` | TodoActionEnum! | Action of the todo | -| `author` | User! | The owner of this todo | +| `author` | User! | The author of this todo | | `body` | String! | Body of the todo | | `createdAt` | Time! | Timestamp this todo was created | | `group` | Group | Group this todo is associated with | @@ -2247,71 +2437,71 @@ Representing a todo entry | `state` | TodoStateEnum! | State of the todo | | `targetType` | TodoTargetEnum! | Target type of the todo | -## TodoMarkDonePayload +### TodoMarkDonePayload -Autogenerated return type of TodoMarkDone +Autogenerated return type of TodoMarkDone. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## TodoRestoreManyPayload +### TodoRestoreManyPayload -Autogenerated return type of TodoRestoreMany +Autogenerated return type of TodoRestoreMany. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | | `updatedIds` **{warning-solid}** | ID! => Array | **Deprecated:** Use todos. Deprecated in 13.2 | -## TodoRestorePayload +### TodoRestorePayload -Autogenerated return type of TodoRestore +Autogenerated return type of TodoRestore. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## TodosMarkAllDonePayload +### TodosMarkAllDonePayload -Autogenerated return type of TodosMarkAllDone +Autogenerated return type of TodosMarkAllDone. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | | `updatedIds` **{warning-solid}** | ID! => Array | **Deprecated:** Use todos. Deprecated in 13.2 | -## ToggleAwardEmojiPayload +### ToggleAwardEmojiPayload -Autogenerated return type of ToggleAwardEmoji +Autogenerated return type of ToggleAwardEmoji. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `awardEmoji` | AwardEmoji | The award emoji after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `toggledOn` | Boolean! | Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. | -## Tree +### Tree -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `lastCommit` | Commit | Last commit for the tree | -## TreeEntry +### TreeEntry -Represents a directory +Represents a directory. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `flatPath` | String! | Flat path of the entry | | `id` | ID! | ID of the entry | | `name` | String! | Name of the entry | @@ -2321,122 +2511,122 @@ Represents a directory | `webPath` | String | Web path for the tree entry (directory) | | `webUrl` | String | Web URL for the tree entry (directory) | -## UpdateAlertStatusPayload +### UpdateAlertStatusPayload -Autogenerated return type of UpdateAlertStatus +Autogenerated return type of UpdateAlertStatus. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `alert` | AlertManagementAlert | The alert after mutation | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue created after mutation | | `todo` | Todo | The todo after mutation | -## UpdateBoardListPayload +### UpdateBoardListPayload -Autogenerated return type of UpdateBoardList +Autogenerated return type of UpdateBoardList. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## UpdateBoardPayload +### UpdateBoardPayload -Autogenerated return type of UpdateBoard +Autogenerated return type of UpdateBoard. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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. | -## UpdateContainerExpirationPolicyPayload +### UpdateContainerExpirationPolicyPayload -Autogenerated return type of UpdateContainerExpirationPolicy +Autogenerated return type of UpdateContainerExpirationPolicy. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `containerExpirationPolicy` | ContainerExpirationPolicy | The container expiration policy after mutation | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## UpdateEpicPayload +### UpdateEpicPayload -Autogenerated return type of UpdateEpic +Autogenerated return type of UpdateEpic. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `epic` | Epic | The epic after mutation | | `errors` | String! => Array | Errors encountered during execution of the mutation. | -## UpdateImageDiffNotePayload +### UpdateImageDiffNotePayload -Autogenerated return type of UpdateImageDiffNote +Autogenerated return type of UpdateImageDiffNote. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## UpdateIssuePayload +### UpdateIssuePayload -Autogenerated return type of UpdateIssue +Autogenerated return type of UpdateIssue. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `issue` | Issue | The issue after mutation | -## UpdateIterationPayload +### UpdateIterationPayload -Autogenerated return type of UpdateIteration +Autogenerated return type of UpdateIteration. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `iteration` | Iteration | The updated iteration | -## UpdateNotePayload +### UpdateNotePayload -Autogenerated return type of UpdateNote +Autogenerated return type of UpdateNote. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## UpdateRequirementPayload +### UpdateRequirementPayload -Autogenerated return type of UpdateRequirement +Autogenerated return type of UpdateRequirement. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `clientMutationId` | String | A unique identifier for the client performing the mutation. | | `errors` | String! => Array | Errors encountered during execution of the mutation. | | `requirement` | Requirement | The requirement after mutation | -## UpdateSnippetPayload +### UpdateSnippetPayload -Autogenerated return type of UpdateSnippet +Autogenerated return type of UpdateSnippet. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `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 | -## User +### User -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `avatarUrl` | String | URL of the user's avatar | | `email` | String | User email | | `id` | ID! | ID of the user | @@ -2448,26 +2638,26 @@ Autogenerated return type of UpdateSnippet | `webPath` | String! | Web path of the user | | `webUrl` | String! | Web URL of the user | -## UserPermissions +### UserPermissions -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `createSnippet` | Boolean! | Indicates the user can perform `create_snippet` on this resource | -## UserStatus +### UserStatus -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `emoji` | String | String representation of emoji | | `message` | String | User status message | | `messageHtml` | String | HTML of the user status message | -## VulnerabilitiesCountByDay +### VulnerabilitiesCountByDay -Represents the count of vulnerabilities by severity on a particular day +Represents the count of vulnerabilities by severity on a particular day. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `critical` | Int! | Total number of vulnerabilities on a particular day with critical severity | | `date` | ISO8601Date! | Date for the count | | `high` | Int! | Total number of vulnerabilities on a particular day with high severity | @@ -2477,23 +2667,24 @@ Represents the count of vulnerabilities by severity on a particular day | `total` | Int! | Total number of vulnerabilities on a particular day | | `unknown` | Int! | Total number of vulnerabilities on a particular day with unknown severity | -## VulnerabilitiesCountByDayAndSeverity +### VulnerabilitiesCountByDayAndSeverity -Represents the number of vulnerabilities for a particular severity on a particular day +Represents the number of vulnerabilities for a particular severity on a particular day. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `count` | Int | Number of vulnerabilities | | `day` | ISO8601Date | Date for the count | | `severity` | VulnerabilitySeverity | Severity of the counted vulnerabilities | -## Vulnerability +### Vulnerability Represents a vulnerability. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `description` | String | Description of the vulnerability | +| `detectedAt` | Time! | Timestamp of when the vulnerability was first detected | | `id` | ID! | GraphQL ID of the vulnerability | | `identifiers` | VulnerabilityIdentifier! => Array | Identifiers of the vulnerability. | | `location` | VulnerabilityLocation | Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability | @@ -2509,99 +2700,99 @@ Represents a vulnerability. | `userPermissions` | VulnerabilityPermissions! | Permissions for the current user on the resource | | `vulnerabilityPath` | String | URL to the vulnerability's details page | -## VulnerabilityIdentifier +### VulnerabilityIdentifier Represents a vulnerability identifier. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `externalId` | String | External ID of the vulnerability identifier | | `externalType` | String | External type of the vulnerability identifier | | `name` | String | Name of the vulnerability identifier | | `url` | String | URL of the vulnerability identifier | -## VulnerabilityIssueLink +### VulnerabilityIssueLink Represents an issue link of a vulnerability. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `id` | ID! | GraphQL ID of the vulnerability | | `issue` | Issue! | The issue attached to issue link | | `linkType` | VulnerabilityIssueLinkType! | Type of the issue link | -## VulnerabilityLocationContainerScanning +### VulnerabilityLocationContainerScanning -Represents the location of a vulnerability found by a container security scan +Represents the location of a vulnerability found by a container security scan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `dependency` | VulnerableDependency | Dependency containing the vulnerability | | `image` | String | Name of the vulnerable container image | | `operatingSystem` | String | Operating system that runs on the vulnerable container image | -## VulnerabilityLocationCoverageFuzzing +### VulnerabilityLocationCoverageFuzzing -Represents the location of a vulnerability found by a Coverage Fuzzing scan +Represents the location of a vulnerability found by a Coverage Fuzzing scan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `endLine` | String | Number of the last relevant line in the vulnerable file | | `file` | String | Path to the vulnerable file | | `startLine` | String | Number of the first relevant line in the vulnerable file | | `vulnerableClass` | String | Class containing the vulnerability | | `vulnerableMethod` | String | Method containing the vulnerability | -## VulnerabilityLocationDast +### VulnerabilityLocationDast -Represents the location of a vulnerability found by a DAST scan +Represents the location of a vulnerability found by a DAST scan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `hostname` | String | Domain name of the vulnerable request | | `param` | String | Query parameter for the URL on which the vulnerability occurred | | `path` | String | URL path and query string of the vulnerable request | | `requestMethod` | String | HTTP method of the vulnerable request | -## VulnerabilityLocationDependencyScanning +### VulnerabilityLocationDependencyScanning -Represents the location of a vulnerability found by a dependency security scan +Represents the location of a vulnerability found by a dependency security scan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `dependency` | VulnerableDependency | Dependency containing the vulnerability | | `file` | String | Path to the vulnerable file | -## VulnerabilityLocationSast +### VulnerabilityLocationSast -Represents the location of a vulnerability found by a SAST scan +Represents the location of a vulnerability found by a SAST scan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `endLine` | String | Number of the last relevant line in the vulnerable file | | `file` | String | Path to the vulnerable file | | `startLine` | String | Number of the first relevant line in the vulnerable file | | `vulnerableClass` | String | Class containing the vulnerability | | `vulnerableMethod` | String | Method containing the vulnerability | -## VulnerabilityLocationSecretDetection +### VulnerabilityLocationSecretDetection -Represents the location of a vulnerability found by a secret detection scan +Represents the location of a vulnerability found by a secret detection scan. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `endLine` | String | Number of the last relevant line in the vulnerable file | | `file` | String | Path to the vulnerable file | | `startLine` | String | Number of the first relevant line in the vulnerable file | | `vulnerableClass` | String | Class containing the vulnerability | | `vulnerableMethod` | String | Method containing the vulnerability | -## VulnerabilityPermissions +### VulnerabilityPermissions -Check permissions for the current user on a vulnerability +Check permissions for the current user on a vulnerability. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `adminVulnerability` | Boolean! | Indicates the user can perform `admin_vulnerability` on this resource | | `adminVulnerabilityIssueLink` | Boolean! | Indicates the user can perform `admin_vulnerability_issue_link` on this resource | | `createVulnerability` | Boolean! | Indicates the user can perform `create_vulnerability` on this resource | @@ -2611,23 +2802,33 @@ Check permissions for the current user on a vulnerability | `readVulnerabilityFeedback` | Boolean! | Indicates the user can perform `read_vulnerability_feedback` on this resource | | `updateVulnerabilityFeedback` | Boolean! | Indicates the user can perform `update_vulnerability_feedback` on this resource | -## VulnerabilityScanner +### VulnerabilityResolvePayload + +Autogenerated return type of VulnerabilityResolve. + +| Field | Type | Description | +| ----- | ---- | ----------- | +| `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 | + +### VulnerabilityScanner Represents a vulnerability scanner. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `externalId` | String | External ID of the vulnerability scanner | | `name` | String | Name of the vulnerability scanner | | `reportType` | VulnerabilityReportType | Type of the vulnerability report | | `vendor` | String | Vendor of the vulnerability scanner | -## VulnerabilitySeveritiesCount +### VulnerabilitySeveritiesCount -Represents vulnerability counts by severity +Represents vulnerability counts by severity. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `critical` | Int | Number of vulnerabilities of CRITICAL severity of the project | | `high` | Int | Number of vulnerabilities of HIGH severity of the project | | `info` | Int | Number of vulnerabilities of INFO severity of the project | @@ -2635,28 +2836,738 @@ Represents vulnerability counts by severity | `medium` | Int | Number of vulnerabilities of MEDIUM severity of the project | | `unknown` | Int | Number of vulnerabilities of UNKNOWN severity of the project | -## VulnerableDependency +### VulnerableDependency -Represents a vulnerable dependency. Used in vulnerability location data +Represents a vulnerable dependency. Used in vulnerability location data. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `package` | VulnerablePackage | The package associated with the vulnerable dependency | | `version` | String | The version of the vulnerable dependency | -## VulnerablePackage +### VulnerablePackage -Represents a vulnerable package. Used in vulnerability dependency data +Represents a vulnerable package. Used in vulnerability dependency data. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `name` | String | The name of the vulnerable package | -## VulnerableProjectsByGrade +### VulnerableProjectsByGrade -Represents vulnerability letter grades with associated projects +Represents vulnerability letter grades with associated projects. -| Name | Type | Description | -| --- | ---- | ---------- | +| Field | Type | Description | +| ----- | ---- | ----------- | | `count` | Int! | Number of projects within this grade | | `grade` | VulnerabilityGrade! | Grade based on the highest severity vulnerability present | + +## Enumeration types + +Also called _Enums_, enumeration types are a special kind of scalar that +is restricted to a particular set of allowed values. + +For more information, see +[Enumeration Types](https://graphql.org/learn/schema/#enumeration-types) +on `graphql.org`. + +### AccessLevelEnum + +Access level to a resource. + +| Value | Description | +| ----- | ----------- | +| `DEVELOPER` | | +| `GUEST` | | +| `MAINTAINER` | | +| `NO_ACCESS` | | +| `OWNER` | | +| `REPORTER` | | + +### AlertManagementAlertSort + +Values for sorting alerts. + +| Value | Description | +| ----- | ----------- | +| `CREATED_TIME_ASC` | Created time by ascending order | +| `CREATED_TIME_DESC` | Created time by descending order | +| `ENDED_AT_ASC` | End time by ascending order | +| `ENDED_AT_DESC` | End time by descending order | +| `EVENT_COUNT_ASC` | Events count by ascending order | +| `EVENT_COUNT_DESC` | Events count by descending order | +| `SEVERITY_ASC` | Severity from less critical to more critical | +| `SEVERITY_DESC` | Severity from more critical to less critical | +| `STARTED_AT_ASC` | Start time by ascending order | +| `STARTED_AT_DESC` | Start time by descending order | +| `STATUS_ASC` | Status by order: Ignored > Resolved > Acknowledged > Triggered | +| `STATUS_DESC` | Status by order: Triggered > Acknowledged > Resolved > Ignored | +| `UPDATED_TIME_ASC` | Created time by ascending order | +| `UPDATED_TIME_DESC` | Created time by descending order | +| `created_asc` | Created at ascending order | +| `created_desc` | Created at descending order | +| `updated_asc` | Updated at ascending order | +| `updated_desc` | Updated at descending order | + +### AlertManagementSeverity + +Alert severity values. + +| Value | Description | +| ----- | ----------- | +| `CRITICAL` | Critical severity | +| `HIGH` | High severity | +| `INFO` | Info severity | +| `LOW` | Low severity | +| `MEDIUM` | Medium severity | +| `UNKNOWN` | Unknown severity | + +### AlertManagementStatus + +Alert status values. + +| Value | Description | +| ----- | ----------- | +| `ACKNOWLEDGED` | Acknowledged status | +| `IGNORED` | Ignored status | +| `RESOLVED` | Resolved status | +| `TRIGGERED` | Triggered status | + +### BlobViewersType + +Types of blob viewers. + +| Value | Description | +| ----- | ----------- | +| `auxiliary` | | +| `rich` | | +| `simple` | | + +### CommitActionMode + +Mode of a commit action. + +| Value | Description | +| ----- | ----------- | +| `CHMOD` | Chmod command | +| `CREATE` | Create command | +| `DELETE` | Delete command | +| `MOVE` | Move command | +| `UPDATE` | Update command | + +### CommitEncoding + +| Value | Description | +| ----- | ----------- | +| `BASE64` | Base64 encoding | +| `TEXT` | Text encoding | + +### ContainerExpirationPolicyCadenceEnum + +| Value | Description | +| ----- | ----------- | +| `EVERY_DAY` | Every day | +| `EVERY_MONTH` | Every month | +| `EVERY_THREE_MONTHS` | Every three months | +| `EVERY_TWO_WEEKS` | Every two weeks | +| `EVERY_WEEK` | Every week | + +### ContainerExpirationPolicyKeepEnum + +| Value | Description | +| ----- | ----------- | +| `FIFTY_TAGS` | 50 tags per image name | +| `FIVE_TAGS` | 5 tags per image name | +| `ONE_HUNDRED_TAGS` | 100 tags per image name | +| `ONE_TAG` | 1 tag per image name | +| `TEN_TAGS` | 10 tags per image name | +| `TWENTY_FIVE_TAGS` | 25 tags per image name | + +### ContainerExpirationPolicyOlderThanEnum + +| Value | Description | +| ----- | ----------- | +| `FOURTEEN_DAYS` | 14 days until tags are automatically removed | +| `NINETY_DAYS` | 90 days until tags are automatically removed | +| `SEVEN_DAYS` | 7 days until tags are automatically removed | +| `THIRTY_DAYS` | 30 days until tags are automatically removed | + +### DastScanTypeEnum + +| Value | Description | +| ----- | ----------- | +| `PASSIVE` | Passive DAST scan. This scan will not make active attacks against the target site. | + +### DastSiteProfileValidationStatusEnum + +| Value | Description | +| ----- | ----------- | +| `FAILED_VALIDATION` | Site validation process finished but failed | +| `INPROGRESS_VALIDATION` | Site validation process is in progress | +| `PASSED_VALIDATION` | Site validation process finished successfully | +| `PENDING_VALIDATION` | Site validation process has not started | + +### DesignVersionEvent + +Mutation event of a design within a version. + +| Value | Description | +| ----- | ----------- | +| `CREATION` | A creation event | +| `DELETION` | A deletion event | +| `MODIFICATION` | A modification event | +| `NONE` | No change | + +### DiffPositionType + +Type of file the position refers to. + +| Value | Description | +| ----- | ----------- | +| `image` | | +| `text` | | + +### EntryType + +Type of a tree entry. + +| Value | Description | +| ----- | ----------- | +| `blob` | | +| `commit` | | +| `tree` | | + +### EpicSort + +Roadmap sort values. + +| Value | Description | +| ----- | ----------- | +| `end_date_asc` | End date at ascending order | +| `end_date_desc` | End date at descending order | +| `start_date_asc` | Start date at ascending order | +| `start_date_desc` | Start date at descending order | + +### EpicState + +State of an epic. + +| Value | Description | +| ----- | ----------- | +| `all` | | +| `closed` | | +| `opened` | | + +### EpicStateEvent + +State event of an epic. + +| Value | Description | +| ----- | ----------- | +| `CLOSE` | Close the epic | +| `REOPEN` | Reopen the epic | + +### EpicWildcardId + +Epic ID wildcard values. + +| Value | Description | +| ----- | ----------- | +| `ANY` | Any epic is assigned | +| `NONE` | No epic is assigned | + +### HealthStatus + +Health status of an issue or epic. + +| Value | Description | +| ----- | ----------- | +| `atRisk` | | +| `needsAttention` | | +| `onTrack` | | + +### IssuableSeverity + +Incident severity. + +| Value | Description | +| ----- | ----------- | +| `CRITICAL` | Critical severity | +| `HIGH` | High severity | +| `LOW` | Low severity | +| `MEDIUM` | Medium severity | +| `UNKNOWN` | Unknown severity | + +### IssuableState + +State of a GitLab issue or merge request. + +| Value | Description | +| ----- | ----------- | +| `all` | | +| `closed` | | +| `locked` | | +| `opened` | | + +### IssueSort + +Values for sorting issues. + +| Value | Description | +| ----- | ----------- | +| `DUE_DATE_ASC` | Due date by ascending order | +| `DUE_DATE_DESC` | Due date by descending order | +| `LABEL_PRIORITY_ASC` | Label priority by ascending order | +| `LABEL_PRIORITY_DESC` | Label priority by descending order | +| `MILESTONE_DUE_ASC` | Milestone due date by ascending order | +| `MILESTONE_DUE_DESC` | Milestone due date by descending order | +| `PRIORITY_ASC` | Priority by ascending order | +| `PRIORITY_DESC` | Priority by descending order | +| `RELATIVE_POSITION_ASC` | Relative position by ascending order | +| `WEIGHT_ASC` | Weight by ascending order | +| `WEIGHT_DESC` | Weight by descending order | +| `created_asc` | Created at ascending order | +| `created_desc` | Created at descending order | +| `updated_asc` | Updated at ascending order | +| `updated_desc` | Updated at descending order | + +### IssueState + +State of a GitLab issue. + +| Value | Description | +| ----- | ----------- | +| `all` | | +| `closed` | | +| `locked` | | +| `opened` | | + +### IssueType + +Issue type. + +| Value | Description | +| ----- | ----------- | +| `INCIDENT` | Incident issue type | +| `ISSUE` | Issue issue type | +| `TEST_CASE` | Test Case issue type | + +### IterationState + +State of a GitLab iteration. + +| Value | Description | +| ----- | ----------- | +| `all` | | +| `closed` | | +| `opened` | | +| `started` | | +| `upcoming` | | + +### ListLimitMetric + +List limit metric setting. + +| Value | Description | +| ----- | ----------- | +| `all_metrics` | | +| `issue_count` | | +| `issue_weights` | | + +### MeasurementIdentifier + +Possible identifier types for a measurement. + +| Value | Description | +| ----- | ----------- | +| `GROUPS` | Group count | +| `ISSUES` | Issue count | +| `MERGE_REQUESTS` | Merge request count | +| `PIPELINES` | Pipeline count | +| `PROJECTS` | Project count | +| `USERS` | User count | + +### MergeRequestSort + +Values for sorting merge requests. + +| Value | Description | +| ----- | ----------- | +| `LABEL_PRIORITY_ASC` | Label priority by ascending order | +| `LABEL_PRIORITY_DESC` | Label priority by descending order | +| `MERGED_AT_ASC` | Merge time by ascending order | +| `MERGED_AT_DESC` | Merge time by descending order | +| `MILESTONE_DUE_ASC` | Milestone due date by ascending order | +| `MILESTONE_DUE_DESC` | Milestone due date by descending order | +| `PRIORITY_ASC` | Priority by ascending order | +| `PRIORITY_DESC` | Priority by descending order | +| `created_asc` | Created at ascending order | +| `created_desc` | Created at descending order | +| `updated_asc` | Updated at ascending order | +| `updated_desc` | Updated at descending order | + +### MergeRequestState + +State of a GitLab merge request. + +| Value | Description | +| ----- | ----------- | +| `all` | | +| `closed` | | +| `locked` | | +| `merged` | | +| `opened` | | + +### MilestoneStateEnum + +| Value | Description | +| ----- | ----------- | +| `active` | | +| `closed` | | + +### MoveType + +The position to which the adjacent object should be moved. + +| Value | Description | +| ----- | ----------- | +| `after` | The adjacent object will be moved after the object that is being moved | +| `before` | The adjacent object will be moved before the object that is being moved | + +### MutationOperationMode + +Different toggles for changing mutator behavior. + +| Value | Description | +| ----- | ----------- | +| `APPEND` | Performs an append operation | +| `REMOVE` | Performs a removal operation | +| `REPLACE` | Performs a replace operation | + +### NamespaceProjectSort + +Values for sorting projects. + +| Value | Description | +| ----- | ----------- | +| `SIMILARITY` | Most similar to the search query | + +### PackageTypeEnum + +| Value | Description | +| ----- | ----------- | +| `COMPOSER` | Packages from the composer package manager | +| `CONAN` | Packages from the conan package manager | +| `GENERIC` | Packages from the generic package manager | +| `MAVEN` | Packages from the maven package manager | +| `NPM` | Packages from the npm package manager | +| `NUGET` | Packages from the nuget package manager | +| `PYPI` | Packages from the pypi package manager | + +### PipelineConfigSourceEnum + +| Value | Description | +| ----- | ----------- | +| `AUTO_DEVOPS_SOURCE` | | +| `BRIDGE_SOURCE` | | +| `EXTERNAL_PROJECT_SOURCE` | | +| `PARAMETER_SOURCE` | | +| `REMOTE_SOURCE` | | +| `REPOSITORY_SOURCE` | | +| `UNKNOWN_SOURCE` | | +| `WEBIDE_SOURCE` | | + +### PipelineStatusEnum + +| Value | Description | +| ----- | ----------- | +| `CANCELED` | | +| `CREATED` | | +| `FAILED` | | +| `MANUAL` | | +| `PENDING` | | +| `PREPARING` | | +| `RUNNING` | | +| `SCHEDULED` | | +| `SKIPPED` | | +| `SUCCESS` | | +| `WAITING_FOR_RESOURCE` | | + +### ProjectSettingEnum + +Names of compliance frameworks that can be assigned to a Project. + +| Value | Description | +| ----- | ----------- | +| `gdpr` | | +| `hipaa` | | +| `pci_dss` | | +| `soc_2` | | +| `sox` | | + +### RegistryState + +State of a Geo registry. + +| Value | Description | +| ----- | ----------- | +| `FAILED` | Registry that failed to sync | +| `PENDING` | Registry waiting to be synced | +| `STARTED` | Registry currently syncing | +| `SYNCED` | Registry that is synced | + +### ReleaseAssetLinkType + +Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`. + +| Value | Description | +| ----- | ----------- | +| `IMAGE` | Image link type | +| `OTHER` | Other link type | +| `PACKAGE` | Package link type | +| `RUNBOOK` | Runbook link type | + +### RequirementState + +State of a requirement. + +| Value | Description | +| ----- | ----------- | +| `ARCHIVED` | | +| `OPENED` | | + +### SastUiComponentSize + +Size of UI component in SAST configuration page. + +| Value | Description | +| ----- | ----------- | +| `LARGE` | | +| `MEDIUM` | | +| `SMALL` | | + +### SecurityScannerType + +The type of the security scanner. + +| Value | Description | +| ----- | ----------- | +| `CONTAINER_SCANNING` | | +| `COVERAGE_FUZZING` | | +| `DAST` | | +| `DEPENDENCY_SCANNING` | | +| `SAST` | | +| `SECRET_DETECTION` | | + +### SentryErrorStatus + +State of a Sentry error. + +| Value | Description | +| ----- | ----------- | +| `IGNORED` | Error has been ignored | +| `RESOLVED` | Error has been resolved | +| `RESOLVED_IN_NEXT_RELEASE` | Error has been ignored until next release | +| `UNRESOLVED` | Error is unresolved | + +### ServiceType + +| Value | Description | +| ----- | ----------- | +| `ALERTS_SERVICE` | | +| `ASANA_SERVICE` | | +| `ASSEMBLA_SERVICE` | | +| `BAMBOO_SERVICE` | | +| `BUGZILLA_SERVICE` | | +| `BUILDKITE_SERVICE` | | +| `CAMPFIRE_SERVICE` | | +| `CONFLUENCE_SERVICE` | | +| `CUSTOM_ISSUE_TRACKER_SERVICE` | | +| `DISCORD_SERVICE` | | +| `DRONE_CI_SERVICE` | | +| `EMAILS_ON_PUSH_SERVICE` | | +| `EWM_SERVICE` | | +| `EXTERNAL_WIKI_SERVICE` | | +| `FLOWDOCK_SERVICE` | | +| `GITHUB_SERVICE` | | +| `HANGOUTS_CHAT_SERVICE` | | +| `HIPCHAT_SERVICE` | | +| `IRKER_SERVICE` | | +| `JENKINS_SERVICE` | | +| `JIRA_SERVICE` | | +| `MATTERMOST_SERVICE` | | +| `MATTERMOST_SLASH_COMMANDS_SERVICE` | | +| `MICROSOFT_TEAMS_SERVICE` | | +| `PACKAGIST_SERVICE` | | +| `PIPELINES_EMAIL_SERVICE` | | +| `PIVOTALTRACKER_SERVICE` | | +| `PROMETHEUS_SERVICE` | | +| `PUSHOVER_SERVICE` | | +| `REDMINE_SERVICE` | | +| `SLACK_SERVICE` | | +| `SLACK_SLASH_COMMANDS_SERVICE` | | +| `TEAMCITY_SERVICE` | | +| `UNIFY_CIRCUIT_SERVICE` | | +| `WEBEX_TEAMS_SERVICE` | | +| `YOUTRACK_SERVICE` | | + +### SnippetBlobActionEnum + +Type of a snippet blob input action. + +| Value | Description | +| ----- | ----------- | +| `create` | | +| `delete` | | +| `move` | | +| `update` | | + +### Sort + +Common sort values. + +| Value | Description | +| ----- | ----------- | +| `created_asc` | Created at ascending order | +| `created_desc` | Created at descending order | +| `updated_asc` | Updated at ascending order | +| `updated_desc` | Updated at descending order | + +### TestReportState + +State of a test report. + +| Value | Description | +| ----- | ----------- | +| `FAILED` | | +| `PASSED` | | + +### TodoActionEnum + +| Value | Description | +| ----- | ----------- | +| `approval_required` | | +| `assigned` | | +| `build_failed` | | +| `directly_addressed` | | +| `marked` | | +| `mentioned` | | +| `unmergeable` | | + +### TodoStateEnum + +| Value | Description | +| ----- | ----------- | +| `done` | | +| `pending` | | + +### TodoTargetEnum + +| Value | Description | +| ----- | ----------- | +| `ALERT` | An Alert | +| `COMMIT` | A Commit | +| `DESIGN` | A Design | +| `EPIC` | An Epic | +| `ISSUE` | An Issue | +| `MERGEREQUEST` | A MergeRequest | + +### TypeEnum + +| Value | Description | +| ----- | ----------- | +| `personal` | | +| `project` | | + +### UserState + +Possible states of a user. + +| Value | Description | +| ----- | ----------- | +| `active` | The user is active and is able to use the system | +| `blocked` | The user has been blocked and is prevented from using the system | +| `deactivated` | The user is no longer active and is unable to use the system | + +### VisibilityLevelsEnum + +| Value | Description | +| ----- | ----------- | +| `internal` | | +| `private` | | +| `public` | | + +### VisibilityScopesEnum + +| Value | Description | +| ----- | ----------- | +| `internal` | | +| `private` | | +| `public` | | + +### VulnerabilityGrade + +The grade of the vulnerable project. + +| Value | Description | +| ----- | ----------- | +| `A` | | +| `B` | | +| `C` | | +| `D` | | +| `F` | | + +### VulnerabilityIssueLinkType + +The type of the issue link related to a vulnerability. + +| Value | Description | +| ----- | ----------- | +| `CREATED` | | +| `RELATED` | | + +### VulnerabilityReportType + +The type of the security scan that found the vulnerability. + +| Value | Description | +| ----- | ----------- | +| `CONTAINER_SCANNING` | | +| `COVERAGE_FUZZING` | | +| `DAST` | | +| `DEPENDENCY_SCANNING` | | +| `SAST` | | +| `SECRET_DETECTION` | | + +### VulnerabilitySeverity + +The severity of the vulnerability. + +| Value | Description | +| ----- | ----------- | +| `CRITICAL` | | +| `HIGH` | | +| `INFO` | | +| `LOW` | | +| `MEDIUM` | | +| `UNKNOWN` | | + +### VulnerabilitySort + +Vulnerability sort values. + +| Value | Description | +| ----- | ----------- | +| `severity_asc` | Severity in ascending order | +| `severity_desc` | Severity in descending order | + +### VulnerabilityState + +The state of the vulnerability. + +| Value | Description | +| ----- | ----------- | +| `CONFIRMED` | | +| `DETECTED` | | +| `DISMISSED` | | +| `RESOLVED` | | diff --git a/doc/api/group_milestones.md b/doc/api/group_milestones.md index e992637f4f0..47350442b3e 100644 --- a/doc/api/group_milestones.md +++ b/doc/api/group_milestones.md @@ -55,6 +55,7 @@ Example Response: "state": "active", "updated_at": "2013-10-02T09:24:18Z", "created_at": "2013-10-02T09:24:18Z", + "expired": false, "web_url": "https://gitlab.com/groups/gitlab-org/-/milestones/42" } ] diff --git a/doc/api/groups.md b/doc/api/groups.md index 07b2738f2d3..ae3300e24fb 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -847,7 +847,7 @@ Only available to group owners and administrators. This endpoint either: - Removes group, and queues a background job to delete all projects in the group as well. -- Since [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on [Premium or Silver](https://about.gitlab.com/pricing/) or higher tiers, marks a group for deletion. The deletion will happen 7 days later by default, but this can be changed in the [instance settings](../user/admin_area/settings/visibility_and_access_controls.md#default-deletion-delay-premium-only). +- Since [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on [Premium or Silver](https://about.gitlab.com/pricing/) or higher tiers, marks a group for deletion. The deletion will happen 7 days later by default, but this can be changed in the [instance settings](../user/admin_area/settings/visibility_and_access_controls.md#default-deletion-delay). ```plaintext DELETE /groups/:id @@ -941,6 +941,7 @@ GET /groups/:id/hooks/:hook_id "job_events": true, "pipeline_events": true, "wiki_page_events": true, + "deployment_events": true, "enable_ssl_verification": true, "created_at": "2012-10-12T17:04:47Z" } @@ -968,6 +969,7 @@ POST /groups/:id/hooks | `job_events` | boolean | no | Trigger hook on job events | | `pipeline_events` | boolean | no | Trigger hook on pipeline events | | `wiki_page_events` | boolean | no | Trigger hook on wiki events | +| `deployment_events` | boolean | no | Trigger hook on deployment events | | `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook | | `token` | string | no | Secret token to validate received payloads; this will not be returned in the response | @@ -994,6 +996,7 @@ PUT /groups/:id/hooks/:hook_id | `job_events` | boolean | no | Trigger hook on job events | | `pipeline_events` | boolean | no | Trigger hook on pipeline events | | `wiki_events` | boolean | no | Trigger hook on wiki events | +| `deployment_events` | boolean | no | Trigger hook on deployment events | | `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook | | `token` | string | no | Secret token to validate received payloads; this will not be returned in the response | @@ -1013,7 +1016,7 @@ DELETE /groups/:id/hooks/:hook_id ## Group Audit Events **(STARTER)** -Group audit events can be accessed via the [Group Audit Events API](audit_events.md#group-audit-events-starter) +Group audit events can be accessed via the [Group Audit Events API](audit_events.md#group-audit-events) ## Sync group with LDAP **(STARTER)** @@ -1167,9 +1170,13 @@ DELETE /groups/:id/share/:group_id ## Push Rules **(STARTER)** -### Get group push rules +> Introduced in [GitLab Starter](https://about.gitlab.com/pricing/) 13.4. -Get the [push rules](../user/group/index.md#group-push-rules-starter) of a group. +### Get group push rules **(STARTER)** + +Get the [push rules](../user/group/index.md#group-push-rules) of a group. + +Only available to group owners and administrators. ```plaintext GET /groups/:id/push_rule @@ -1207,3 +1214,111 @@ the `commit_committer_check` and `reject_unsigned_commits` parameters: ... } ``` + +### Add group push rule **(STARTER)** + +Adds [push rules](../user/group/index.md#group-push-rules) to the specified group. + +Only available to group owners and administrators. + +```plaintext +POST /groups/:id/push_rule +``` + +| Attribute | Type | Required | Description | +| --------------------------------------------- | -------------- | -------- | ----------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `deny_delete_tag` **(STARTER)** | boolean | no | Deny deleting a tag | +| `member_check` **(STARTER)** | boolean | no | Allows only GitLab users to author commits | +| `prevent_secrets` **(STARTER)** | boolean | no | [Files that are likely to contain secrets](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/gitlab/checks/files_denylist.yml) will be rejected | +| `commit_message_regex` **(STARTER)** | string | no | All commit messages must match the regular expression provided in this attribute, e.g. `Fixed \d+\..*` | +| `commit_message_negative_regex` **(STARTER)** | string | no | Commit messages matching the regular expression provided in this attribute will not be allowed, e.g. `ssh\:\/\/` | +| `branch_name_regex` **(STARTER)** | string | no | All branch names must match the regular expression provided in this attribute, e.g. `(feature|hotfix)\/*` | +| `author_email_regex` **(STARTER)** | string | no | All commit author emails must match the regular expression provided in this attribute, e.g. `@my-company.com$` | +| `file_name_regex` **(STARTER)** | string | no | Filenames matching the regular expression provided in this attribute will **not** be allowed, e.g. `(jar|exe)$` | +| `max_file_size` **(STARTER)** | integer | no | Maximum file size (MB) allowed | +| `commit_committer_check` **(PREMIUM)** | boolean | no | Only commits pushed using verified emails will be allowed | +| `reject_unsigned_commits` **(PREMIUM)** | boolean | no | Only commits signed through GPG will be allowed | + +```shell +curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule" +``` + +Response: + +```json +{ + "id": 19, + "created_at": "2020-08-31T15:53:00.073Z", + "commit_message_regex": "[a-zA-Z]", + "commit_message_negative_regex": "[x+]", + "branch_name_regex": null, + "deny_delete_tag": false, + "member_check": false, + "prevent_secrets": false, + "author_email_regex": "^[A-Za-z0-9.]+@gitlab.com$", + "file_name_regex": null, + "max_file_size": 100 +} +``` + +### Edit group push rule **(STARTER)** + +Edit push rules for a specified group. + +Only available to group owners and administrators. + +```plaintext +PUT /groups/:id/push_rule +``` + +| Attribute | Type | Required | Description | +| --------------------------------------------- | -------------- | -------- | ----------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | +| `deny_delete_tag` **(STARTER)** | boolean | no | Deny deleting a tag | +| `member_check` **(STARTER)** | boolean | no | Restricts commits to be authored by existing GitLab users only | +| `prevent_secrets` **(STARTER)** | boolean | no | [Files that are likely to contain secrets](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/gitlab/checks/files_denylist.yml) will be rejected | +| `commit_message_regex` **(STARTER)** | string | no | All commit messages must match the regular expression provided in this attribute, e.g. `Fixed \d+\..*` | +| `commit_message_negative_regex` **(STARTER)** | string | no | Commit messages matching the regular expression provided in this attribute will not be allowed, e.g. `ssh\:\/\/` | +| `branch_name_regex` **(STARTER)** | string | no | All branch names must match the regular expression provided in this attribute, e.g. `(feature|hotfix)\/*` | +| `author_email_regex` **(STARTER)** | string | no | All commit author emails must match the regular expression provided in this attribute, e.g. `@my-company.com$` | +| `file_name_regex` **(STARTER)** | string | no | Filenames matching the regular expression provided in this attribute will **not** be allowed, e.g. `(jar|exe)$` | +| `max_file_size` **(STARTER)** | integer | no | Maximum file size (MB) allowed | +| `commit_committer_check` **(PREMIUM)** | boolean | no | Only commits pushed using verified emails will be allowed | +| `reject_unsigned_commits` **(PREMIUM)** | boolean | no | Only commits signed through GPG will be allowed | + +```shell +curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule" +``` + +Response: + +```json +{ + "id": 19, + "created_at": "2020-08-31T15:53:00.073Z", + "commit_message_regex": "[a-zA-Z]", + "commit_message_negative_regex": "[x+]", + "branch_name_regex": null, + "deny_delete_tag": false, + "member_check": false, + "prevent_secrets": false, + "author_email_regex": "^[A-Za-z0-9.]+@staging.gitlab.com$", + "file_name_regex": null, + "max_file_size": 100 +} +``` + +### Delete group push rule **(STARTER)** + +Deletes the [push rules](../user/group/index.md#group-push-rules) of a group. + +Only available to group owners and administrators. + +```plaintext +DELETE /groups/:id/push_rule +``` + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | diff --git a/doc/api/issues.md b/doc/api/issues.md index 478557e1cd1..d8249869cab 100644 --- a/doc/api/issues.md +++ b/doc/api/issues.md @@ -7,7 +7,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` -request on that project will result in a `404` status code. +request on that project results in a `404` status code. ## Issues pagination @@ -17,12 +17,13 @@ are paginated. Read more on [pagination](README.md#pagination). CAUTION: **Deprecation:** -> `reference` attribute in response is deprecated in favour of `references`. -> Introduced [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) +The `reference` attribute in responses is deprecated in favor of `references`. +Introduced in [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354). NOTE: **Note:** -> `references.relative` is relative to the group / project that the issue is being requested. When issue is fetched from its project -> `relative` format would be the same as `short` format and when requested across groups / projects it is expected to be the same as `full` format. +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. ## List issues @@ -49,30 +50,30 @@ GET /issues?confidential=true | Attribute | Type | Required | Description | | ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `state` | string | no | Return `all` issues or just those that are `opened` or `closed` | -| `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. | -| `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`. The `description_html` attribute was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413)| -| `milestone` | string | no | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone. | -| `scope` | string | no | Return issues 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.<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)_ | +| `assignee_id` | integer | no | Return issues assigned to the given user `id`. Mutually exclusive with `assignee_username`. `None` returns unassigned issues. `Any` returns issues with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | +| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In GitLab CE, the `assignee_username` array should only contain a single value. Otherwise, an invalid parameter error is returned. | | `author_id` | integer | no | Return issues created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | | `author_username` | string | no | Return issues created by the given `username`. Similar to `author_id` and mutually exclusive with `author_id`. | -| `assignee_id` | integer | no | Return issues assigned to the given user `id`. Mutually exclusive with `assignee_username`. `None` returns unassigned issues. `Any` returns issues with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | -| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In GitLab CE `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. | -| `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)_ | -| `weight` **(STARTER)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | +| `confidential` | boolean | no | Filter confidential or public issues. | +| `created_after` | datetime | no | Return issues created on or after the given time | +| `created_before` | datetime | no | Return issues created on or before the given time | +| `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))_ | | `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` | +| `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. | +| `milestone` | string | no | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone. | +| `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)_ | +| `non_archived` | boolean | no | Return issues only from non-archived projects. If `false`, the response returns issues from both archived and non-archived projects. Default is `true`. _(Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/197170))_ | +| `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` | | `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` | -| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` | +| `scope` | string | no | Return issues 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.<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 issues 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` | -| `created_after` | datetime | no | Return issues created on or after the given time | -| `created_before` | datetime | no | Return issues created on or before the given time | +| `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` | | `updated_after` | datetime | no | Return issues updated on or after the given time | | `updated_before` | datetime | no | Return issues updated on or before the given time | -| `confidential` | boolean | no | Filter confidential or public issues. | -| `not` | Hash | no | Return issues that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `my_reaction_emoji` | -| `non_archived` | boolean | no | Return issues only from non-archived projects. If `false`, response will return issues from both archived and non-archived projects. Default is `true`. _(Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/197170))_ | -| `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))_ | +| `weight` **(STARTER)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | +| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. The `description_html` attribute was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413)| ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/issues" @@ -165,7 +166,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/) can also see the `weight` parameter: ```json @@ -179,7 +180,7 @@ the `weight` parameter: ] ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see the `health_status` parameter: ```json @@ -193,15 +194,20 @@ the `health_status` parameter: ] ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform +to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). +This value is only present for issues closed after GitLab 10.6 and if the user account +that closed the issue still exists. ## List group issues Get a list of a group's issues. -If the group is private, credentials will need to be provided for authorization. +If the group is private, credentials need to be provided for authorization. The preferred way to do this, is by using [personal access tokens](../user/profile/personal_access_tokens.md). ```plaintext @@ -223,30 +229,30 @@ GET /groups/:id/issues?confidential=true | Attribute | Type | Required | Description | | ------------------- | ---------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `assignee_id` | integer | no | Return issues assigned to the given user `id`. Mutually exclusive with `assignee_username`. `None` returns unassigned issues. `Any` returns issues with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | +| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In GitLab CE, the `assignee_username` array should only contain a single value. Otherwise, an invalid parameter error is returned. | +| `author_id` | integer | no | Return issues created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | +| `author_username` | string | no | Return issues created by the given `username`. Similar to `author_id` and mutually exclusive with `author_id`. | +| `confidential` | boolean | no | Filter confidential or public issues. | +| `created_after` | datetime | no | Return issues created on or after the given time | +| `created_before` | datetime | no | Return issues created on or before the given time | +| `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))_ | | `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 issues or just those that are `opened` or `closed` | -| `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. | -| `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`. The `description_html` attribute was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | | `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. | | `milestone` | string | no | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone. | -| `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)_ | -| `author_id` | integer | no | Return issues created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | -| `author_username` | string | no | Return issues created by the given `username`. Similar to `author_id` and mutually exclusive with `author_id`. | -| `assignee_id` | integer | no | Return issues assigned to the given user `id`. Mutually exclusive with `assignee_username`. `None` returns unassigned issues. `Any` returns issues with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | -| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In GitLab CE `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. | | `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)_ | -| `weight` **(STARTER)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | +| `non_archived` | boolean | no | Return issues from non archived projects. Default is true. _(Introduced in [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23785))_ | +| `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` | -| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` | +| `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)_ | | `search` | string | no | Search group issues against their `title` and `description` | -| `created_after` | datetime | no | Return issues created on or after the given time | -| `created_before` | datetime | no | Return issues created on or before the given time | +| `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` | | `updated_after` | datetime | no | Return issues updated on or after the given time | | `updated_before` | datetime | no | Return issues updated on or before the given time | -| `confidential` | boolean | no | Filter confidential or public issues. | -| `not` | Hash | no | Return issues that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `my_reaction_emoji`, `search`, `in` | -| `non_archived` | boolean | no | Return issues from non archived projects. Default is true. _(Introduced in [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23785))_ | -| `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))_ | +| `weight` **(STARTER)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | +| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. The `description_html` attribute was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4/issues" @@ -338,7 +344,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/) can also see the `weight` parameter: ```json @@ -352,7 +358,7 @@ the `weight` parameter: ] ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see the `health_status` parameter: ```json @@ -366,15 +372,19 @@ the `health_status` parameter: ] ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). +This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. ## List project issues Get a list of a project's issues. -If the project is private, credentials will need to be provided for authorization. +If the project is private, 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). ```plaintext @@ -396,29 +406,29 @@ GET /projects/:id/issues?confidential=true | Attribute | Type | Required | Description | | ------------------- | ---------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `assignee_id` | integer | no | Return issues assigned to the given user `id`. Mutually exclusive with `assignee_username`. `None` returns unassigned issues. `Any` returns issues with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | +| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In GitLab CE, the `assignee_username` array should only contain a single value. Otherwise, an invalid parameter error is returned. | +| `author_id` | integer | no | Return issues created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | +| `author_username` | string | no | Return issues created by the given `username`. Similar to `author_id` and mutually exclusive with `author_id`. | +| `confidential` | boolean | no | Filter confidential or public issues. | +| `created_after` | datetime | no | Return issues created on or after the given time | +| `created_before` | datetime | no | Return issues created on or before the given time | +| `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))_ | | `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` | -| `state` | string | no | Return all issues or just those that are `opened` or `closed` | | `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. | -| `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`. `description_html` Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | | `milestone` | string | no | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone. | -| `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)_ | -| `author_id` | integer | no | Return issues created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | -| `author_username` | string | no | Return issues created by the given `username`. Similar to `author_id` and mutually exclusive with `author_id`. | -| `assignee_id` | integer | no | Return issues assigned to the given user `id`. Mutually exclusive with `assignee_username`. `None` returns unassigned issues. `Any` returns issues with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5)_ | -| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In GitLab CE `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. | | `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)_ | -| `weight` **(STARTER)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | +| `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` | -| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` | +| `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)_ | | `search` | string | no | Search project issues against their `title` and `description` | -| `created_after` | datetime | no | Return issues created on or after the given time | -| `created_before` | datetime | no | Return issues created on or before the given time | +| `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` | | `updated_after` | datetime | no | Return issues updated on or after the given time | | `updated_before` | datetime | no | Return issues updated on or before the given time | -| `confidential` | boolean | no | Filter confidential or public issues. | -| `not` | Hash | no | Return issues that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `my_reaction_emoji`, `search`, `in` | -| `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))_ | +| `weight` **(STARTER)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | +| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. `description_html` was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues" @@ -517,7 +527,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/) can also see the `weight` parameter: ```json @@ -531,7 +541,7 @@ the `weight` parameter: ] ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see the `health_status` parameter: ```json @@ -545,15 +555,181 @@ the `health_status` parameter: ] ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. ## Single issue +Only for administrators. Get a single issue. + +The preferred way to do this is by using [personal access tokens](../user/profile/personal_access_tokens.md). + +```plaintext +GET /issues/:id +``` + +| Attribute | Type | Required | Description | +|-------------|---------|----------|--------------------------------------| +| `id` | integer | yes | The ID of the issue | + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/issues/41" +``` + +Example response: + +```json +{ + "id" : 1, + "milestone" : { + "due_date" : null, + "project_id" : 4, + "state" : "closed", + "description" : "Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.", + "iid" : 3, + "id" : 11, + "title" : "v3.0", + "created_at" : "2016-01-04T15:31:39.788Z", + "updated_at" : "2016-01-04T15:31:39.788Z", + "closed_at" : "2016-01-05T15:31:46.176Z" + }, + "author" : { + "state" : "active", + "web_url" : "https://gitlab.example.com/root", + "avatar_url" : null, + "username" : "root", + "id" : 1, + "name" : "Administrator" + }, + "description" : "Omnis vero earum sunt corporis dolor et placeat.", + "state" : "closed", + "iid" : 1, + "assignees" : [{ + "avatar_url" : null, + "web_url" : "https://gitlab.example.com/lennie", + "state" : "active", + "username" : "lennie", + "id" : 9, + "name" : "Dr. Luella Kovacek" + }], + "assignee" : { + "avatar_url" : null, + "web_url" : "https://gitlab.example.com/lennie", + "state" : "active", + "username" : "lennie", + "id" : 9, + "name" : "Dr. Luella Kovacek" + }, + "labels" : [], + "upvotes": 4, + "downvotes": 0, + "merge_requests_count": 0, + "title" : "Ut commodi ullam eos dolores perferendis nihil sunt.", + "updated_at" : "2016-01-04T15:31:46.176Z", + "created_at" : "2016-01-04T15:31:46.176Z", + "closed_at" : null, + "closed_by" : null, + "subscribed": false, + "user_notes_count": 1, + "due_date": null, + "web_url": "http://example.com/my-group/my-project/issues/1", + "references": { + "short": "#1", + "relative": "#1", + "full": "my-group/my-project#1" + }, + "time_stats": { + "time_estimate": 0, + "total_time_spent": 0, + "human_time_estimate": null, + "human_total_time_spent": null + }, + "confidential": false, + "discussion_locked": false, + "_links": { + "self": "http://example.com/api/v4/projects/1/issues/2", + "notes": "http://example.com/api/v4/projects/1/issues/2/notes", + "award_emoji": "http://example.com/api/v4/projects/1/issues/2/award_emoji", + "project": "http://example.com/api/v4/projects/1" + }, + "task_completion_status":{ + "count":0, + "completed_count":0 + }, + "weight": null, + "has_tasks": false, + "_links": { + "self": "http://gitlab.dummy:3000/api/v4/projects/1/issues/1", + "notes": "http://gitlab.dummy:3000/api/v4/projects/1/issues/1/notes", + "award_emoji": "http://gitlab.dummy:3000/api/v4/projects/1/issues/1/award_emoji", + "project": "http://gitlab.dummy:3000/api/v4/projects/1" + }, + "references": { + "short": "#1", + "relative": "#1", + "full": "gitlab-org/gitlab-test#1" + }, + "subscribed": true, + "moved_to_id": null, + "epic_iid": null, + "epic": null +} +``` + +Users on GitLab [Starter, Bronze, or higher](https://about.gitlab.com/pricing/) can also see +the `weight` parameter: + +```json +{ + "project_id" : 4, + "description" : "Omnis vero earum sunt corporis dolor et placeat.", + "weight": null, + ... +} +``` + +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see +the `epic` property: + +```javascript +{ + "project_id" : 4, + "description" : "Omnis vero earum sunt corporis dolor et placeat.", + "epic": { + "epic_iid" : 5, //deprecated, use `iid` of the `epic` attribute + "epic": { + "id" : 42, + "iid" : 5, + "title": "My epic epic", + "url" : "/groups/h5bp/-/epics/5", + "group_id": 8 + }, + // ... +} +``` + +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform +to the GitLab EE API. + +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). +This value is only present for issues closed after GitLab 10.6 and if the user account +that closed the issue still exists. + +NOTE: **Note:** +The `epic_iid` attribute is deprecated, and [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +Please use `iid` of the `epic` attribute instead. + +## Single project issue + Get a single project issue. -If the project is private or the issue is confidential, credentials will need to be provided for authorization. +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). ```plaintext @@ -653,7 +829,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/) can also see the `weight` parameter: ```json @@ -665,7 +841,7 @@ the `weight` parameter: } ``` -Users on GitLab [Premium](https://about.gitlab.com/pricing/) will additionally see +Users on GitLab [Premium](https://about.gitlab.com/pricing/) can also see the `epic` property: ```javascript @@ -684,8 +860,8 @@ the `epic` property: } ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will also additionally see -the `health_status` property: +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see the `health_status` +property: ```json [ @@ -698,11 +874,15 @@ the `health_status` property: ] ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. -**Note**: The `epic_iid` attribute is deprecated and [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +NOTE: **Note:** +The `epic_iid` attribute is deprecated and [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). Please use `iid` of the `epic` attribute instead. ## New issue @@ -716,17 +896,17 @@ POST /projects/:id/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 | -| `iid` | integer/string | no | The internal ID of the project's issue (requires admin or project owner rights) | +| `iid` | integer/string | no | The internal ID of the project's issue (requires administrator or project owner rights) | | `title` | string | yes | The title of an issue | | `description` | string | no | The description of an issue. Limited to 1,048,576 characters. | | `confidential` | boolean | no | Set an issue to be confidential. Default is `false`. | | `assignee_ids` | integer array | no | The ID of the user(s) to assign the issue to. | | `milestone_id` | integer | no | The global ID of a milestone to assign issue | | `labels` | string | no | Comma-separated label names for an issue | -| `created_at` | string | no | Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` (requires admin or project/group owner rights) | +| `created_at` | string | no | Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` (requires administrator or project/group owner rights) | | `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, for example `2016-03-11` | -| `merge_request_to_resolve_discussions_of` | integer | no | The IID of a merge request in which to resolve all issues. This will fill the issue with a default description and mark all discussions as resolved. When passing a description or title, these values will take precedence over the default values.| -| `discussion_to_resolve` | string | no | The ID of a discussion to resolve. This will fill in the issue with a default description and mark the discussion as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. | +| `merge_request_to_resolve_discussions_of` | integer | no | The IID of a merge request in which to resolve all issues. This fills out the issue with a default description and mark all discussions as resolved. When passing a description or title, these values take precedence over the default values.| +| `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`. | | `weight` **(STARTER)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. | | `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)) | @@ -796,7 +976,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/) can also see the `weight` parameter: ```json @@ -808,7 +988,7 @@ the `weight` parameter: } ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see the `health_status` parameter: ```json @@ -822,9 +1002,12 @@ the `health_status` parameter: ] ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. ## Rate limits @@ -853,7 +1036,7 @@ PUT /projects/:id/issues/:issue_iid | `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. | | `state_event` | string | no | The state event of an issue. Set `close` to close the issue and `reopen` to reopen it | -| `updated_at` | string | no | Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` (requires admin or project owner rights). Empty string or null values are not accepted.| +| `updated_at` | string | no | Date time string, ISO 8601 formatted, for example `2016-03-11T03:45:40Z` (requires administrator or project owner rights). Empty string or null values are not accepted.| | `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, for example `2016-03-11` | | `weight` **(STARTER)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. 0 | | `discussion_locked` | boolean | no | Flag indicating if the issue's discussion is locked. If the discussion is locked only project members can add or edit comments. | @@ -932,7 +1115,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/) can also see the `weight` parameter: ```json @@ -944,7 +1127,7 @@ the `weight` parameter: } ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see the `health_status` parameter: ```json @@ -965,7 +1148,8 @@ NOTE: **Note:** `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. NOTE: **Note:** -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. ## Delete an issue @@ -997,9 +1181,9 @@ PUT /projects/:id/issues/:issue_iid/reorder | Attribute | Type | Required | Description | |-------------|---------|----------|--------------------------------------| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user | -| `issue_iid` | integer | yes | The internal ID of a project's issue | -| `move_after_id` | integer | no | The ID of a projet's issue to move this issue after | -| `move_before_id` | integer | no | The ID of a projet's issue to move this issue before | +| `issue_iid` | integer | yes | The internal ID of the project's issue | +| `move_after_id` | integer | no | The ID of a project's issue that should be placed after this issue | +| `move_before_id` | integer | no | The ID of a project's issue that should be placed before this issue | ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues/85/reorder?move_after_id=51&move_before_id=92" @@ -1009,10 +1193,10 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab 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, error `400` together with an explaining error message is returned. +issue, status code `400` and an error message is returned. -If a given label and/or milestone with the same name also exists in the target -project, it will then be assigned to the issue that is being moved. +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. ```plaintext POST /projects/:id/issues/:issue_iid/move @@ -1099,7 +1283,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/) can also see the `weight` parameter: ```json @@ -1111,7 +1295,7 @@ the `weight` parameter: } ``` -Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Ultimate](https://about.gitlab.com/pricing/) can also see the `health_status` parameter: ```json @@ -1125,9 +1309,12 @@ the `health_status` parameter: ] ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. ## Subscribe to an issue @@ -1219,7 +1406,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/) can also see the `weight` parameter: ```json @@ -1231,9 +1418,12 @@ the `weight` parameter: } ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. ## Unsubscribe from an issue @@ -1306,10 +1496,10 @@ Example response: } ``` -## Create a todo +## Create a to-do -Manually creates a todo for the current user on an issue. If -there already exists a todo for the user on that issue, status code `304` is +Manually creates a to-do for the current user on an issue. If +there already exists a to-do for the user on that issue, status code `304` is returned. ```plaintext @@ -1418,9 +1608,12 @@ Example response: } ``` -**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API. +NOTE: **Note:** +The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. -**Note**: The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists. +NOTE: **Note:** +The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +the issue still exists. ## Set a time estimate for an issue @@ -1538,7 +1731,7 @@ Example response: ## Get time tracking stats -If the project is private or the issue is confidential, credentials will need to be provided for authorization. +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). ```plaintext @@ -1569,7 +1762,7 @@ Example response: Get all the merge requests that are related to the issue. -If the project is private or the issue is confidential, credentials will need to be provided for authorization. +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). ```plaintext @@ -1726,19 +1919,19 @@ Example response: ## List merge requests that will close issue on merge -Get all the merge requests that will close issue when merged. +Get all the merge requests that will close an issue when merged. -If the project is private or the issue is confidential, credentials will need to be provided for authorization. +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). ```plaintext GET /projects/:id/issues/:issue_iid/closed_by ``` -| Attribute | Type | Required | Description | -| --------- | ---- | -------- | ----------- | -| `id` | integer | yes | The ID of a project | -| `issue_iid` | integer | yes | The internal ID of a project issue | +| 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 issue | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/issues/11/closed_by" @@ -1804,7 +1997,7 @@ Example response: ## Participants on issues -If the project is private or the issue is confidential, credentials will need to be provided for authorization. +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). ```plaintext diff --git a/doc/api/job_artifacts.md b/doc/api/job_artifacts.md index 5df7915ad5c..458877d6548 100644 --- a/doc/api/job_artifacts.md +++ b/doc/api/job_artifacts.md @@ -14,7 +14,7 @@ GET /projects/:id/jobs/:job_id/artifacts |-------------|----------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------| | `id` | integer/string | yes | ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | | `job_id` | integer | yes | ID of a job. | -| `job_token` **(PREMIUM)** | string | no | To be used with [triggers](../ci/triggers/README.md#when-a-pipeline-depends-on-the-artifacts-of-another-pipeline-premium) for multi-project pipelines. It should be invoked only inside `.gitlab-ci.yml`. Its value is always `$CI_JOB_TOKEN`. | +| `job_token` **(PREMIUM)** | string | no | To be used with [triggers](../ci/triggers/README.md#when-a-pipeline-depends-on-the-artifacts-of-another-pipeline) for multi-project pipelines. It should be invoked only inside `.gitlab-ci.yml`. Its value is always `$CI_JOB_TOKEN`. | Example request using the `PRIVATE-TOKEN` header: @@ -74,7 +74,7 @@ Parameters | `id` | integer/string | yes | ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. | | `ref_name` | string | yes | Branch or tag name in repository. HEAD or SHA references are not supported. | | `job` | string | yes | The name of the job. | -| `job_token` **(PREMIUM)** | string | no | To be used with [triggers](../ci/triggers/README.md#when-a-pipeline-depends-on-the-artifacts-of-another-pipeline-premium) for multi-project pipelines. It should be invoked only inside `.gitlab-ci.yml`. Its value is always `$CI_JOB_TOKEN`. | +| `job_token` **(PREMIUM)** | string | no | To be used with [triggers](../ci/triggers/README.md#when-a-pipeline-depends-on-the-artifacts-of-another-pipeline) for multi-project pipelines. It should be invoked only inside `.gitlab-ci.yml`. Its value is always `$CI_JOB_TOKEN`. | Example request using the `PRIVATE-TOKEN` header: diff --git a/doc/api/markdown.md b/doc/api/markdown.md index 4e5c8515126..e382ca6b7c8 100644 --- a/doc/api/markdown.md +++ b/doc/api/markdown.md @@ -20,8 +20,8 @@ POST /api/v4/markdown | Attribute | Type | Required | Description | | --------- | ------- | ------------- | ------------------------------------------ | | `text` | string | yes | The Markdown text to render | -| `gfm` | boolean | no (optional) | Render text using GitLab Flavored Markdown. Default is `false` | -| `project` | string | no (optional) | Use `project` as a context when creating references using GitLab Flavored Markdown. [Authentication](README.md#authentication) is required if a project is not public. | +| `gfm` | boolean | no | Render text using GitLab Flavored Markdown. Default is `false` | +| `project` | string | no | Use `project` as a context when creating references using GitLab Flavored Markdown. [Authentication](README.md#authentication) is required if a project is not public. | ```shell curl --header Content-Type:application/json --data '{"text":"Hello world! :tada:", "gfm":true, "project":"group_example/project_example"}' "https://gitlab.example.com/api/v4/markdown" diff --git a/doc/api/members.md b/doc/api/members.md index 90c36a0b822..76d63b277c4 100644 --- a/doc/api/members.md +++ b/doc/api/members.md @@ -81,9 +81,10 @@ Example response: ## List all members of a group or project including inherited members -Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups. -When a user is a member of the project/group and of one or more ancestor groups the user is returned only once with the project `access_level` (if exists) -or the `access_level` for the user in the first group which they belong to in the project groups ancestors chain. +Gets a list of group or project members viewable by the authenticated user, including inherited members and permissions through ancestor groups. + +CAUTION: **Caution:** +Due to [an issue](https://gitlab.com/gitlab-org/gitlab/-/issues/249523), the users effective `access_level` may actually be higher than returned value when listing group members. This function takes pagination parameters `page` and `per_page` to restrict the list of users. diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index 4798145e837..faefc445210 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -2085,10 +2085,10 @@ the `approvals_before_merge` parameter: } ``` -## Create a todo +## Create a to-do -Manually creates a todo for the current user on a merge request. -If there already exists a todo for the user on that merge request, +Manually creates a to-do for the current user on a merge request. +If there already exists a to-do for the user on that merge request, status code `304` is returned. ```plaintext diff --git a/doc/api/milestones.md b/doc/api/milestones.md index 7b4d1cc331d..7b26dbadad4 100644 --- a/doc/api/milestones.md +++ b/doc/api/milestones.md @@ -52,7 +52,8 @@ Example Response: "start_date": "2013-11-10", "state": "active", "updated_at": "2013-10-02T09:24:18Z", - "created_at": "2013-10-02T09:24:18Z" + "created_at": "2013-10-02T09:24:18Z", + "expired": false } ] ``` diff --git a/doc/api/notes.md b/doc/api/notes.md index 3a68454507a..aaff28757bb 100644 --- a/doc/api/notes.md +++ b/doc/api/notes.md @@ -12,7 +12,8 @@ assignee changes, there will be a corresponding system note). ## Resource events -> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/38096) in GitLab 13.3 for state, milestone, and weight events. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/38096) in GitLab 13.3 for state, milestone, and weight events. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40850) in [GitLab Starter](https://about.gitlab.com/pricing/) 13.4 for iteration events. Some system notes are not part of this API, but are recorded as separate events: @@ -20,6 +21,7 @@ Some system notes are not part of this API, but are recorded as separate events: - [Resource state events](resource_state_events.md) - [Resource milestone events](resource_milestone_events.md) - [Resource weight events](resource_weight_events.md) **(STARTER)** +- [Resource iteration events](resource_iteration_events.md) **(STARTER)** ## Notes pagination diff --git a/doc/api/oauth2.md b/doc/api/oauth2.md index cc8b31ecf17..5fbb7913ff4 100644 --- a/doc/api/oauth2.md +++ b/doc/api/oauth2.md @@ -61,7 +61,7 @@ The web application flow is: include the GET `code` parameter, for example: ```plaintext - http://myapp.com/oauth/redirect?code=1234567890&state=YOUR_UNIQUE_STATE_HASH + https://example.com/oauth/redirect?code=1234567890&state=YOUR_UNIQUE_STATE_HASH ``` You should then use `code` to request an access token. @@ -72,7 +72,7 @@ The web application flow is: ```ruby parameters = 'client_id=APP_ID&client_secret=APP_SECRET&code=RETURNED_CODE&grant_type=authorization_code&redirect_uri=REDIRECT_URI' - RestClient.post 'http://gitlab.example.com/oauth/token', parameters + RestClient.post 'https://gitlab.example.com/oauth/token', parameters ``` Example response: @@ -125,7 +125,7 @@ will include a fragment with `access_token` as well as token details in GET parameters, for example: ```plaintext -http://myapp.com/oauth/redirect#access_token=ABCDExyz123&state=YOUR_UNIQUE_STATE_HASH&token_type=bearer&expires_in=3600 +https://example.com/oauth/redirect#access_token=ABCDExyz123&state=YOUR_UNIQUE_STATE_HASH&token_type=bearer&expires_in=3600 ``` ### Resource owner password credentials flow @@ -198,7 +198,7 @@ By default, the scope of the access token is `api`, which provides complete read For testing, you can use the `oauth2` Ruby gem: ```ruby -client = OAuth2::Client.new('the_client_id', 'the_client_secret', :site => "http://example.com") +client = OAuth2::Client.new('the_client_id', 'the_client_secret', :site => "https://example.com") access_token = client.password.get_token('user@example.com', 'secret') puts access_token.token ``` diff --git a/doc/api/openapi/openapi.yaml b/doc/api/openapi/openapi.yaml new file mode 100644 index 00000000000..8aa4de62501 --- /dev/null +++ b/doc/api/openapi/openapi.yaml @@ -0,0 +1,26 @@ +openapi: "3.0.0" +info: + description: | + An OpenAPI definition for the GitLab REST API. + Only one API resource/endpoint is 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. + + When viewing this on gitlab.com, you can test API calls directly from the browser + against the `gitlab.com` instance, if you are logged in. + The feature uses the current [GitLab session cookie](https://docs.gitlab.com/ee/api/README.html#session-cookie), + so each request is made using your account. + + Read more at <https://docs.gitlab.com/ee/development/documentation/styleguide.html#restful-api>. + 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" +servers: + - url: "https://gitlab.com/api/" + +paths: + /v4/version: + $ref: "v4/version.yaml" diff --git a/doc/api/openapi/v4/version.yaml b/doc/api/openapi/v4/version.yaml new file mode 100644 index 00000000000..3a689840f4c --- /dev/null +++ b/doc/api/openapi/v4/version.yaml @@ -0,0 +1,28 @@ +# Markdown documentation: https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/api/version.md + +get: + tags: + - version + summary: "Retrieve version information for this GitLab instance." + operationId: "getVersion" + responses: + "401": + description: "unauthorized operation" + "200": + description: "successful operation" + content: + "application/json": + schema: + title: "VersionResponse" + type: "object" + properties: + version: + type: "string" + revision: + type: "string" + examples: + Example: + value: + version: "13.3.0-pre" + revision: "f2b05afebb0" + diff --git a/doc/api/pages_domains.md b/doc/api/pages_domains.md index 1fddc79814f..6f7236c8d1a 100644 --- a/doc/api/pages_domains.md +++ b/doc/api/pages_domains.md @@ -10,9 +10,9 @@ Endpoints for connecting custom domain(s) and TLS certificates in [GitLab Pages] The GitLab Pages feature must be enabled to use these endpoints. Find out more about [administering](../administration/pages/index.md) and [using](../user/project/pages/index.md) the feature. -## List all pages domains +## List all Pages domains -Get a list of all pages domains. The user must have admin permissions. +Get a list of all Pages domains. The user must have admin permissions. ```plaintext GET /pages/domains @@ -37,9 +37,9 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a ] ``` -## List pages domains +## List Pages domains -Get a list of project pages domains. The user must have permissions to view pages domains. +Get a list of project Pages domains. The user must have permissions to view Pages domains. ```plaintext GET /projects/:id/pages/domains @@ -73,9 +73,9 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a ] ``` -## Single pages domain +## Single Pages domain -Get a single project pages domain. The user must have permissions to view pages domains. +Get a single project Pages domain. The user must have permissions to view Pages domains. ```plaintext GET /projects/:id/pages/domains/:domain @@ -115,9 +115,9 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/a } ``` -## Create new pages domain +## Create new Pages domain -Creates a new pages domain. The user must have permissions to create new pages domains. +Creates a new Pages domain. The user must have permissions to create new Pages domains. ```plaintext POST /projects/:id/pages/domains @@ -131,14 +131,20 @@ POST /projects/:id/pages/domains | `certificate` | file/string | no | The certificate in PEM format with intermediates following in most specific to least specific order.| | `key` | file/string | no | The certificate key in PEM format. | +Create a new Pages domain with a certificate from a `.pem` file: + ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain=ssl.domain.example" --form "certificate=@/path/to/cert.pem" --form "key=@/path/to/key.pem" "https://gitlab.example.com/api/v4/projects/5/pages/domains" ``` +Create a new Pages domain by using a variable containing the certificate: + ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain=ssl.domain.example" --form "certificate=$CERT_PEM" --form "key=$KEY_PEM" "https://gitlab.example.com/api/v4/projects/5/pages/domains" ``` +Create a new Pages domain with an [automatic certificate](../user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md#enabling-lets-encrypt-integration-for-your-custom-domain): + ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain=ssl.domain.example" --form "auto_ssl_enabled=true" "https://gitlab.example.com/api/v4/projects/5/pages/domains" ``` @@ -157,9 +163,9 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain } ``` -## Update pages domain +## Update Pages domain -Updates an existing project pages domain. The user must have permissions to change an existing pages domains. +Updates an existing project Pages domain. The user must have permissions to change an existing Pages domains. ```plaintext PUT /projects/:id/pages/domains/:domain @@ -175,10 +181,14 @@ PUT /projects/:id/pages/domains/:domain ### Adding certificate +Add a certificate for a Pages domain from a `.pem` file: + ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "certificate=@/path/to/cert.pem" --form "key=@/path/to/key.pem" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" ``` +Add a certificate for a Pages domain by using a variable containing the certificate: + ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "certificate=$CERT_PEM" --form "key=$KEY_PEM" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" ``` @@ -227,9 +237,9 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "certifi } ``` -## Delete pages domain +## Delete Pages domain -Deletes an existing project pages domain. +Deletes an existing project Pages domain. ```plaintext DELETE /projects/:id/pages/domains/:domain diff --git a/doc/api/pipelines.md b/doc/api/pipelines.md index dc81ef0e25e..95a7787e029 100644 --- a/doc/api/pipelines.md +++ b/doc/api/pipelines.md @@ -155,8 +155,8 @@ Example of response > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/202525) in GitLab 13.0. -CAUTION: **Caution:** -This API route is part of the [JUnit test report](../ci/junit_test_reports.md) feature. It is protected by a [feature flag](../development/feature_flags/index.md) that is **disabled** due to performance issues with very large data sets. +NOTE: **Note:** +This API route is part of the [Unit test report](../ci/unit_test_reports.md) feature. ```plaintext GET /projects/:id/pipelines/:pipeline_id/test_report diff --git a/doc/api/project_import_export.md b/doc/api/project_import_export.md index 5565eaa97f7..5c631d2f084 100644 --- a/doc/api/project_import_export.md +++ b/doc/api/project_import_export.md @@ -86,8 +86,12 @@ an email notifying the user to download the file, uploading the exported file to `regeneration_in_progress` is when an export file is available to download, and a request to generate a new export is in process. +`none` is when there are no exports _queued_, _started_, _finished_, or _being regenerated_ + `_links` are only present when export has finished. +`created_at` is the project create timestamp, not the export start time. + ```json { "id": 1, diff --git a/doc/api/project_level_variables.md b/doc/api/project_level_variables.md index 4760816f5d0..cd1c24b756f 100644 --- a/doc/api/project_level_variables.md +++ b/doc/api/project_level_variables.md @@ -154,11 +154,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git ## The `filter` parameter > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/34490) in GitLab 13.2. -> - It's deployed behind a feature flag, disabled by default. -> - [Became enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39209) on GitLab 13.3. -> - It's enabled on GitLab.com. -> - It's recommended for production use. -> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable). +> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/227052) in GitLab 13.4. This parameter is used for filtering by attributes, such as `environment_scope`. @@ -167,21 +163,3 @@ Example usage: ```shell curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1?filter[environment_scope]=production" ``` - -### Enable or disable - -It is deployed behind a feature flag that is **enabled by default**. -[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md) -can opt to disable it for your instance. - -To disable it: - -```ruby -Feature.disable(:ci_variables_api_filter_environment_scope) -``` - -To enable it: - -```ruby -Feature.enable(:ci_variables_api_filter_environment_scope) -``` diff --git a/doc/api/project_repository_storage_moves.md b/doc/api/project_repository_storage_moves.md index f7fb361bf53..2010fccc624 100644 --- a/doc/api/project_repository_storage_moves.md +++ b/doc/api/project_repository_storage_moves.md @@ -9,8 +9,22 @@ type: reference > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31285) in GitLab 13.0. -Project repository storage can be moved. To retrieve project repository storage moves using the API, -you must [authenticate yourself](README.md#authentication) as an administrator. +Project 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 project repository storage moves are processed, they transition through different states. Values +of `state` are: + +- `initial` +- `scheduled` +- `started` +- `finished` +- `failed` +- `replicated` +- `cleanup_failed` + +This API requires you to [authenticate yourself](README.md#authentication) as an administrator. ## Retrieve all project repository storage moves diff --git a/doc/api/project_templates.md b/doc/api/project_templates.md index e08ff56925e..08f3aefb429 100644 --- a/doc/api/project_templates.md +++ b/doc/api/project_templates.md @@ -21,7 +21,7 @@ It deprecates these endpoints, which will be removed for API version 5. In addition to templates common to the entire instance, project-specific templates are also available from this API endpoint. -Support for [Group-level file templates](../user/group/index.md#group-file-templates-premium) +Support for [Group-level file templates](../user/group/index.md#group-file-templates) **(PREMIUM)** was [added](https://gitlab.com/gitlab-org/gitlab/-/issues/5987) in GitLab 11.5 @@ -110,7 +110,7 @@ Example response (Dockerfile): ```json { "name": "Binary", - "content": "# This file is a template, and might need editing before it works on your project.\n# This Dockerfile installs a compiled binary into a bare system.\n# You must either commit your compiled binary into source control (not recommended)\n# or build the binary first as part of a CI/CD pipeline.\n\nFROM buildpack-deps:jessie\n\nWORKDIR /usr/local/bin\n\n# Change `app` to whatever your binary is called\nAdd app .\nCMD [\"./app\"]\n" + "content": "# This file is a template, and might need editing before it works on your project.\n# This Dockerfile installs a compiled binary into a bare system.\n# You must either commit your compiled binary into source control (not recommended)\n# or build the binary first as part of a CI/CD pipeline.\n\nFROM buildpack-deps:buster\n\nWORKDIR /usr/local/bin\n\n# Change `app` to whatever your binary is called\nAdd app .\nCMD [\"./app\"]\n" } ``` diff --git a/doc/api/projects.md b/doc/api/projects.md index ee9779b54e0..ad26457ad99 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -22,7 +22,7 @@ Values for the project visibility level are: ## Project merge method -There are currently three options for `merge_method` to choose from: +There are three options for `merge_method` to choose from: - `merge`: A merge commit is created for every merge, and merging is allowed as long as there are no conflicts. @@ -44,28 +44,28 @@ GET /projects | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `archived` | boolean | no | Limit by archived status | -| `visibility` | string | no | Limit by visibility `public`, `internal`, or `private` | +| `id_after` | integer | no | Limit results to projects with IDs greater than the specified ID | +| `id_before` | integer | no | Limit results to projects with IDs less than the specified ID | +| `last_activity_after` | datetime | no | Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ | +| `last_activity_before` | datetime | no | Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ | +| `membership` | boolean | no | Limit by projects that the current user is a member of | +| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md#valid-access-levels) | | `order_by` | string | no | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. `repository_size`, `storage_size`, or `wiki_size` fields are only allowed for admins. Default is `created_at` | -| `sort` | string | no | Return projects sorted in `asc` or `desc` order. Default is `desc` | -| `search` | string | no | Return list of projects matching the search criteria | +| `owned` | boolean | no | Limit by projects explicitly owned by the current user | +| `repository_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the repository checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | +| `repository_storage` | string | no | Limit results to projects stored on repository_storage. Available for admins only. | | `search_namespaces` | boolean | no | Include ancestor namespaces when matching search criteria. Default is `false` | +| `search` | string | no | Return list of projects matching the search criteria | | `simple` | boolean | no | Return only limited fields for each project. This is a no-op without authentication as then _only_ simple fields are returned. | -| `owned` | boolean | no | Limit by projects explicitly owned by the current user | -| `membership` | boolean | no | Limit by projects that the current user is a member of | +| `sort` | string | no | Return projects sorted in `asc` or `desc` order. Default is `desc` | | `starred` | boolean | no | Limit by projects starred by the current user | | `statistics` | boolean | no | Include project statistics | +| `visibility` | string | no | Limit by visibility `public`, `internal`, or `private` | +| `wiki_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the wiki checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | | `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only) | | `with_issues_enabled` | boolean | no | Limit by enabled issues feature | | `with_merge_requests_enabled` | boolean | no | Limit by enabled merge requests feature | | `with_programming_language` | string | no | Limit by projects which use the given programming language | -| `wiki_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the wiki checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | -| `repository_checksum_failed` | boolean | no | **(PREMIUM)** Limit projects where the repository checksum calculation has failed ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6137) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2) | -| `min_access_level` | integer | no | Limit by current user minimal [access level](members.md#valid-access-levels) | -| `id_after` | integer | no | Limit results to projects with IDs greater than the specified ID | -| `id_before` | integer | no | Limit results to projects with IDs less than the specified ID | -| `last_activity_after` | datetime | no | Limit results to projects with last_activity after specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ | -| `last_activity_before` | datetime | no | Limit results to projects with last_activity before specified time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ | -| `repository_storage` | string | no | Limit results to projects stored on repository_storage. Available for admins only. | NOTE: **Note:** This endpoint supports [keyset pagination](README.md#keyset-based-pagination) for selected `order_by` options. @@ -295,9 +295,10 @@ When the user is authenticated and `simple` is not set this returns something li ``` NOTE: **Note:** -For users on GitLab [Silver, Premium, or higher](https://about.gitlab.com/pricing/) the `marked_for_deletion_at` attribute has been deprecated and will be removed in API v5 in favor of the `marked_for_deletion_on` attribute. +For users on GitLab [Silver, Premium, or higher](https://about.gitlab.com/pricing/) the `marked_for_deletion_at` +attribute has been deprecated and will be removed in API v5 in favor of the `marked_for_deletion_on` attribute. -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/) can also see the `approvals_before_merge` parameter: ```json @@ -319,9 +320,9 @@ GET /projects?custom_attributes[key]=value&custom_attributes[other_key]=other_va ### Pagination limits -From GitLab 13.0, [offset-based pagination](README.md#offset-based-pagination) will be +In GitLab 13.0 and later, [offset-based pagination](README.md#offset-based-pagination) is [limited to 50,000 records](https://gitlab.com/gitlab-org/gitlab/-/issues/34565). -[Keyset pagination](README.md#keyset-based-pagination) will be required to retrieve projects +[Keyset pagination](README.md#keyset-based-pagination) is required to retrieve projects beyond this limit. Note that keyset pagination only supports `order_by=id`. Other sorting options are not available. @@ -918,7 +919,7 @@ GET /projects/:id } ``` -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/) can also see the `approvals_before_merge` parameter: ```json @@ -933,7 +934,7 @@ the `approvals_before_merge` parameter: **Note**: The `web_url` and `avatar_url` attributes on `namespace` were [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/27427) in GitLab 11.11. If the project is a fork, and you provide a valid token to authenticate, the -`forked_from_project` field will appear in the response. +`forked_from_project` field appears in the response. ```json { @@ -1031,7 +1032,7 @@ POST /projects | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `name` | string | yes if path is not provided | The name of the new project. Equals path if not provided. | -| `path` | string | yes if name is not provided | Repository name for new project. Generated based on name if not provided (generated lowercased with dashes). | +| `path` | string | yes if name is not provided | Repository name for new project. Generated based on name if not provided (generated as lowercase with dashes). | | `namespace_id` | integer | no | Namespace for the new project (defaults to the current user's namespace) | | `default_branch` | string | no | `master` by default | | `description` | string | no | Short project description | @@ -1072,7 +1073,7 @@ POST /projects | `build_timeout` | integer | no | The maximum amount of time in minutes that a job is able run (in seconds) | | `auto_cancel_pending_pipelines` | string | no | Auto-cancel pending pipelines (Note: this is not a boolean, but enabled/disabled | | `build_coverage_regex` | string | no | Test coverage parsing | -| `ci_config_path` | string | no | The path to CI config file | +| `ci_config_path` | string | no | The path to CI configuration file | | `auto_devops_enabled` | boolean | no | Enable Auto DevOps for this project | | `auto_devops_deploy_strategy` | string | no | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`) | | `repository_storage` | string | no | Which storage shard the repository is on. Available only to admins | @@ -1144,7 +1145,7 @@ POST /projects/user/:user_id | `build_timeout` | integer | no | The maximum amount of time in minutes that a job is able run (in seconds) | | `auto_cancel_pending_pipelines` | string | no | Auto-cancel pending pipelines (Note: this is not a boolean, but enabled/disabled | | `build_coverage_regex` | string | no | Test coverage parsing | -| `ci_config_path` | string | no | The path to CI config file | +| `ci_config_path` | string | no | The path to CI configuration file | | `auto_devops_enabled` | boolean | no | Enable Auto DevOps for this project | | `auto_devops_deploy_strategy` | string | no | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`) | | `repository_storage` | string | no | Which storage shard the repository is on. Available only to admins | @@ -1215,7 +1216,7 @@ PUT /projects/:id | `build_timeout` | integer | no | The maximum amount of time in minutes that a job is able run (in seconds) | | `auto_cancel_pending_pipelines` | string | no | Auto-cancel pending pipelines (Note: this is not a boolean, but enabled/disabled | | `build_coverage_regex` | string | no | Test coverage parsing | -| `ci_config_path` | string | no | The path to CI config file | +| `ci_config_path` | string | no | The path to CI configuration file | | `ci_default_git_depth` | integer | no | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#git-shallow-clone) | | `auto_devops_enabled` | boolean | no | Enable Auto DevOps for this project | | `auto_devops_deploy_strategy` | string | no | Auto Deploy strategy (`continuous`, `manual` or `timed_incremental`) | @@ -1240,7 +1241,7 @@ where `password` is a public access key with the `api` scope enabled. Forks a project into the user namespace of the authenticated user or the one provided. The forking operation for a project is asynchronous and is completed in a -background job. The request will return immediately. To determine whether the +background job. The request returns immediately. To determine whether the fork of the project has completed, query the `import_status` for the new project. ```plaintext @@ -1250,11 +1251,11 @@ POST /projects/:id/fork | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | -| `namespace` | integer/string | no | (deprecated) The ID or path of the namespace that the project will be forked to | -| `namespace_id` | integer | no | The ID of the namespace that the project will be forked to | -| `namespace_path` | string | no | The path of the namespace that the project will be forked to | -| `path` | string | no | The path that will be assigned to the resultant project after forking | -| `name` | string | no | The name that will be assigned to the resultant project after forking | +| `namespace` | integer/string | no | (deprecated) The ID or path of the namespace that the project is forked to | +| `namespace_id` | integer | no | The ID of the namespace that the project is forked to | +| `namespace_path` | string | no | The path of the namespace that the project is forked to | +| `path` | string | no | The path assigned to the resultant project after forking | +| `name` | string | no | The name assigned to the resultant project after forking | ## List Forks of a project @@ -1614,8 +1615,8 @@ Example response: ## Archive a project -Archives the project if the user is either admin or the project owner of this project. This action is -idempotent, thus archiving an already archived project will not change the project. +Archives the project if the user is either an administrator or the owner of this project. This action is +idempotent, thus archiving an already archived project does not change the project. ```plaintext POST /projects/:id/archive @@ -1724,8 +1725,8 @@ Example response: ## Unarchive a project -Unarchives the project if the user is either admin or the project owner of this project. This action is -idempotent, thus unarchiving a non-archived project will not change the project. +Unarchives the project if the user is either an administrator or the owner of this project. This action is +idempotent, thus unarchiving a non-archived project does not change the project. ```plaintext POST /projects/:id/unarchive @@ -1838,15 +1839,15 @@ This endpoint: - Deletes a project including all associated resources (issues, merge requests etc). - From [GitLab 13.2](https://gitlab.com/gitlab-org/gitlab/-/issues/220382) on [Premium or Silver](https://about.gitlab.com/pricing/) or higher tiers, -group admins can [configure](../user/group/index.md#enabling-delayed-project-removal-premium) projects within a group +group admins can [configure](../user/group/index.md#enabling-delayed-project-removal) projects within a group to be deleted after a delayed period. When enabled, actual deletion happens after the number of days -specified in the [default deletion delay](../user/admin_area/settings/visibility_and_access_controls.md#default-deletion-delay-premium-only). +specified in the [default deletion delay](../user/admin_area/settings/visibility_and_access_controls.md#default-deletion-delay). CAUTION: **Warning:** The default behavior of [Delayed Project deletion](https://gitlab.com/gitlab-org/gitlab/-/issues/32935) in GitLab 12.6 was changed to [Immediate deletion](https://gitlab.com/gitlab-org/gitlab/-/issues/220382) -in GitLab 13.2, as discussed in [Enabling delayed project removal](../user/group/index.md#enabling-delayed-project-removal-premium). +in GitLab 13.2, as discussed in [Enabling delayed project removal](../user/group/index.md#enabling-delayed-project-removal). ```plaintext DELETE /projects/:id @@ -1880,12 +1881,12 @@ POST /projects/:id/uploads | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `file` | string | yes | The file to be uploaded | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | -To upload a file from your filesystem, use the `--form` argument. This causes +To upload a file from your file system, use the `--form` argument. This causes cURL to post data using the header `Content-Type: multipart/form-data`. -The `file=` parameter must point to a file on your filesystem and be preceded +The `file=` parameter must point to a file on your file system and be preceded by `@`. For example: ```shell @@ -1917,10 +1918,10 @@ POST /projects/:id/share | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | -| `group_id` | integer | yes | The ID of the group to share with | -| `group_access` | integer | yes | The [access level](members.md#valid-access-levels) to grant the group | | `expires_at` | string | no | Share expiration date in ISO 8601 format: 2016-09-26 | +| `group_access` | integer | yes | The [access level](members.md#valid-access-levels) to grant the group | +| `group_id` | integer | yes | The ID of the group to share with | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | ## Delete a shared project link within a group @@ -1932,8 +1933,8 @@ DELETE /projects/:id/share/:group_id | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `group_id` | integer | yes | The ID of the group | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | ```shell curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/share/17" @@ -1966,8 +1967,8 @@ GET /projects/:id/hooks/:hook_id | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `hook_id` | integer | yes | The ID of a project hook | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | ```json { @@ -2001,22 +2002,22 @@ POST /projects/:id/hooks | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | +| `confidential_issues_events` | boolean | no | Trigger hook on confidential issues events | +| `confidential_note_events` | boolean | no | Trigger hook on confidential note events | +| `deployment_events` | boolean | no | Trigger hook on deployment events | +| `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | -| `url` | string | yes | The hook URL | -| `push_events` | boolean | no | Trigger hook on push events | -| `push_events_branch_filter` | string | no | Trigger hook on push events for matching branches only | | `issues_events` | boolean | no | Trigger hook on issues events | -| `confidential_issues_events` | boolean | no | Trigger hook on confidential issues events | +| `job_events` | boolean | no | Trigger hook on job events | | `merge_requests_events` | boolean | no | Trigger hook on merge requests events | -| `tag_push_events` | boolean | no | Trigger hook on tag push events | | `note_events` | boolean | no | Trigger hook on note events | -| `confidential_note_events` | boolean | no | Trigger hook on confidential note events | -| `job_events` | boolean | no | Trigger hook on job events | | `pipeline_events` | boolean | no | Trigger hook on pipeline events | +| `push_events_branch_filter` | string | no | Trigger hook on push events for matching branches only | +| `push_events` | boolean | no | Trigger hook on push events | +| `tag_push_events` | boolean | no | Trigger hook on tag push events | +| `token` | string | no | Secret token to validate received payloads; this is not returned in the response | +| `url` | string | yes | The hook URL | | `wiki_page_events` | boolean | no | Trigger hook on wiki events | -| `deployment_events` | boolean | no | Trigger hook on deployment events | -| `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook | -| `token` | string | no | Secret token to validate received payloads; this will not be returned in the response | ### Edit project hook @@ -2028,23 +2029,23 @@ PUT /projects/:id/hooks/:hook_id | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | +| `confidential_issues_events` | boolean | no | Trigger hook on confidential issues events | +| `confidential_note_events` | boolean | no | Trigger hook on confidential note events | +| `deployment_events` | boolean | no | Trigger hook on deployment events | +| `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook | | `hook_id` | integer | yes | The ID of the project hook | -| `url` | string | yes | The hook URL | -| `push_events` | boolean | no | Trigger hook on push events | -| `push_events_branch_filter` | string | no | Trigger hook on push events for matching branches only | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `issues_events` | boolean | no | Trigger hook on issues events | -| `confidential_issues_events` | boolean | no | Trigger hook on confidential issues events | +| `job_events` | boolean | no | Trigger hook on job events | | `merge_requests_events` | boolean | no | Trigger hook on merge requests events | -| `tag_push_events` | boolean | no | Trigger hook on tag push events | | `note_events` | boolean | no | Trigger hook on note events | -| `confidential_note_events` | boolean | no | Trigger hook on confidential note events | -| `job_events` | boolean | no | Trigger hook on job events | | `pipeline_events` | boolean | no | Trigger hook on pipeline events | +| `push_events_branch_filter` | string | no | Trigger hook on push events for matching branches only | +| `push_events` | boolean | no | Trigger hook on push events | +| `tag_push_events` | boolean | no | Trigger hook on tag push events | +| `token` | string | no | Secret token to validate received payloads; this is not returned in the response | +| `url` | string | yes | The hook URL | | `wiki_events` | boolean | no | Trigger hook on wiki events | -| `deployment_events` | boolean | no | Trigger hook on deployment events | -| `enable_ssl_verification` | boolean | no | Do SSL verification when triggering the hook | -| `token` | string | no | Secret token to validate received payloads; this will not be returned in the response | ### Delete project hook @@ -2057,11 +2058,11 @@ DELETE /projects/:id/hooks/:hook_id | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `hook_id` | integer | yes | The ID of the project hook | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | Note the JSON response differs if the hook is available or not. If the project hook -is available before it is returned in the JSON response or an empty response is returned. +is available before it's returned in the JSON response or an empty response is returned. ## Fork relationship @@ -2075,8 +2076,8 @@ POST /projects/:id/fork/:forked_from_id | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `forked_from_id` | ID | yes | The ID of the project that was forked from | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | ### Delete an existing forked from relationship @@ -2100,15 +2101,15 @@ GET /projects | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `search` | string | yes | A string contained in the project name | | `order_by` | string | no | Return requests ordered by `id`, `name`, `created_at` or `last_activity_at` fields | +| `search` | string | yes | A string contained in the project name | | `sort` | string | no | Return requests sorted in `asc` or `desc` order | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects?search=test" ``` -## Start the Housekeeping task for a Project +## Start the Housekeeping task for a project > Introduced in GitLab 9.0. @@ -2153,7 +2154,7 @@ GET /projects/:id/push_rule } ``` -Users on GitLab [Premium, Silver, or higher](https://about.gitlab.com/pricing/) will also see +Users on GitLab [Premium, Silver, or higher](https://about.gitlab.com/pricing/) can also see the `commit_committer_check` and `reject_unsigned_commits` parameters: ```json @@ -2176,18 +2177,18 @@ POST /projects/:id/push_rule | Attribute | Type | Required | Description | | --------------------------------------------- | -------------- | -------- | ----------- | -| `id` | integer/string | yes | The ID of the project or NAMESPACE/PROJECT_NAME | +| `author_email_regex` **(STARTER)** | string | no | All commit author emails must match this, for example `@my-company.com$` | +| `branch_name_regex` **(STARTER)** | string | no | All branch names must match this, for example `(feature|hotfix)\/*` | +| `commit_committer_check` **(PREMIUM)** | boolean | 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 | no | No commit message is allowed to match this, for example `ssh\:\/\/` | +| `commit_message_regex` **(STARTER)** | string | no | All commit messages must match this, for example `Fixed \d+\..*` | | `deny_delete_tag` **(STARTER)** | boolean | no | Deny deleting a tag | +| `file_name_regex` **(STARTER)** | string | no | All committed filenames must **not** match this, for example `(jar|exe)$` | +| `id` | integer/string | yes | The ID of the project or NAMESPACE/PROJECT_NAME | +| `max_file_size` **(STARTER)** | integer | no | Maximum file size (MB) | | `member_check` **(STARTER)** | boolean | no | Restrict commits by author (email) to existing GitLab users | | `prevent_secrets` **(STARTER)** | boolean | no | GitLab will reject any files that are likely to contain secrets | -| `commit_message_regex` **(STARTER)** | string | no | All commit messages must match this, e.g. `Fixed \d+\..*` | -| `commit_message_negative_regex` **(STARTER)** | string | no | No commit message is allowed to match this, e.g. `ssh\:\/\/` | -| `branch_name_regex` **(STARTER)** | string | no | All branch names must match this, e.g. `(feature|hotfix)\/*` | -| `author_email_regex` **(STARTER)** | string | no | All commit author emails must match this, e.g. `@my-company.com$` | -| `file_name_regex` **(STARTER)** | string | no | All committed filenames must **not** match this, e.g. `(jar|exe)$` | -| `max_file_size` **(STARTER)** | integer | no | Maximum file size (MB) | -| `commit_committer_check` **(PREMIUM)** | boolean | no | Users can only push commits to this repository that were committed with one of their own verified emails. | -| `reject_unsigned_commits` **(PREMIUM)** | boolean | no | Reject commit when it is not signed through GPG. | +| `reject_unsigned_commits` **(PREMIUM)** | boolean | no | Reject commit when it's not signed through GPG. | ### Edit project push rule @@ -2199,17 +2200,17 @@ PUT /projects/:id/push_rule | Attribute | Type | Required | Description | | --------------------------------------------- | -------------- | -------- | ----------- | -| `id` | integer/string | yes | The ID of the project or NAMESPACE/PROJECT_NAME | +| `author_email_regex` **(STARTER)** | string | no | All commit author emails must match this, for example `@my-company.com$` | +| `branch_name_regex` **(STARTER)** | string | no | All branch names must match this, for example `(feature|hotfix)\/*` | +| `commit_committer_check` **(PREMIUM)** | boolean | 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 | no | No commit message is allowed to match this, for example `ssh\:\/\/` | +| `commit_message_regex` **(STARTER)** | string | no | All commit messages must match this, for example `Fixed \d+\..*` | | `deny_delete_tag` **(STARTER)** | boolean | no | Deny deleting a tag | +| `file_name_regex` **(STARTER)** | string | no | All committed filenames must **not** match this, for example `(jar|exe)$` | +| `id` | integer/string | yes | The ID of the project or NAMESPACE/PROJECT_NAME | +| `max_file_size` **(STARTER)** | integer | no | Maximum file size (MB) | | `member_check` **(STARTER)** | boolean | no | Restrict commits by author (email) to existing GitLab users | | `prevent_secrets` **(STARTER)** | boolean | no | GitLab will reject any files that are likely to contain secrets | -| `commit_message_regex` **(STARTER)** | string | no | All commit messages must match this, e.g. `Fixed \d+\..*` | -| `commit_message_negative_regex` **(STARTER)** | string | no | No commit message is allowed to match this, e.g. `ssh\:\/\/` | -| `branch_name_regex` **(STARTER)** | string | no | All branch names must match this, e.g. `(feature|hotfix)\/*` | -| `author_email_regex` **(STARTER)** | string | no | All commit author emails must match this, e.g. `@my-company.com$` | -| `file_name_regex` **(STARTER)** | string | no | All committed filenames must **not** match this, e.g. `(jar|exe)$` | -| `max_file_size` **(STARTER)** | integer | no | Maximum file size (MB) | -| `commit_committer_check` **(PREMIUM)** | boolean | no | Users can only push commits to this repository that were committed with one of their own verified emails. | | `reject_unsigned_commits` **(PREMIUM)** | boolean | no | Reject commits when they are not GPG signed. | ### Delete project push rule diff --git a/doc/api/protected_branches.md b/doc/api/protected_branches.md index 8a3ff1b20e7..05d586738d0 100644 --- a/doc/api/protected_branches.md +++ b/doc/api/protected_branches.md @@ -255,7 +255,7 @@ Example response: ### Example with user / group level access **(STARTER)** Elements in the `allowed_to_push` / `allowed_to_merge` / `allowed_to_unprotect` array should take the -form `{user_id: integer}`, `{group_id: integer}` or `{access_level: integer}`. Each user must have access to the project and each group must [have this project shared](../user/project/members/share_project_with_groups.md). These access levels allow [more granular control over protected branch access](../user/project/protected_branches.md#restricting-push-and-merge-access-to-certain-users-starter) and were [added to the API](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3516) in GitLab 10.3 EE. +form `{user_id: integer}`, `{group_id: integer}` or `{access_level: integer}`. Each user must have access to the project and each group must [have this project shared](../user/project/members/share_project_with_groups.md). These access levels allow [more granular control over protected branch access](../user/project/protected_branches.md#restricting-push-and-merge-access-to-certain-users) and were [added to the API](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3516) in GitLab 10.3 EE. ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/protected_branches?name=*-stable&allowed_to_push%5B%5D%5Buser_id%5D=1" diff --git a/doc/api/remote_mirrors.md b/doc/api/remote_mirrors.md index a8355fb9009..605284caf06 100644 --- a/doc/api/remote_mirrors.md +++ b/doc/api/remote_mirrors.md @@ -7,7 +7,7 @@ type: reference, api # Project remote mirrors API -[Push mirrors](../user/project/repository/repository_mirroring.md#pushing-to-a-remote-repository-core) +[Push mirrors](../user/project/repository/repository_mirroring.md#pushing-to-a-remote-repository) defined on a project's repository settings are called "remote mirrors", and the state of these mirrors can be queried and modified via the remote mirror API outlined below. diff --git a/doc/api/repository_submodules.md b/doc/api/repository_submodules.md index 9a5dcacbc2f..77f64b178f0 100644 --- a/doc/api/repository_submodules.md +++ b/doc/api/repository_submodules.md @@ -23,13 +23,13 @@ PUT /projects/:id/repository/submodules/:submodule | 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 | -| `submodule` | string | yes | URL encoded full path to the submodule. For example, `lib%2Fclass%2Erb` | +| `submodule` | string | yes | URL-encoded full path to the submodule. For example, `lib%2Fclass%2Erb` | | `branch` | string | yes | Name of the branch to commit into | | `commit_sha` | string | yes | Full commit SHA to update the submodule to | | `commit_message` | string | no | Commit message. If no message is provided, a default one will be set | ```shell -curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/submodules/lib%2Fmodules%2Fexample" +curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/submodules/lib%2Fmodules%2Fexample" \ --data "branch=master&commit_sha=3ddec28ea23acc5caa5d8331a6ecb2a65fc03e88&commit_message=Update submodule reference" ``` diff --git a/doc/api/resource_iteration_events.md b/doc/api/resource_iteration_events.md new file mode 100644 index 00000000000..f774cdfe9c7 --- /dev/null +++ b/doc/api/resource_iteration_events.md @@ -0,0 +1,175 @@ +--- +stage: Plan +group: Project Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +--- + +# Resource iteration events API **(STARTER)** + +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40850) in [GitLab Starter](https://about.gitlab.com/pricing/) 13.4 +> - It's [deployed behind a feature flag](../user/feature_flags.md), enabled by default. +> - It's enabled on GitLab.com. +> - It's recommended for production use. +> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-iterations-events-tracking). + +NOTE: **Note:** +This feature might not be available to you. Check the **version history** note above for details. + +Resource iteration events keep track of what happens to GitLab [issues](../user/project/issues/). + +Use them to track which iteration was set, who did it, and when it happened. + +## Issues + +### List project issue iteration events + +Gets a list of all iteration events for a single issue. + +```plaintext +GET /projects/:id/issues/:issue_iid/resource_iteration_events +``` + +| Attribute | Type | Required | Description | +| ----------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | +| `issue_iid` | integer | yes | The IID of an issue | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_iteration_events" +``` + +Example response: + +```json +[ + { + "id": 142, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-20T13:38:20.077Z", + "resource_type": "Issue", + "resource_id": 253, + "iteration": { + "id": 50, + "iid": 9, + "group_id": 5, + "title": "Iteration I", + "description": "Ipsum Lorem", + "state": 1, + "created_at": "2020-01-27T05:07:12.573Z", + "updated_at": "2020-01-27T05:07:12.573Z", + "due_date": null, + "start_date": null + }, + "action": "add" + }, + { + "id": 143, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-21T14:38:20.077Z", + "resource_type": "Issue", + "resource_id": 253, + "iteration": { + "id": 53, + "iid": 13, + "group_id": 5, + "title": "Iteration II", + "description": "Ipsum Lorem ipsum", + "state": 2, + "created_at": "2020-01-27T05:07:12.573Z", + "updated_at": "2020-01-27T05:07:12.573Z", + "due_date": null, + "start_date": null + }, + "action": "remove" + } +] +``` + +### Get single issue iteration event + +Returns a single iteration event for a specific project issue. + +```plaintext +GET /projects/:id/issues/:issue_iid/resource_iteration_events/:resource_iteration_event_id +``` + +Parameters: + +| Attribute | Type | Required | Description | +| ----------------------------- | -------------- | -------- | ------------------------------------------------------------------------------- | +| `id` | integer/string | yes | The ID or [URL-encoded path](README.md#namespaced-path-encoding) of the project | +| `issue_iid` | integer | yes | The IID of an issue | +| `resource_iteration_event_id` | integer | yes | The ID of an iteration event | + +Example request: + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_iteration_events/143" +``` + +Example response: + +```json +{ + "id": 143, + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://gitlab.example.com/root" + }, + "created_at": "2018-08-21T14:38:20.077Z", + "resource_type": "Issue", + "resource_id": 253, + "iteration": { + "id": 53, + "iid": 13, + "group_id": 5, + "title": "Iteration II", + "description": "Ipsum Lorem ipsum", + "state": 2, + "created_at": "2020-01-27T05:07:12.573Z", + "updated_at": "2020-01-27T05:07:12.573Z", + "due_date": null, + "start_date": null + }, + "action": "remove" +} +``` + +### Enable or disable iterations events tracking **(STARTER)** + +Iterations events tracking is under development but ready for production use. +It is deployed behind a feature flag that is **enabled by default**. +[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md) +can opt to disable it. + +To enable it: + +```ruby +Feature.enable(:track_iteration_change_events) +``` + +To disable it: + +```ruby +Feature.disable(:track_iteration_change_events) +``` diff --git a/doc/api/runners.md b/doc/api/runners.md index 4cda4b723f5..436abe0a706 100644 --- a/doc/api/runners.md +++ b/doc/api/runners.md @@ -6,30 +6,30 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Runners API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/2640) in GitLab 8.5 +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/2640) in GitLab 8.5. ## Registration and authentication tokens -There are two tokens to take into account when connecting a Runner with GitLab. +There are two tokens to take into account when connecting a runner with GitLab. | Token | Description | | ----- | ----------- | -| Registration token | Token used to [register the Runner](https://docs.gitlab.com/runner/register/). It can be [obtained through GitLab](../ci/runners/README.md). | -| Authentication token | Token used to authenticate the Runner with the GitLab instance. It is obtained either automatically when [registering a Runner](https://docs.gitlab.com/runner/register/), or manually when [registering the Runner via the Runners API](#register-a-new-runner). | +| Registration token | Token used to [register the runner](https://docs.gitlab.com/runner/register/). It can be [obtained through GitLab](../ci/runners/README.md). | +| Authentication token | Token used to authenticate the runner with the GitLab instance. It is obtained either automatically when [registering a runner](https://docs.gitlab.com/runner/register/), or manually when [registering the runner via the Runner API](#register-a-new-runner). | -Here's an example of how the two tokens are used in Runner registration: +Here's an example of how the two tokens are used in runner registration: -1. You register the Runner via the GitLab API using a registration token, and an +1. You register the runner via the GitLab API using a registration token, and an authentication token is returned. 1. You use that authentication token and add it to the - [Runner's configuration file](https://docs.gitlab.com/runner/commands/#configuration-file): + [runner's configuration file](https://docs.gitlab.com/runner/commands/#configuration-file): ```toml [[runners]] token = "<authentication_token>" ``` -GitLab and Runner are then connected. +GitLab and the runner are then connected. ## List owned runners @@ -224,7 +224,7 @@ PUT /runners/:id | `run_untagged`| boolean | no | Flag indicating the runner can execute untagged jobs | | `locked` | boolean | no | Flag indicating the runner is locked | | `access_level` | string | no | The access_level of the runner; `not_protected` or `ref_protected` | -| `maximum_timeout` | integer | no | Maximum timeout set when this Runner will handle the job | +| `maximum_timeout` | integer | no | Maximum timeout set when this runner will handle the job | ```shell curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6" --form "description=test-1-20150125-test" --form "tag_list=ruby,mysql,tag1,tag2" @@ -291,7 +291,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15432) in GitLab 10.3. -List jobs that are being processed or were processed by specified Runner. +List jobs that are being processed or were processed by specified runner. ```plaintext GET /runners/:id/jobs @@ -541,9 +541,9 @@ Example response: ] ``` -## Register a new Runner +## Register a new runner -Register a new Runner for the instance. +Register a new runner for the instance. ```plaintext POST /runners @@ -554,12 +554,12 @@ POST /runners | `token` | string | yes | [Registration token](#registration-and-authentication-tokens). | | `description`| string | no | Runner's description| | `info` | hash | no | Runner's metadata | -| `active` | boolean | no | Whether the Runner is active | -| `locked` | boolean | no | Whether the Runner should be locked for current project | -| `run_untagged` | boolean | no | Whether the Runner should handle untagged jobs | -| `tag_list` | string array | no | List of Runner's tags | +| `active` | boolean | no | Whether the runner is active | +| `locked` | boolean | no | Whether the runner should be locked for current project | +| `run_untagged` | boolean | no | Whether the runner should handle untagged jobs | +| `tag_list` | string array | no | List of runner's tags | | `access_level` | string | no | The access_level of the runner; `not_protected` or `ref_protected` | -| `maximum_timeout` | integer | no | Maximum timeout set when this Runner will handle the job | +| `maximum_timeout` | integer | no | Maximum timeout set when this runner will handle the job | ```shell curl --request POST "https://gitlab.example.com/api/v4/runners" --form "token=<registration_token>" --form "description=test-1-20150125-test" --form "tag_list=ruby,mysql,tag1,tag2" @@ -580,9 +580,9 @@ Example response: } ``` -## Delete a registered Runner +## Delete a registered runner -Deletes a registered Runner. +Deletes a registered runner. ```plaintext DELETE /runners @@ -602,9 +602,9 @@ Response: |-----------|---------------------------------| | 204 | Runner was deleted | -## Verify authentication for a registered Runner +## Verify authentication for a registered runner -Validates authentication credentials for a registered Runner. +Validates authentication credentials for a registered runner. ```plaintext POST /runners/verify diff --git a/doc/api/search.md b/doc/api/search.md index 4c87a826ca8..cb90b9a064c 100644 --- a/doc/api/search.md +++ b/doc/api/search.md @@ -23,6 +23,7 @@ GET /search | ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------| | `scope` | string | yes | The scope to search in | | `search` | string | yes | The search query | +| `state` | string | no | Filter by state. Issues and merge requests are supported; it is ignored for other scopes. | Search the expression within the specified scope. Currently these scopes are supported: projects, issues, merge_requests, milestones, snippet_titles, users. @@ -397,6 +398,7 @@ GET /groups/:id/search | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user | | `scope` | string | yes | The scope to search in | | `search` | string | yes | The search query | +| `state` | string | no | Filter by state. Issues and merge requests are supported; it is ignored for other scopes. | Search the expression within the specified scope. Currently these scopes are supported: projects, issues, merge_requests, milestones, users. @@ -741,6 +743,7 @@ GET /projects/:id/search | `scope` | string | yes | The scope to search in | | `search` | string | yes | The search query | | `ref` | string | no | The name of a repository branch or tag to search on. The project's default branch is used by default. This is only applicable for scopes: commits, blobs, and wiki_blobs. | +| `state` | string | no | Filter by state. Issues and merge requests are supported; it is ignored for other scopes. | Search the expression within the specified scope. Currently these scopes are supported: issues, merge_requests, milestones, notes, wiki_blobs, commits, blobs, users. diff --git a/doc/api/services.md b/doc/api/services.md index 25ad025027a..405047a433d 100644 --- a/doc/api/services.md +++ b/doc/api/services.md @@ -807,7 +807,7 @@ Parameters: | `username` | string | yes | The username of the user created to be used with GitLab/Jira. | | `password` | string | yes | The password of the user created to be used with GitLab/Jira. | | `active` | boolean | no | Activates or deactivates the service. Defaults to false (deactivated). | -| `jira_issue_transition_id` | string | no | The ID of a transition that moves issues to a closed state. You can find this number under the Jira workflow administration (**Administration > Issues > Workflows**) by selecting **View** under **Operations** of the desired workflow of your project. The ID of each state can be found inside the parenthesis of each transition name under the **Transitions (id)** column. By default, this ID is set to `2`. | +| `jira_issue_transition_id` | string | no | The ID of a transition that moves issues to a closed state. You can find this number under the Jira workflow administration (**Administration > Issues > Workflows**) by selecting **View** under **Operations** of the desired workflow of your project. The ID of each state can be found inside the parenthesis of each transition name under the transitions ID column. By default, this ID is set to `2`. | | `commit_events` | boolean | false | Enable notifications for commit events | | `merge_requests_events` | boolean | false | Enable notifications for merge request events | | `comment_on_event_enabled` | boolean | false | Enable comments inside Jira issues on each GitLab event (commit / merge request) | diff --git a/doc/api/settings.md b/doc/api/settings.md index 64c529b0222..c8a466d1fcd 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -61,7 +61,6 @@ Example response: "enforce_terms": true, "terms": "Hello world!", "performance_bar_allowed_group_id": 42, - "instance_statistics_visibility_private": false, "user_show_add_ssh_key_message": true, "local_markdown_version": 0, "allow_local_requests_from_hooks_and_services": true, @@ -151,7 +150,6 @@ Example response: "enforce_terms": true, "terms": "Hello world!", "performance_bar_allowed_group_id": 42, - "instance_statistics_visibility_private": false, "user_show_add_ssh_key_message": true, "file_template_project_id": 1, "local_markdown_version": 0, @@ -285,7 +283,6 @@ are 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`, `google_code`, `fogbugz`, `git`, `gitlab_project`, `gitea`, `manifest`, and `phabricator`. | -| `instance_statistics_visibility_private` | boolean | no | When set to `true` Instance statistics will only be available to admins. | | `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 | @@ -332,7 +329,7 @@ are listed in the descriptions of the relevant settings. | `send_user_confirmation_email` | boolean | no | Send confirmation email on sign-up. | | `session_expire_delay` | integer | no | Session duration in minutes. GitLab restart is required to apply changes | | `shared_runners_enabled` | boolean | no | (**If enabled, requires:** `shared_runners_text` and `shared_runners_minutes`) Enable shared runners for new projects. | -| `shared_runners_minutes` | integer | required by: `shared_runners_enabled` | **(PREMIUM)** Set the maximum number of pipeline minutes that a group can use on shared Runners per month. | +| `shared_runners_minutes` | integer | required by: `shared_runners_enabled` | **(PREMIUM)** Set the maximum number of pipeline minutes that a group can use on shared runners per month. | | `shared_runners_text` | string | required by: `shared_runners_enabled` | Shared runners text. | | `sign_in_text` | string | no | Text on the login page. | | `signin_enabled` | string | no | (Deprecated: Use `password_authentication_enabled_for_web` instead) Flag indicating if password authentication is enabled for the web interface. | @@ -346,7 +343,6 @@ are listed in the descriptions of the relevant settings. | `snowplow_collector_hostname` | string | required by: `snowplow_enabled` | The Snowplow collector hostname. (for example, `snowplow.trx.gitlab.net`) | | `snowplow_cookie_domain` | string | no | The Snowplow cookie domain. (for example, `.gitlab.com`) | | `snowplow_enabled` | boolean | no | Enable snowplow tracking. | -| `snowplow_iglu_registry_url` | string | no | The Snowplow base Iglu Schema Registry URL to use for custom context and self describing events'| | `sourcegraph_enabled` | boolean | no | Enables Sourcegraph integration. Default is `false`. **If enabled, requires** `sourcegraph_url`. | | `sourcegraph_public_only` | boolean | no | Blocks Sourcegraph from being loaded on private and internal projects. Default is `true`. | | `sourcegraph_url` | string | required by: `sourcegraph_enabled` | The Sourcegraph instance URL for integration. | diff --git a/doc/api/sidekiq_metrics.md b/doc/api/sidekiq_metrics.md index 95acc992789..caa02412a28 100644 --- a/doc/api/sidekiq_metrics.md +++ b/doc/api/sidekiq_metrics.md @@ -1,4 +1,4 @@ -# Sidekiq Metrics API +# Sidekiq Metrics API **(CORE ONLY)** > Introduced in GitLab 8.9. diff --git a/doc/api/snippets.md b/doc/api/snippets.md index 0cdc07b1f46..6863763ff24 100644 --- a/doc/api/snippets.md +++ b/doc/api/snippets.md @@ -169,9 +169,9 @@ Parameters: | Attribute | Type | Required | Description | |:------------|:--------|:---------|:-------------------------------------------------------------------| -| `id` | integer | yes | ID of snippet to retrieve | -| `ref` | string | yes | Reference to a tag, branch or commit | -| `file_path` | string | yes | URL-encoded path to the file | +| `id` | integer | yes | ID of snippet to retrieve. | +| `ref` | string | yes | Reference to a tag, branch or commit. | +| `file_path` | string | yes | URL-encoded path to the file. | Example request: diff --git a/doc/api/tags.md b/doc/api/tags.md index cf6cfd25dbb..8584de83357 100644 --- a/doc/api/tags.md +++ b/doc/api/tags.md @@ -117,11 +117,13 @@ POST /projects/:id/repository/tags Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `tag_name` (required) - The name of a tag -- `ref` (required) - Create tag using commit SHA, another tag name, or branch name. -- `message` (optional) - Creates annotated tag. -- `release_description` (optional) - Add release notes to the Git tag and store it in the GitLab database. +| 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 | +| `tag_name` | string | yes | The name of a tag | +| `ref` | string | yes | Create tag using commit SHA, another tag name, or branch name | +| `message` | string | no | Creates annotated tag | +| `release_description` | string | no | Add release notes to the Git tag and store it in the GitLab database | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/tags?tag_name=test&ref=master" @@ -177,8 +179,10 @@ DELETE /projects/:id/repository/tags/:tag_name Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `tag_name` (required) - The name of a tag +| 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 | +| `tag_name` | string | yes | The name of a tag | ## Create a new release @@ -191,8 +195,10 @@ POST /projects/:id/repository/tags/:tag_name/release Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `tag_name` (required) - The name of a tag +| 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 | +| `tag_name` | string | yes | The name of a tag | Request body: @@ -223,8 +229,10 @@ PUT /projects/:id/repository/tags/:tag_name/release Parameters: -- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user -- `tag_name` (required) - The name of a tag +| 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 | +| `tag_name` | string | yes | The name of a tag | Request body: diff --git a/doc/api/templates/dockerfiles.md b/doc/api/templates/dockerfiles.md index 2fa3d7b7fa1..e579300a2fd 100644 --- a/doc/api/templates/dockerfiles.md +++ b/doc/api/templates/dockerfiles.md @@ -124,7 +124,7 @@ Example response: ```json { "name": "Binary", - "content": "# This file is a template, and might need editing before it works on your project.\n# This Dockerfile installs a compiled binary into a bare system.\n# You must either commit your compiled binary into source control (not recommended)\n# or build the binary first as part of a CI/CD pipeline.\n\nFROM buildpack-deps:jessie\n\nWORKDIR /usr/local/bin\n\n# Change `app` to whatever your binary is called\nAdd app .\nCMD [\"./app\"]\n" + "content": "# This file is a template, and might need editing before it works on your project.\n# This Dockerfile installs a compiled binary into a bare system.\n# You must either commit your compiled binary into source control (not recommended)\n# or build the binary first as part of a CI/CD pipeline.\n\nFROM buildpack-deps:buster\n\nWORKDIR /usr/local/bin\n\n# Change `app` to whatever your binary is called\nAdd app .\nCMD [\"./app\"]\n" } ``` diff --git a/doc/api/todos.md b/doc/api/todos.md index 9d56522c5b8..ebe10ecbd49 100644 --- a/doc/api/todos.md +++ b/doc/api/todos.md @@ -4,13 +4,13 @@ group: Project Management info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers --- -# Todos API +# To-dos API > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/3188) in GitLab 8.10. -## Get a list of todos +## Get a list of to-dos -Returns a list of todos. When no filter is applied, it returns all pending todos +Returns a list of to-dos. When no filter is applied, it returns all pending to-dos for the current user. Different filters allow the user to precise the request. ```plaintext @@ -21,12 +21,12 @@ Parameters: | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `action` | string | no | The action to be filtered. Can be `assigned`, `mentioned`, `build_failed`, `marked`, `approval_required`, `unmergeable` or `directly_addressed`. | +| `action` | string | no | The action to be filtered. Can be `assigned`, `mentioned`, `build_failed`, `marked`, `approval_required`, `unmergeable`, `directly_addressed` or `merge_train_removed`. | | `author_id` | integer | no | The ID of an author | | `project_id` | integer | no | The ID of a project | | `group_id` | integer | no | The ID of a group | -| `state` | string | no | The state of the todo. Can be either `pending` or `done` | -| `type` | string | no | The type of a todo. Can be either `Issue` or `MergeRequest` | +| `state` | string | no | The state of the to-do. Can be either `pending` or `done` | +| `type` | string | no | The type of a to-do. Can be either `Issue`, `MergeRequest`, `DesignManagement::Design` or `AlertManagement::Alert` | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/todos" @@ -187,10 +187,10 @@ Example Response: ] ``` -## Mark a todo as done +## Mark a to-do as done -Marks a single pending todo given by its ID for the current user as done. The -todo marked as done is returned in the response. +Marks a single pending to-do given by its ID for the current user as done. The +to-do marked as done is returned in the response. ```plaintext POST /todos/:id/mark_as_done @@ -200,7 +200,7 @@ Parameters: | Attribute | Type | Required | Description | | --------- | ---- | -------- | ----------- | -| `id` | integer | yes | The ID of a todo | +| `id` | integer | yes | The ID of a to-do | ```shell curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/todos/130/mark_as_done" @@ -285,9 +285,9 @@ Example Response: } ``` -## Mark all todos as done +## Mark all to-dos as done -Marks all pending todos for the current user as done. It returns the HTTP status code `204` with an empty response. +Marks all pending to-dos for the current user as done. It returns the HTTP status code `204` with an empty response. ```plaintext POST /todos/mark_as_done diff --git a/doc/api/users.md b/doc/api/users.md index 76075e8b7be..634e0bd0842 100644 --- a/doc/api/users.md +++ b/doc/api/users.md @@ -2,8 +2,6 @@ ## List users -Active users = Total accounts - Blocked users - Get a list of users. This function takes pagination parameters `page` and `per_page` to restrict the list of users. @@ -49,9 +47,9 @@ For example: GET /users?username=jack_smith ``` -In addition, you can filter users based on states eg. `blocked`, `active` -This works only to filter users who are `blocked` or `active`. -It does not support `active=false` or `blocked=false`. +In addition, you can filter users based on the states `blocked` and `active`. +It does not support `active=false` or `blocked=false`. The list of active users +is the total number of users minus the blocked users. ```plaintext GET /users?active=true @@ -61,6 +59,15 @@ GET /users?active=true GET /users?blocked=true ``` +GitLab supports bot users such as the [alert bot](../operations/incident_management/generic_alerts.md) +or the [support bot](../user/project/service_desk.md#support-bot-user). +To exclude these users from the users' list, you can use the parameter `exclude_internal=true` +([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/241144) in GitLab 13.4). + +```plaintext +GET /users?exclude_internal=true +``` + NOTE: **Note:** Username search is case insensitive. @@ -767,7 +774,7 @@ POST /user/keys Parameters: -- `title` (required) - new SSH Key's title +- `title` (required) - new SSH key's title - `key` (required) - new SSH key - `expires_at` (optional) - The expiration date of the SSH key in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`) @@ -806,12 +813,12 @@ POST /users/:id/keys Parameters: - `id` (required) - ID of specified user -- `title` (required) - new SSH Key's title +- `title` (required) - new SSH key's title - `key` (required) - new SSH key - `expires_at` (optional) - The expiration date of the SSH key in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`) NOTE: **Note:** -This also adds an audit event, as described in [audit instance events](../administration/audit_events.md#instance-events-premium-only). **(PREMIUM)** +This also adds an audit event, as described in [audit instance events](../administration/audit_events.md#instance-events). **(PREMIUM)** ## Delete SSH key for current user diff --git a/doc/api/v3_to_v4.md b/doc/api/v3_to_v4.md index 4571d4d8304..4139438bea0 100644 --- a/doc/api/v3_to_v4.md +++ b/doc/api/v3_to_v4.md @@ -74,8 +74,8 @@ Below are the changes made between V3 and V4. - `POST /projects/:id/trigger/builds` to `POST /projects/:id/trigger/pipeline` - Require description when creating a new trigger `POST /projects/:id/triggers` - Simplify project payload exposed on Environment endpoints [!9675](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9675) -- API uses merge request `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the merge requests, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9530) -- API uses issue `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the issues, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9530) +- API uses merge request `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the merge requests, award emoji, to-dos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9530) +- API uses issue `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the issues, award emoji, to-dos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9530) - Change initial page from `0` to `1` on `GET /projects/:id/repository/commits` (like on the rest of the API) [!9679](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9679) - Return correct `Link` header data for `GET /projects/:id/repository/commits` [!9679](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9679) - Update endpoints for repository files [!9637](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9637) diff --git a/doc/api/visual_review_discussions.md b/doc/api/visual_review_discussions.md index c9863784038..7e741688949 100644 --- a/doc/api/visual_review_discussions.md +++ b/doc/api/visual_review_discussions.md @@ -10,7 +10,7 @@ type: reference, api > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18710) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.5. Visual Review discussions are notes on Merge Requests sent as -feedback from [Visual Reviews](../ci/review_apps/index.md#visual-reviews-starter). +feedback from [Visual Reviews](../ci/review_apps/index.md#visual-reviews). ## Create new merge request thread diff --git a/doc/api/vulnerabilities.md b/doc/api/vulnerabilities.md index a0d871af127..73c765e2ccc 100644 --- a/doc/api/vulnerabilities.md +++ b/doc/api/vulnerabilities.md @@ -1,3 +1,9 @@ +--- +stage: Secure +group: Threat Insights +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 +--- + # Vulnerabilities API **(ULTIMATE)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/10242) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.6. diff --git a/doc/api/vulnerability_exports.md b/doc/api/vulnerability_exports.md index 2cb647e797b..d19d41b647e 100644 --- a/doc/api/vulnerability_exports.md +++ b/doc/api/vulnerability_exports.md @@ -1,3 +1,9 @@ +--- +stage: Secure +group: Threat Insights +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 +--- + # Vulnerability export API **(ULTIMATE)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/197494) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.10. [Updated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30397) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 13.0. diff --git a/doc/api/vulnerability_findings.md b/doc/api/vulnerability_findings.md index 96171f0229d..bfb1306e4aa 100644 --- a/doc/api/vulnerability_findings.md +++ b/doc/api/vulnerability_findings.md @@ -1,3 +1,9 @@ +--- +stage: Secure +group: Threat Insights +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 +--- + # Vulnerability Findings API **(ULTIMATE)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19029) in GitLab Ultimate 12.5. |