summaryrefslogtreecommitdiff
path: root/doc/api
diff options
context:
space:
mode:
Diffstat (limited to 'doc/api')
-rw-r--r--doc/api/README.md54
-rw-r--r--doc/api/api_resources.md14
-rw-r--r--doc/api/appearance.md3
-rw-r--r--doc/api/applications.md8
-rw-r--r--doc/api/avatar.md2
-rw-r--r--doc/api/award_emoji.md16
-rw-r--r--doc/api/boards.md4
-rw-r--r--doc/api/branches.md15
-rw-r--r--doc/api/broadcast_messages.md8
-rw-r--r--doc/api/commits.md76
-rw-r--r--doc/api/container_registry.md5
-rw-r--r--doc/api/deploy_keys.md2
-rw-r--r--doc/api/deploy_tokens.md4
-rw-r--r--doc/api/epics.md6
-rw-r--r--doc/api/events.md34
-rw-r--r--doc/api/feature_flag_specs.md12
-rw-r--r--doc/api/feature_flag_user_lists.md181
-rw-r--r--doc/api/feature_flags.md2
-rw-r--r--doc/api/features.md44
-rw-r--r--doc/api/freeze_periods.md168
-rw-r--r--doc/api/geo_nodes.md8
-rw-r--r--doc/api/graphql/getting_started.md2
-rw-r--r--doc/api/graphql/reference/gitlab_schema.graphql2033
-rw-r--r--doc/api/graphql/reference/gitlab_schema.json5358
-rw-r--r--doc/api/graphql/reference/index.md384
-rw-r--r--doc/api/group_badges.md2
-rw-r--r--doc/api/group_import_export.md8
-rw-r--r--doc/api/group_milestones.md73
-rw-r--r--doc/api/groups.md159
-rw-r--r--doc/api/import.md4
-rw-r--r--doc/api/instance_level_ci_variables.md162
-rw-r--r--doc/api/issues.md13
-rw-r--r--doc/api/issues_statistics.md6
-rw-r--r--doc/api/jobs.md12
-rw-r--r--doc/api/keys.md4
-rw-r--r--doc/api/labels.md4
-rw-r--r--doc/api/lint.md4
-rw-r--r--doc/api/managed_licenses.md2
-rw-r--r--doc/api/members.md72
-rw-r--r--doc/api/merge_request_approvals.md2
-rw-r--r--doc/api/merge_requests.md45
-rw-r--r--doc/api/metrics_dashboard_annotations.md14
-rw-r--r--doc/api/metrics_user_starred_dashboards.md61
-rw-r--r--doc/api/oauth2.md2
-rw-r--r--doc/api/packages.md23
-rw-r--r--doc/api/pages.md2
-rw-r--r--doc/api/pages_domains.md12
-rw-r--r--doc/api/pipeline_schedules.md20
-rw-r--r--doc/api/pipeline_triggers.md6
-rw-r--r--doc/api/pipelines.md65
-rw-r--r--doc/api/project_badges.md2
-rw-r--r--doc/api/project_import_export.md13
-rw-r--r--doc/api/project_repository_storage_moves.md80
-rw-r--r--doc/api/project_snippets.md4
-rw-r--r--doc/api/projects.md27
-rw-r--r--doc/api/releases/index.md29
-rw-r--r--doc/api/releases/links.md16
-rw-r--r--doc/api/remote_mirrors.md17
-rw-r--r--doc/api/repositories.md2
-rw-r--r--doc/api/repository_files.md20
-rw-r--r--doc/api/runners.md14
-rw-r--r--doc/api/scim.md27
-rw-r--r--doc/api/search.md35
-rw-r--r--doc/api/services.md82
-rw-r--r--doc/api/settings.md32
-rw-r--r--doc/api/snippets.md52
-rw-r--r--doc/api/templates/gitignores.md2
-rw-r--r--doc/api/todos.md9
-rw-r--r--doc/api/users.md23
-rw-r--r--doc/api/vulnerability_exports.md151
-rw-r--r--doc/api/wikis.md4
71 files changed, 9224 insertions, 637 deletions
diff --git a/doc/api/README.md b/doc/api/README.md
index 3c8d3dc4902..34d496a37fe 100644
--- a/doc/api/README.md
+++ b/doc/api/README.md
@@ -58,7 +58,7 @@ Currently only API version v4 is available. Version v3 was removed in
## Basic usage
API requests should be prefixed with `api` and the API version. The API version
-is defined in [`lib/api.rb`][lib-api-url]. For example, the root of the v4 API
+is defined in [`lib/api.rb`](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/api/api.rb). For example, the root of the v4 API
is at `/api/v4`.
Example of a valid API request using cURL:
@@ -75,12 +75,13 @@ end of an API URL.
Most API requests require authentication, or will only return public data when
authentication is not provided. For
those cases where it is not required, this will be mentioned in the documentation
-for each individual endpoint. For example, the [`/projects/:id` endpoint](projects.md).
+for each individual endpoint. For example, the [`/projects/:id` endpoint](projects.md#get-single-project).
-There are four ways to authenticate with the GitLab API:
+There are several ways to authenticate with the GitLab API:
1. [OAuth2 tokens](#oauth2-tokens)
-1. [Personal access tokens](#personal-access-tokens)
+1. [Personal access tokens](../user/profile/personal_access_tokens.md)
+1. [Project access tokens](../user/project/settings/project_access_tokens.md) **(CORE ONLY)**
1. [Session cookie](#session-cookie)
1. [GitLab CI/CD job token](#gitlab-ci-job-token) **(Specific endpoints only)**
@@ -117,31 +118,29 @@ curl --header "Authorization: Bearer OAUTH-TOKEN" https://gitlab.example.com/api
Read more about [GitLab as an OAuth2 provider](oauth2.md).
-### Personal access tokens
+### Personal/project access tokens
-You can use a [personal access token][pat] to authenticate with the API by passing it in either the
-`private_token` parameter or the `Private-Token` header.
+Access tokens can be used to authenticate with the API by passing it in either the `private_token` parameter
+or the `Private-Token` header.
-Example of using the personal access token in a parameter:
+Example of using the personal/project access token in a parameter:
```shell
curl https://gitlab.example.com/api/v4/projects?private_token=<your_access_token>
```
-Example of using the personal access token in a header:
+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
```
-You can also use personal access tokens with OAuth-compliant headers:
+You can also use personal/project access tokens with OAuth-compliant headers:
```shell
curl --header "Authorization: Bearer <your_access_token>" https://gitlab.example.com/api/v4/projects
```
-Read more about [personal access tokens][pat].
-
### Session cookie
When signing in to the main GitLab application, a `_gitlab_session` cookie is
@@ -163,9 +162,9 @@ to authenticate with the API:
### Impersonation tokens
-> [Introduced][ce-9099] in GitLab 9.0. Needs admin permissions.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9099) in GitLab 9.0. Needs admin permissions.
-Impersonation tokens are a type of [personal access token][pat]
+Impersonation tokens are a type of [personal access token](../user/profile/personal_access_tokens.md)
that can only be created by an admin for a specific user. They are a great fit
if you want to build applications or scripts that authenticate with the API as a specific user.
@@ -417,7 +416,7 @@ The response header includes a link to the next page. For example:
```http
HTTP/1.1 200 OK
...
-Link: <https://gitlab.example.com/api/v4/projects?pagination=keyset&per_page=50&order_by=id&sort=asc&id_after=42>; rel="next"
+Links: <https://gitlab.example.com/api/v4/projects?pagination=keyset&per_page=50&order_by=id&sort=asc&id_after=42>; rel="next"
Status: 200 OK
...
```
@@ -425,7 +424,7 @@ Status: 200 OK
The link to the next page contains an additional filter `id_after=42` which excludes records we have retrieved already.
Note the type of filter depends on the `order_by` option used and we may have more than one additional filter.
-When the end of the collection has been reached and there are no additional records to retrieve, the `Link` header is absent and the resulting array is empty.
+When the end of the collection has been reached and there are no additional records to retrieve, the `Links` header is absent and the resulting array is empty.
We recommend using only the given link to retrieve the next page instead of building your own URL. Apart from the headers shown,
we don't expose additional pagination headers.
@@ -446,14 +445,20 @@ For example:
DELETE /projects/:id/share/:group_id
```
-The `:id` path parameter needs to be replaced with the project id, and the `:group_id` needs to be replaced with the id of the group. The colons `:` should not be included.
+The `:id` path parameter needs to be replaced with the project ID, and the `:group_id` needs to be replaced with the ID of the group. The colons `:` should not be included.
-The resulting cURL call for a project with id `5` and a group id of `17` is then:
+The resulting cURL call for a project with ID `5` and a group ID of `17` is then:
```shell
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/share/17
```
+NOTE: **Note:**
+Path parameters that are required to be URL-encoded must be followed. If not,
+it will not match an API endpoint and respond with a 404. If there's something
+in front of the API (for example, Apache), ensure that it won't decode the URL-encoded
+path parameters.
+
## Namespaced path encoding
If using namespaced API calls, make sure that the `NAMESPACE/PROJECT_PATH` is
@@ -470,15 +475,16 @@ A project's **path** is not necessarily the same as its **name**. A
project's path can be found in the project's URL or in the project's settings
under **General > Advanced > Change path**.
-## Branches and tags name encoding
+## File path, branches, and tags name encoding
-If your branch or tag contains a `/`, make sure the branch/tag name is
-URL-encoded.
+If a file path, branch or tag contains a `/`, make sure it is URL-encoded.
For example, `/` is represented by `%2F`:
```plaintext
+GET /api/v4/projects/1/repository/files/src%2FREADME.md?ref=master
GET /api/v4/projects/1/branches/my%2Fbranch/commits
+GET /api/v4/projects/1/repository/tags/my%2Ftag
```
## Encoding API parameters of `array` and `hash` types
@@ -642,9 +648,3 @@ For administrator documentation on rate limit settings, see
[Rate limits](../security/rate_limits.md). To find the settings that are
specifically used by GitLab.com, see
[GitLab.com-specific rate limits](../user/gitlab_com/index.md#gitlabcom-specific-rate-limits).
-
-[lib-api-url]: https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/api/api.rb
-[ce-3749]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/3749
-[ce-5951]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5951
-[ce-9099]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9099
-[pat]: ../user/profile/personal_access_tokens.md
diff --git a/doc/api/api_resources.md b/doc/api/api_resources.md
index 8b3d8462cc9..2adf06a8e95 100644
--- a/doc/api/api_resources.md
+++ b/doc/api/api_resources.md
@@ -26,11 +26,14 @@ The following API resources are available in the project context:
| [Custom attributes](custom_attributes.md) | `/projects/:id/custom_attributes` (also available for groups and users) |
| [Dependencies](dependencies.md) **(ULTIMATE)** | `/projects/:id/dependencies` |
| [Deploy keys](deploy_keys.md) | `/projects/:id/deploy_keys` (also available standalone) |
+| [Freeze Periods](freeze_periods.md) | `/projects/:id/freeze_periods` |
| [Deployments](deployments.md) | `/projects/:id/deployments` |
| [Discussions](discussions.md) (threaded comments) | `/projects/:id/issues/.../discussions`, `/projects/:id/snippets/.../discussions`, `/projects/:id/merge_requests/.../discussions`, `/projects/:id/commits/.../discussions` (also available for groups) |
| [Environments](environments.md) | `/projects/:id/environments` |
| [Error Tracking](error_tracking.md) | `/projects/:id/error_tracking/settings` |
| [Events](events.md) | `/projects/:id/events` (also available for users and standalone) |
+| [Feature Flags](feature_flags.md) | `/projects/:id/feature_flags` |
+| [Feature Flag User Lists](feature_flag_user_lists.md) | `/projects/:id/feature_flags_user_lists` |
| [Issues](issues.md) | `/projects/:id/issues` (also available for groups and standalone) |
| [Issues Statistics](issues_statistics.md) | `/projects/:id/issues_statistics` (also available for groups and standalone) |
| [Issue boards](boards.md) | `/projects/:id/boards` |
@@ -56,7 +59,7 @@ The following API resources are available in the project context:
| [Project milestones](milestones.md) | `/projects/:id/milestones` |
| [Project snippets](project_snippets.md) | `/projects/:id/snippets` |
| [Project templates](project_templates.md) | `/projects/:id/templates` |
-| [Protected_environments](protected_environments.md) | `/projects/:id/protected_environments` |
+| [Protected environments](protected_environments.md) | `/projects/:id/protected_environments` |
| [Protected branches](protected_branches.md) | `/projects/:id/protected_branches` |
| [Protected tags](protected_tags.md) | `/projects/:id/protected_tags` |
| [Releases](releases/index.md) | `/projects/:id/releases` |
@@ -70,7 +73,8 @@ The following API resources are available in the project context:
| [Search](search.md) | `/projects/:id/search` (also available for groups and standalone) |
| [Services](services.md) | `/projects/:id/services` |
| [Tags](tags.md) | `/projects/:id/repository/tags` |
-| [Visual Review discussions](visual_review_discussions.md) **(STARTER**) | `/projects/:id/merge_requests/:merge_request_id/visual_review_discussions` |
+| [User-starred metrics dashboards](metrics_user_starred_dashboards.md ) | `/projects/:id/metrics/user_starred_dashboards` |
+| [Visual Review discussions](visual_review_discussions.md) **(STARTER)** | `/projects/:id/merge_requests/:merge_request_id/visual_review_discussions` |
| [Vulnerabilities](vulnerabilities.md) **(ULTIMATE)** | `/vulnerabilities/:id` |
| [Vulnerability exports](vulnerability_exports.md) **(ULTIMATE)** | `/projects/:id/vulnerability_exports` |
| [Project vulnerabilities](project_vulnerabilities.md) **(ULTIMATE)** | `/projects/:id/vulnerabilities` |
@@ -110,7 +114,8 @@ The following API resources are available outside of project and group contexts
| Resource | Available endpoints |
|:---------------------------------------------------|:------------------------------------------------------------------------|
-| [Admin Sidekiq queues](admin_sidekiq_queues.md) | `/admin/sidekiq/queues/:queue_name` |
+| [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` |
| [Appearance](appearance.md) **(CORE ONLY)** | `/application/appearance` |
| [Applications](applications.md) | `/applications` |
| [Audit Events](audit_events.md) **(PREMIUM ONLY)** | `/audit_events` |
@@ -130,11 +135,12 @@ The following API resources are available outside of project and group contexts
| [License](license.md) **(CORE ONLY)** | `/license` |
| [Markdown](markdown.md) | `/markdown` |
| [Merge requests](merge_requests.md) | `/merge_requests` (also available for groups and projects) |
-| [Metrics dashboard annotations](metrics_dashboard_annotations.md) | `/environments/:id/metrics_dashboard/annotations` |
+| [Metrics dashboard annotations](metrics_dashboard_annotations.md) | `/environments/:id/metrics_dashboard/annotations`, `/clusters/:id/metrics_dashboard/annotations` |
| [Namespaces](namespaces.md) | `/namespaces` |
| [Notification settings](notification_settings.md) | `/notification_settings` (also available for groups and projects) |
| [Pages domains](pages_domains.md) | `/pages/domains` (also available for projects) |
| [Projects](projects.md) | `/users/:id/projects` (also available for projects) |
+| [Project Repository Storage Moves](project_repository_storage_moves.md) | `/project_repository_storage_moves` |
| [Runners](runners.md) | `/runners` (also available for projects) |
| [Search](search.md) | `/search` (also available for groups and projects) |
| [Settings](settings.md) **(CORE ONLY)** | `/application/settings` |
diff --git a/doc/api/appearance.md b/doc/api/appearance.md
index f9ca6aed01a..733d71ee222 100644
--- a/doc/api/appearance.md
+++ b/doc/api/appearance.md
@@ -27,6 +27,7 @@ Example response:
"header_logo": "/uploads/-/system/appearance/header_logo/1/header.png",
"favicon": "/uploads/-/system/appearance/favicon/1/favicon.png",
"new_project_guidelines": "Please read the FAQs for help.",
+ "profile_image_guidelines": "Custom profile image guidelines",
"header_message": "",
"footer_message": "",
"message_background_color": "#e75e40",
@@ -51,6 +52,7 @@ PUT /application/appearance
| `header_logo` | mixed | no | Instance image used for the main navigation bar
| `favicon` | mixed | no | Instance favicon in .ico/.png format
| `new_project_guidelines` | string | no | Markdown text shown on the new project page
+| `profile_image_guidelines` | string | no | Markdown text shown on the profile page below Public Avatar
| `header_message` | string | no | Message within the system header bar
| `footer_message` | string | no | Message within the system footer bar
| `message_background_color` | string | no | Background color for the system header / footer bar
@@ -71,6 +73,7 @@ Example response:
"header_logo": "/uploads/-/system/appearance/header_logo/1/header.png",
"favicon": "/uploads/-/system/appearance/favicon/1/favicon.png",
"new_project_guidelines": "Please read the FAQs for help.",
+ "profile_image_guidelines": "Custom profile image guidelines",
"header_message": "test",
"footer_message": "",
"message_background_color": "#e75e40",
diff --git a/doc/api/applications.md b/doc/api/applications.md
index c7bfebb75fa..5d4a8b3a99f 100644
--- a/doc/api/applications.md
+++ b/doc/api/applications.md
@@ -16,7 +16,7 @@ Create an application by posting a JSON payload.
Returns `200` if the request succeeds.
-```text
+```plaintext
POST /applications
```
@@ -52,7 +52,7 @@ Example response:
List all registered applications.
-```text
+```plaintext
GET /applications
```
@@ -85,7 +85,7 @@ Delete a specific application.
Returns `204` if the request succeeds.
-```text
+```plaintext
DELETE /applications/:id
```
@@ -93,7 +93,7 @@ Parameters:
| Attribute | Type | Required | Description |
|:----------|:--------|:---------|:----------------------------------------------------|
-| `id` | integer | yes | The id of the application (not the application_id). |
+| `id` | integer | yes | The ID of the application (not the application_id). |
Example request:
diff --git a/doc/api/avatar.md b/doc/api/avatar.md
index 55d5f1e613a..308c0de25f4 100644
--- a/doc/api/avatar.md
+++ b/doc/api/avatar.md
@@ -15,7 +15,7 @@ If:
NOTE: **Note:**
This endpoint can be accessed without authentication.
-```text
+```plaintext
GET /avatar?email=admin@example.com
```
diff --git a/doc/api/award_emoji.md b/doc/api/award_emoji.md
index 7fb96f4f1c0..37b3cd32f89 100644
--- a/doc/api/award_emoji.md
+++ b/doc/api/award_emoji.md
@@ -20,7 +20,7 @@ See [Award Emoji on Comments](#award-emoji-on-comments) for information on using
Get a list of all award emoji for a specified awardable.
-```text
+```plaintext
GET /projects/:id/issues/:issue_iid/award_emoji
GET /projects/:id/merge_requests/:merge_request_iid/award_emoji
GET /projects/:id/snippets/:snippet_id/award_emoji
@@ -82,7 +82,7 @@ Example response:
Get a single award emoji from an issue, snippet, or merge request.
-```text
+```plaintext
GET /projects/:id/issues/:issue_iid/award_emoji/:award_id
GET /projects/:id/merge_requests/:merge_request_iid/award_emoji/:award_id
GET /projects/:id/snippets/:snippet_id/award_emoji/:award_id
@@ -127,7 +127,7 @@ Example response:
Create an award emoji on the specified awardable.
-```text
+```plaintext
POST /projects/:id/issues/:issue_iid/award_emoji
POST /projects/:id/merge_requests/:merge_request_iid/award_emoji
POST /projects/:id/snippets/:snippet_id/award_emoji
@@ -173,7 +173,7 @@ Sometimes it's just not meant to be and you'll have to remove the award.
NOTE: **Note:**
Only available to administrators or the author of the award.
-```text
+```plaintext
DELETE /projects/:id/issues/:issue_iid/award_emoji/:award_id
DELETE /projects/:id/merge_requests/:merge_request_iid/award_emoji/:award_id
DELETE /projects/:id/snippets/:snippet_id/award_emoji/:award_id
@@ -204,7 +204,7 @@ easily adapted for comments on a merge request or on a snippet. Therefore, you h
Get all award emoji for a comment (note).
-```text
+```plaintext
GET /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji
```
@@ -249,7 +249,7 @@ Example response:
Get a single award emoji for a comment (note).
-```text
+```plaintext
GET /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id
```
@@ -293,7 +293,7 @@ Example response:
Create an award emoji on the specified comment (note).
-```text
+```plaintext
POST /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji
```
@@ -340,7 +340,7 @@ Sometimes it's just not meant to be and you'll have to remove the award.
NOTE: **Note:**
Only available to administrators or the author of the award.
-```text
+```plaintext
DELETE /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id
```
diff --git a/doc/api/boards.md b/doc/api/boards.md
index b99f249cab1..8af23527931 100644
--- a/doc/api/boards.md
+++ b/doc/api/boards.md
@@ -229,7 +229,7 @@ Example response:
## Update a board **(STARTER)**
-> [Introduced][ee-5954] in [GitLab Starter](https://about.gitlab.com/pricing/) 11.1.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/5954) in [GitLab Starter](https://about.gitlab.com/pricing/) 11.1.
Updates a board.
@@ -511,5 +511,3 @@ DELETE /projects/:id/boards/:board_id/lists/:list_id
```shell
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1
```
-
-[ee-5954]: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/5954
diff --git a/doc/api/branches.md b/doc/api/branches.md
index 2f9ca62ced6..7d14a3d54b9 100644
--- a/doc/api/branches.md
+++ b/doc/api/branches.md
@@ -12,7 +12,7 @@ Get a list of repository branches from a project, sorted by name alphabetically.
NOTE: **Note:**
This endpoint can be accessed without authentication if the repository is publicly accessible.
-```text
+```plaintext
GET /projects/:id/repository/branches
```
@@ -41,6 +41,7 @@ Example response:
"developers_can_push": false,
"developers_can_merge": false,
"can_push": true,
+ "web_url": "http://gitlab.example.com/my-group/my-project/-/tree/master",
"commit": {
"author_email": "john@example.com",
"author_name": "John Smith",
@@ -68,7 +69,7 @@ Get a single project repository branch.
NOTE: **Note:**
This endpoint can be accessed without authentication if the repository is publicly accessible.
-```text
+```plaintext
GET /projects/:id/repository/branches/:branch
```
@@ -96,6 +97,7 @@ Example response:
"developers_can_push": false,
"developers_can_merge": false,
"can_push": true,
+ "web_url": "http://gitlab.example.com/my-group/my-project/-/tree/master",
"commit": {
"author_email": "john@example.com",
"author_name": "John Smith",
@@ -128,7 +130,7 @@ for information on unprotecting repository branches.
Create a new branch in the repository.
-```text
+```plaintext
POST /projects/:id/repository/branches
```
@@ -171,7 +173,8 @@ Example response:
"default": false,
"developers_can_push": false,
"developers_can_merge": false,
- "can_push": true
+ "can_push": true,
+ "web_url": "http://gitlab.example.com/my-group/my-project/-/tree/newbranch"
}
```
@@ -182,7 +185,7 @@ Delete a branch from the repository.
NOTE: **Note:**
In the case of an error, an explanation message is provided.
-```text
+```plaintext
DELETE /projects/:id/repository/branches/:branch
```
@@ -206,7 +209,7 @@ Will delete all branches that are merged into the project's default branch.
NOTE: **Note:**
[Protected branches](../user/project/protected_branches.md) will not be deleted as part of this operation.
-```text
+```plaintext
DELETE /projects/:id/repository/merged_branches
```
diff --git a/doc/api/broadcast_messages.md b/doc/api/broadcast_messages.md
index 1ff40103750..db2198dc162 100644
--- a/doc/api/broadcast_messages.md
+++ b/doc/api/broadcast_messages.md
@@ -13,7 +13,7 @@ As of GitLab 12.8, GET requests do not require authentication. All other broadca
List all broadcast messages.
-```text
+```plaintext
GET /broadcast_messages
```
@@ -46,7 +46,7 @@ Example response:
Get a specific broadcast message.
-```text
+```plaintext
GET /broadcast_messages/:id
```
@@ -83,7 +83,7 @@ Example response:
Create a new broadcast message.
-```text
+```plaintext
POST /broadcast_messages
```
@@ -127,7 +127,7 @@ Example response:
Update an existing broadcast message.
-```text
+```plaintext
PUT /broadcast_messages/:id
```
diff --git a/doc/api/commits.md b/doc/api/commits.md
index 356f090f0ff..98a8e4ea2ce 100644
--- a/doc/api/commits.md
+++ b/doc/api/commits.md
@@ -65,7 +65,7 @@ Example response:
## Create a commit with multiple files and actions
-> [Introduced][ce-6096] in GitLab 8.13.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/6096) in GitLab 8.13.
Create a commit by posting a JSON payload
@@ -94,7 +94,7 @@ POST /projects/:id/repository/commits
| `previous_path` | string | no | Original full path to the file being moved. Ex. `lib/class1.rb`. Only considered for `move` action. |
| `content` | string | no | File content, required for all except `delete`, `chmod`, and `move`. Move actions that do not specify `content` will preserve the existing file content, and any other value of `content` will overwrite the file content. |
| `encoding` | string | no | `text` or `base64`. `text` is default. |
-| `last_commit_id` | string | no | Last known file commit id. Will be only considered in update, move and delete actions. |
+| `last_commit_id` | string | no | Last known file commit ID. Will be only considered in update, move, and delete actions. |
| `execute_filemode` | boolean | no | When `true/false` enables/disables the execute flag on the file. Only considered for `chmod` action. |
```shell
@@ -245,7 +245,7 @@ Example response:
## Get references a commit is pushed to
-> [Introduced][ce-15026] in GitLab 10.6
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15026) in GitLab 10.6
Get all references (from branches or tags) a commit is pushed to.
The pagination parameters `page` and `per_page` can be used to restrict the list of references.
@@ -280,7 +280,7 @@ Example response:
## Cherry pick a commit
-> [Introduced][ce-8047] in GitLab 8.15.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/8047) in GitLab 8.15.
Cherry picks a commit to a given branch.
@@ -340,7 +340,7 @@ conflict.
## Revert a commit
-> [Introduced][ce-22919] in GitLab 11.5.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22919) in GitLab 11.5.
Reverts a commit in a given branch.
@@ -521,6 +521,62 @@ Example response:
}
```
+## Get the discussions of a commit
+
+Get the discussions of a commit in a project.
+
+```plaintext
+GET /projects/:id/repository/commits/:sha/discussions
+```
+
+Parameters:
+
+| 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
+| `sha` | string | yes | The commit hash or name of a repository branch or tag |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/commits/4604744a1c64de00ff62e1e8a6766919923d2b41/discussions"
+```
+
+Example response:
+
+```json
+[
+ {
+ "id": "4604744a1c64de00ff62e1e8a6766919923d2b41",
+ "individual_note": true,
+ "notes": [
+ {
+ "id": 334686748,
+ "type": null,
+ "body": "I'm the Dude, so that's what you call me.",
+ "attachment": null,
+ "author" : {
+ "id" : 28,
+ "name" : "Jeff Lebowski",
+ "username" : "thedude",
+ "web_url" : "https://gitlab.example.com/thedude",
+ "state" : "active",
+ "avatar_url" : "https://gitlab.example.com/uploads/user/avatar/28/The-Big-Lebowski-400-400.png"
+ },
+ "created_at": "2020-04-30T18:48:11.432Z",
+ "updated_at": "2020-04-30T18:48:11.432Z",
+ "system": false,
+ "noteable_id": null,
+ "noteable_type": "Commit",
+ "resolvable": false,
+ "confidential": null,
+ "noteable_iid": null,
+ "commands_changes": {}
+ }
+ ]
+ }
+]
+
+```
+
## Commit status
Since GitLab 8.1, this is the new commit status API.
@@ -653,7 +709,7 @@ Example response:
## List Merge Requests associated with a commit
-> [Introduced][ce-18004] in GitLab 10.7.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18004) in GitLab 10.7.
Get a list of Merge Requests related to the specified commit.
@@ -755,7 +811,7 @@ Example response if commit is GPG signed:
}
```
-Example response if commit is x509 signed:
+Example response if commit is X.509 signed:
```json
{
@@ -785,9 +841,3 @@ Example response if commit is unsigned:
"message": "404 GPG Signature Not Found"
}
```
-
-[ce-6096]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/6096 "Multi-file commit"
-[ce-8047]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/8047
-[ce-15026]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15026
-[ce-18004]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18004
-[ce-22919]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22919
diff --git a/doc/api/container_registry.md b/doc/api/container_registry.md
index a41a71808ce..9ec4373c92c 100644
--- a/doc/api/container_registry.md
+++ b/doc/api/container_registry.md
@@ -18,6 +18,7 @@ GET /projects/:id/registry/repositories
| --------- | ---- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) accessible by the authenticated user. |
| `tags` | boolean | no | If the parameter is included as true, each repository will include an array of `"tags"` in the response. |
+| `name` | string | no | Returns a list of repositories with a name that matches the value. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29763) in GitLab 13.0). |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/registry/repositories"
@@ -58,6 +59,7 @@ GET /groups/:id/registry/repositories
| --------- | ---- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) accessible by the authenticated user. |
| `tags` | boolean | no | If the parameter is included as true, each repository will include an array of `"tags"` in the response. |
+| `name` | string | no | Returns a list of repositories with a name that matches the value. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29763) in GitLab 13.0). |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/2/registry/repositories?tags=1"
@@ -223,6 +225,9 @@ This action does not delete blobs. In order to delete them and recycle disk spac
Delete registry repository tags in bulk based on given criteria.
+<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
+For an overview, see [Utilize the Container Registry API to delete all tags except *](https://youtu.be/Hi19bKe_xsg).
+
```plaintext
DELETE /projects/:id/registry/repositories/:repository_id/tags
```
diff --git a/doc/api/deploy_keys.md b/doc/api/deploy_keys.md
index f6d00988c56..a7acc0c2b55 100644
--- a/doc/api/deploy_keys.md
+++ b/doc/api/deploy_keys.md
@@ -2,7 +2,7 @@
## List all deploy keys
-Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access.
+Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access and is not available on GitLab.com.
```plaintext
GET /deploy_keys
diff --git a/doc/api/deploy_tokens.md b/doc/api/deploy_tokens.md
index 461957847df..6e732a43da0 100644
--- a/doc/api/deploy_tokens.md
+++ b/doc/api/deploy_tokens.md
@@ -92,7 +92,7 @@ POST /projects/:id/deploy_tokens
| `name` | string | yes | New deploy token's name |
| `expires_at` | datetime | no | Expiration date for the deploy token. Does not expire if no value is provided. |
| `username` | string | no | Username for deploy token. Default is `gitlab+deploy-token-{n}` |
-| `scopes` | array of strings | yes | Indicates the deploy token scopes. Must be at least one of `read_repository`, `read_registry`, or `write_registry`. |
+| `scopes` | array of strings | yes | Indicates the deploy token scopes. Must be at least one of `read_repository`, `read_registry`, `write_registry`, `read_package_registry`, or `write_package_registry`. |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data '{"name": "My deploy token", "expires_at": "2021-01-01", "username": "custom-user", "scopes": ["read_repository"]}' "https://gitlab.example.com/api/v4/projects/5/deploy_tokens/"
@@ -193,7 +193,7 @@ POST /groups/:id/deploy_tokens
| `name` | string | yes | New deploy token's name |
| `expires_at` | datetime | no | Expiration date for the deploy token. Does not expire if no value is provided. |
| `username` | string | no | Username for deploy token. Default is `gitlab+deploy-token-{n}` |
-| `scopes` | array of strings | yes | Indicates the deploy token scopes. Must be at least one of `read_repository`, `read_registry`, or `write_registry`. |
+| `scopes` | array of strings | yes | Indicates the deploy token scopes. Must be at least one of `read_repository`, `read_registry`, `write_registry`, `read_package_registry`, or `write_package_registry`. |
Example request:
diff --git a/doc/api/epics.md b/doc/api/epics.md
index bf6a18fcedc..6ca6f04b741 100644
--- a/doc/api/epics.md
+++ b/doc/api/epics.md
@@ -1,5 +1,8 @@
# Epics API **(PREMIUM)**
+> - Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.2.
+> - Single-level Epics [were moved](https://gitlab.com/gitlab-org/gitlab/issues/37081) to [GitLab Premium](https://about.gitlab.com/pricing/) in 12.8.
+
Every API call to epic must be authenticated.
If a user is not a member of a group and the group is private, a `GET` request on that group will result to a `404` status code.
@@ -64,6 +67,7 @@ GET /groups/:id/epics?state=opened
| `updated_before` | datetime | no | Return epics updated on or before the given time |
| `include_ancestor_groups` | boolean | no | Include epics from the requested group's ancestors. Default is `false` |
| `include_descendant_groups` | boolean | no | Include epics from the requested group's descendants. Default is `true` |
+| `my_reaction_emoji` | string | no | Return epics reacted by the authenticated user by the given emoji. `None` returns epics not given a reaction. `Any` returns epics given at least one reaction. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31479)|
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/1/epics
@@ -246,7 +250,7 @@ POST /groups/:id/epics
| `start_date_fixed` | string | no | The fixed start date of an epic (since 11.3) |
| `due_date_is_fixed` | boolean | no | Whether due date should be sourced from `due_date_fixed` or from milestones (since 11.3) |
| `due_date_fixed` | string | no | The fixed due date of an epic (since 11.3) |
-| `parent_id` | integer/string | no | The id of a parent epic (since 11.11) |
+| `parent_id` | integer/string | no | The ID of a parent epic (since 11.11) |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/1/epics?title=Epic&description=Epic%20description
diff --git a/doc/api/events.md b/doc/api/events.md
index 431e96b2804..e6cb56f1339 100644
--- a/doc/api/events.md
+++ b/doc/api/events.md
@@ -62,10 +62,10 @@ Parameters:
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `action` | string | no | Include only events of a particular [action type][action-types] |
-| `target_type` | string | no | Include only events of a particular [target type][target-types] |
-| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format][date-formatting] |
-| `after` | date | no | Include only events created after a particular date. Please see [here for the supported format][date-formatting] |
+| `action` | string | no | Include only events of a particular [action type](#action-types) |
+| `target_type` | string | no | Include only events of a particular [target type](#target-types) |
+| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format](#date-formatting) |
+| `after` | date | no | Include only events created after a particular date. Please see [here for the supported format](#date-formatting) |
| `scope` | string | no | Include all events across a user's projects. |
| `sort` | string | no | Sort events in `asc` or `desc` order by `created_at`. Default is `desc` |
@@ -123,7 +123,7 @@ Example response:
### Get user contribution events
>**Notes:**
-> Documentation was formerly located in the [Users API pages][users-api].
+> Documentation was formerly located in the [Users API pages](users.md).
> `read_user` access was introduced in GitLab 11.3.
Get the contribution events for the specified user, sorted from newest to oldest. Scope `read_user` or `api` is required.
@@ -137,10 +137,10 @@ Parameters:
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | integer | yes | The ID or Username of the user |
-| `action` | string | no | Include only events of a particular [action type][action-types] |
-| `target_type` | string | no | Include only events of a particular [target type][target-types] |
-| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format][date-formatting] |
-| `after` | date | no | Include only events created after a particular date. Please see [here for the supported format][date-formatting] |
+| `action` | string | no | Include only events of a particular [action type](#action-types) |
+| `target_type` | string | no | Include only events of a particular [target type](#target-types) |
+| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format](#date-formatting) |
+| `after` | date | no | Include only events created after a particular date. Please see [here for the supported format](#date-formatting) |
| `sort` | string | no | Sort events in `asc` or `desc` order by `created_at`. Default is `desc` |
```shell
@@ -255,7 +255,7 @@ Example response:
## List a Project's visible events
->**Note:** This endpoint has been around longer than the others. Documentation was formerly located in the [Projects API pages][projects-api].
+>**Note:** This endpoint has been around longer than the others. Documentation was formerly located in the [Projects API pages](projects.md).
Get a list of visible events for a particular project.
@@ -268,10 +268,10 @@ Parameters:
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `project_id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
-| `action` | string | no | Include only events of a particular [action type][action-types] |
-| `target_type` | string | no | Include only events of a particular [target type][target-types] |
-| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format][date-formatting] |
-| `after` | date | no | Include only events created after a particular date. Please see [here for the supported format][date-formatting] |
+| `action` | string | no | Include only events of a particular [action type](#action-types) |
+| `target_type` | string | no | Include only events of a particular [target type](#target-types) |
+| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format](#date-formatting) |
+| `after` | date | no | Include only events created after a particular date. Please see [here for the supported format](#date-formatting) |
| `sort` | string | no | Sort events in `asc` or `desc` order by `created_at`. Default is `desc` |
Example request:
@@ -365,9 +365,3 @@ Example response:
}
]
```
-
-[target-types]: #target-types "Target Type parameter"
-[action-types]: #action-types "Action Type parameter"
-[date-formatting]: #date-formatting "Date Formatting guidance"
-[projects-api]: projects.md "Projects API pages"
-[users-api]: users.md "Users API pages"
diff --git a/doc/api/feature_flag_specs.md b/doc/api/feature_flag_specs.md
index 442d2c2c2d7..fbe99826b27 100644
--- a/doc/api/feature_flag_specs.md
+++ b/doc/api/feature_flag_specs.md
@@ -10,7 +10,7 @@ Users with Developer or higher [permissions](../user/permissions.md) can access
## List all effective feature flag specs under the specified environment
-Get all effective feature flag specs under the specified [environment](../ci/environments.md).
+Get all effective feature flag specs under the specified [environment](../ci/environments/index.md).
For instance, there are two specs, `staging` and `production`, for a feature flag.
When you pass `production` as a parameter to this endpoint, the system returns
@@ -23,7 +23,7 @@ GET /projects/:id/feature_flag_scopes
| Attribute | Type | Required | Description |
| ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
-| `environment` | string | yes | The [environment](../ci/environments.md) name |
+| `environment` | string | yes | The [environment](../ci/environments/index.md) name |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/feature_flag_scopes?environment=production
@@ -155,7 +155,7 @@ POST /projects/:id/feature_flags/:name/scopes
| ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
| `name` | string | yes | The name of the feature flag. |
-| `environment_scope` | string | yes | The [environment spec](../ci/environments.md#scoping-environments-with-specs) of the feature flag. |
+| `environment_scope` | string | yes | The [environment spec](../ci/environments/index.md#scoping-environments-with-specs) of the feature flag. |
| `active` | boolean | yes | Whether the spec is active. |
| `strategies` | json | yes | The [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. |
@@ -202,7 +202,7 @@ GET /projects/:id/feature_flags/:name/scopes/:environment_scope
| ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
| `name` | string | yes | The name of the feature flag. |
-| `environment_scope` | string | yes | The URL-encoded [environment spec](../ci/environments.md#scoping-environments-with-specs) of the feature flag. |
+| `environment_scope` | string | yes | The URL-encoded [environment spec](../ci/environments/index.md#scoping-environments-with-specs) of the feature flag. |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/:id/feature_flags/new_live_trace/scopes/production
@@ -238,7 +238,7 @@ PUT /projects/:id/feature_flags/:name/scopes/:environment_scope
| ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
| `name` | string | yes | The name of the feature flag. |
-| `environment_scope` | string | yes | The URL-encoded [environment spec](../ci/environments.md#scoping-environments-with-specs) of the feature flag. |
+| `environment_scope` | string | yes | The URL-encoded [environment spec](../ci/environments/index.md#scoping-environments-with-specs) of the feature flag. |
| `active` | boolean | yes | Whether the spec is active. |
| `strategies` | json | yes | The [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. |
@@ -284,7 +284,7 @@ DELETE /projects/:id/feature_flags/:name/scopes/:environment_scope
| ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
| `name` | string | yes | The name of the feature flag. |
-| `environment_scope` | string | yes | The URL-encoded [environment spec](../ci/environments.md#scoping-environments-with-specs) of the feature flag. |
+| `environment_scope` | string | yes | The URL-encoded [environment spec](../ci/environments/index.md#scoping-environments-with-specs) of the feature flag. |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" --request DELETE https://gitlab.example.com/api/v4/projects/1/feature_flags/new_live_trace/scopes/production
diff --git a/doc/api/feature_flag_user_lists.md b/doc/api/feature_flag_user_lists.md
new file mode 100644
index 00000000000..04cad8f2d1d
--- /dev/null
+++ b/doc/api/feature_flag_user_lists.md
@@ -0,0 +1,181 @@
+# Feature flag user lists API **(PREMIUM)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/205409) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.10.
+
+API for accessing GitLab Feature Flag User Lists.
+
+Users with Developer or higher [permissions](../user/permissions.md) can access the Feature Flag User Lists API.
+
+NOTE: **Note:**
+`GET` requests return twenty results at a time because the API results
+are [paginated](README.md#pagination). You can change this value.
+
+## List all feature flag user lists for a project
+
+Gets all feature flag user lists for the requested project.
+
+```plaintext
+GET /projects/:id/feature_flags_user_lists
+```
+
+| Attribute | Type | Required | Description |
+| ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/feature_flags_user_lists
+```
+
+Example response:
+
+```json
+[
+ {
+ "name": "user_list",
+ "user_xids": "user1,user2",
+ "id": 1,
+ "iid": 1,
+ "project_id": 1,
+ "created_at": "2020-02-04T08:13:51.423Z",
+ "updated_at": "2020-02-04T08:13:51.423Z"
+ },
+ {
+ "name": "test_users",
+ "user_xids": "user3,user4,user5",
+ "id": 2,
+ "iid": 2,
+ "project_id": 1,
+ "created_at": "2020-02-04T08:13:10.507Z",
+ "updated_at": "2020-02-04T08:13:10.507Z"
+ }
+]
+```
+
+## Create a feature flag user list
+
+Creates a feature flag user list.
+
+```plaintext
+POST /projects/:id/feature_flags_user_lists
+```
+
+| Attribute | Type | Required | Description |
+| ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------|
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `name` | string | yes | The name of the feature flag. |
+| `user_xids` | string | yes | A comma separated list of user IDs. |
+
+```shell
+curl https://gitlab.example.com/api/v4/projects/1/feature_flags_user_lists \
+ --header "PRIVATE-TOKEN: <your_access_token>" \
+ --header "Content-type: application/json" \
+ --data @- << EOF
+{
+ "name": "my_user_list",
+ "user_xids": "user1,user2,user3"
+}
+EOF
+```
+
+Example response:
+
+```json
+{
+ "name": "my_user_list",
+ "user_xids": "user1,user2,user3",
+ "id": 1,
+ "iid": 1,
+ "project_id": 1,
+ "created_at": "2020-02-04T08:32:27.288Z",
+ "updated_at": "2020-02-04T08:32:27.288Z"
+}
+```
+
+## Get a feature flag user list
+
+Gets a feature flag user list.
+
+```plaintext
+GET /projects/:id/feature_flags_user_lists/:iid
+```
+
+| Attribute | Type | Required | Description |
+| ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------|
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `iid` | integer/string | yes | The internal ID of the project's feature flag user list. |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/feature_flags_user_lists/1
+```
+
+Example response:
+
+```json
+{
+ "name": "my_user_list",
+ "user_xids": "123,456",
+ "id": 1,
+ "iid": 1,
+ "project_id": 1,
+ "created_at": "2020-02-04T08:13:10.507Z",
+ "updated_at": "2020-02-04T08:13:10.507Z",
+}
+```
+
+## Update a feature flag user list
+
+Updates a feature flag user list.
+
+```plaintext
+PUT /projects/:id/feature_flags_user_lists/:iid
+```
+
+| Attribute | Type | Required | Description |
+| ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------|
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `iid` | integer/string | yes | The internal ID of the project's feature flag user list. |
+| `name` | string | no | The name of the feature flag. |
+| `user_xids` | string | no | A comma separated list of user IDs. |
+
+```shell
+curl https://gitlab.example.com/api/v4/projects/1/feature_flags_user_lists/1 \
+ --header "PRIVATE-TOKEN: <your_access_token>" \
+ --header "Content-type: application/json" \
+ --request PUT \
+ --data @- << EOF
+{
+ "user_xids": "user2,user3,user4"
+}
+EOF
+```
+
+Example response:
+
+```json
+{
+ "name": "my_user_list",
+ "user_xids": "user2,user3,user4",
+ "id": 1,
+ "iid": 1,
+ "project_id": 1,
+ "created_at": "2020-02-04T08:32:27.288Z",
+ "updated_at": "2020-02-05T09:33:17.179Z"
+}
+```
+
+## Delete feature flag user list
+
+Deletes a feature flag user list.
+
+```plaintext
+DELETE /projects/:id/feature_flags_user_lists/:iid
+```
+
+| Attribute | Type | Required | Description |
+| ------------------- | ---------------- | ---------- | ---------------------------------------------------------------------------------------|
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `iid` | integer/string | yes | The internal ID of the project's feature flag user list |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" --request DELETE https://gitlab.example.com/api/v4/projects/1/feature_flags_user_lists/1
+```
diff --git a/doc/api/feature_flags.md b/doc/api/feature_flags.md
index f95eb31c84c..3e1b0e05298 100644
--- a/doc/api/feature_flags.md
+++ b/doc/api/feature_flags.md
@@ -155,7 +155,7 @@ POST /projects/:id/feature_flags
| `name` | string | yes | The name of the feature flag. |
| `description` | string | no | The description of the feature flag. |
| `scopes` | JSON | no | The [feature flag specs](../user/project/operations/feature_flags.md#define-environment-specs) of the feature flag. |
-| `scopes:environment_scope` | string | no | The [environment spec](../ci/environments.md#scoping-environments-with-specs). |
+| `scopes:environment_scope` | string | no | The [environment spec](../ci/environments/index.md#scoping-environments-with-specs). |
| `scopes:active` | boolean | no | Whether the spec is active. |
| `scopes:strategies` | JSON | no | The [strategies](../user/project/operations/feature_flags.md#feature-flag-strategies) of the feature flag spec. |
diff --git a/doc/api/features.md b/doc/api/features.md
index a43f2daa93f..03f1663b987 100644
--- a/doc/api/features.md
+++ b/doc/api/features.md
@@ -1,5 +1,7 @@
# Features flags API
+This API is for managing Flipper-based [feature flags used in development of GitLab](../development/feature_flags/index.md).
+
All methods require administrator authorization.
Notice that currently the API only supports boolean and percentage-of-time gate
@@ -32,6 +34,16 @@ Example response:
]
},
{
+ "name": "my_user_feature",
+ "state": "on",
+ "gates": [
+ {
+ "key": "percentage_of_actors",
+ "value": 34
+ }
+ ]
+ },
+ {
"name": "new_library",
"state": "on",
"gates": [
@@ -58,6 +70,7 @@ POST /features/:name
| --------- | ---- | -------- | ----------- |
| `name` | string | yes | Name of the feature to create or update |
| `value` | integer/string | yes | `true` or `false` to enable/disable, or an integer for percentage of time |
+| `key` | string | no | `percentage_of_actors` or `percentage_of_time` (default) |
| `feature_group` | string | no | A Feature group name |
| `user` | string | no | A GitLab username |
| `group` | string | no | A GitLab group's path, for example `gitlab-org` |
@@ -89,6 +102,37 @@ Example response:
}
```
+### Set percentage of actors rollout
+
+Rollout to percentage of actors.
+
+```plaintext
+POST https://gitlab.example.com/api/v4/features/my_user_feature?private_token=<your_access_token>
+Content-Type: application/x-www-form-urlencoded
+value=42&key=percentage_of_actors&
+```
+
+Example response:
+
+```json
+{
+ "name": "my_user_feature",
+ "state": "conditional",
+ "gates": [
+ {
+ "key": "boolean",
+ "value": false
+ },
+ {
+ "key": "percentage_of_actors",
+ "value": 42
+ }
+ ]
+}
+```
+
+Rolls out the `my_user_feature` to `42%` of actors.
+
## Delete a feature
Removes a feature gate. Response is equal when the gate exists, or doesn't.
diff --git a/doc/api/freeze_periods.md b/doc/api/freeze_periods.md
new file mode 100644
index 00000000000..ee5e657c945
--- /dev/null
+++ b/doc/api/freeze_periods.md
@@ -0,0 +1,168 @@
+# Freeze Periods API
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29382) in GitLab 13.0.
+
+You can use the Freeze Periods API to manipulate GitLab's [Freeze Period](../user/project/releases/index.md#set-a-deploy-freeze) entries.
+
+## Permissions and security
+
+Only users with Maintainer [permissions](../user/permissions.md) can
+interact with the Freeze Period API endpoints.
+
+## List Freeze Periods
+
+Paginated list of Freeze Periods, sorted by `created_at` in ascending order.
+
+```plaintext
+GET /projects/:id/freeze_periods
+```
+
+| Attribute | Type | Required | Description |
+| ------------- | -------------- | -------- | ----------------------------------------------------------------------------------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+
+Example request:
+
+```shell
+curl --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" "https://gitlab.example.com/api/v4/projects/19/freeze_periods"
+```
+
+Example response:
+
+```json
+[
+ {
+ "id":1,
+ "freeze_start":"0 23 * * 5",
+ "freeze_end":"0 8 * * 1",
+ "cron_timezone":"UTC",
+ "created_at":"2020-05-15T17:03:35.702Z",
+ "updated_at":"2020-05-15T17:06:41.566Z"
+ }
+]
+```
+
+## Get a Freeze Period by a `freeze_period_id`
+
+Get a Freeze Period for the given `freeze_period_id`.
+
+```plaintext
+GET /projects/:id/freeze_periods/:freeze_period_id
+```
+
+| Attribute | Type | Required | Description |
+| ------------- | -------------- | -------- | ----------------------------------------------------------------------------------- |
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `freeze_period_id` | string | yes | The database ID of the Freeze Period. |
+
+Example request:
+
+```shell
+curl --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" "https://gitlab.example.com/api/v4/projects/19/freeze_periods/1"
+```
+
+Example response:
+
+```json
+{
+ "id":1,
+ "freeze_start":"0 23 * * 5",
+ "freeze_end":"0 8 * * 1",
+ "cron_timezone":"UTC",
+ "created_at":"2020-05-15T17:03:35.702Z",
+ "updated_at":"2020-05-15T17:06:41.566Z"
+}
+```
+
+## Create a Freeze Period
+
+Create a Freeze Period.
+
+```plaintext
+POST /projects/:id/freeze_periods
+```
+
+| Attribute | Type | Required | Description |
+| -------------------| --------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `freeze_start` | string | yes | Start of the Freeze Period in [cron](https://crontab.guru/) format. |
+| `freeze_end` | string | yes | End of the Freeze Period in [cron](https://crontab.guru/) format. |
+| `cron_timezone` | string | no | The timezone for the cron fields, defaults to UTC if not provided. |
+
+Example request:
+
+```shell
+curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" \
+ --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
+```
+
+Example response:
+
+```json
+{
+ "id":1,
+ "freeze_start":"0 23 * * 5",
+ "freeze_end":"0 7 * * 1",
+ "cron_timezone":"UTC",
+ "created_at":"2020-05-15T17:03:35.702Z",
+ "updated_at":"2020-05-15T17:03:35.702Z"
+}
+```
+
+## Update a Freeze Period
+
+Update a Freeze Period for the given `freeze_period_id`.
+
+```plaintext
+PUT /projects/:id/freeze_periods/:tag_name
+```
+
+| Attribute | Type | Required | Description |
+| ------------- | --------------- | -------- | ----------------------------------------------------------------------------------------------------------- |
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `freeze_period_id` | integer or string | yes | The database ID of the Freeze Period. |
+| `freeze_start` | string | no | Start of the Freeze Period in [cron](https://crontab.guru/) format. |
+| `freeze_end` | string | no | End of the Freeze Period in [cron](https://crontab.guru/) format. |
+| `cron_timezone` | string | no | The timezone for the cron fields. |
+
+Example request:
+
+```shell
+curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" \
+ --data '{ "freeze_end": "0 8 * * 1" }' \
+ --request PUT https://gitlab.example.com/api/v4/projects/19/freeze_periods/1
+```
+
+Example response:
+
+```json
+{
+ "id":1,
+ "freeze_start":"0 23 * * 5",
+ "freeze_end":"0 8 * * 1",
+ "cron_timezone":"UTC",
+ "created_at":"2020-05-15T17:03:35.702Z",
+ "updated_at":"2020-05-15T17:06:41.566Z"
+}
+```
+
+## Delete a Freeze Period
+
+Delete a Freeze Period for the given `freeze_period_id`.
+
+```plaintext
+DELETE /projects/:id/freeze_periods/:freeze_period_id
+```
+
+| Attribute | Type | Required | Description |
+| ------------- | -------------- | -------- | ----------------------------------------------------------------------------------- |
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding). |
+| `freeze_period_id` | string | yes | The database ID of the Freeze Period. |
+
+Example request:
+
+```shell
+curl --request DELETE --header "PRIVATE-TOKEN: gVWYVHDRzXiRpN1rUC8T" "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 baaa2e2f09f..820f78853d0 100644
--- a/doc/api/geo_nodes.md
+++ b/doc/api/geo_nodes.md
@@ -364,6 +364,9 @@ Example response:
"last_successful_status_check_timestamp": 1510125024,
"version": "10.3.0",
"revision": "33d33a096a",
+ "package_files_count": 10,
+ "package_files_checksummed_count": 10,
+ "package_files_checksum_failed_count": 0
},
{
"geo_node_id": 2,
@@ -431,7 +434,10 @@ Example response:
"cursor_last_event_timestamp": 1509681166,
"last_successful_status_check_timestamp": 1510125024,
"version": "10.3.0",
- "revision": "33d33a096a"
+ "revision": "33d33a096a",
+ "package_files_count": 10,
+ "package_files_checksummed_count": 10,
+ "package_files_checksum_failed_count": 0
}
]
```
diff --git a/doc/api/graphql/getting_started.md b/doc/api/graphql/getting_started.md
index 07147340ab4..901bf85ff40 100644
--- a/doc/api/graphql/getting_started.md
+++ b/doc/api/graphql/getting_started.md
@@ -2,7 +2,7 @@
This guide demonstrates basic usage of GitLab's GraphQL API.
-See the [GraphQL API StyleGuide](../../development/api_graphql_styleguide.md) for implementation details
+See the [GraphQL API style guide](../../development/api_graphql_styleguide.md) for implementation details
aimed at developers who wish to work on developing the API itself.
## Running examples
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql
index 9cdc83d584c..91f1413943c 100644
--- a/doc/api/graphql/reference/gitlab_schema.graphql
+++ b/doc/api/graphql/reference/gitlab_schema.graphql
@@ -33,12 +33,47 @@ type AddAwardEmojiPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
}
"""
+Autogenerated input type of AddProjectToSecurityDashboard
+"""
+input AddProjectToSecurityDashboardInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ ID of the project to be added to Instance Security Dashboard
+ """
+ id: ID!
+}
+
+"""
+Autogenerated return type of AddProjectToSecurityDashboard
+"""
+type AddProjectToSecurityDashboardPayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+
+ """
+ Project that was added to the Instance Security Dashboard
+ """
+ project: Project
+}
+
+"""
Autogenerated input type of AdminSidekiqQueuesDeleteJobs
"""
input AdminSidekiqQueuesDeleteJobsInput {
@@ -93,7 +128,7 @@ type AdminSidekiqQueuesDeleteJobsPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -104,6 +139,311 @@ type AdminSidekiqQueuesDeleteJobsPayload {
}
"""
+Describes an alert from the project's Alert Management
+"""
+type AlertManagementAlert {
+ """
+ Timestamp the alert was created
+ """
+ createdAt: Time
+
+ """
+ Description of the alert
+ """
+ description: String
+
+ """
+ Alert details
+ """
+ details: JSON
+
+ """
+ Timestamp the alert ended
+ """
+ endedAt: Time
+
+ """
+ Number of events of this alert
+ """
+ eventCount: Int
+
+ """
+ List of hosts the alert came from
+ """
+ hosts: [String!]
+
+ """
+ Internal ID of the alert
+ """
+ iid: ID!
+
+ """
+ Internal ID of the GitLab issue attached to the alert
+ """
+ issueIid: ID
+
+ """
+ Monitoring tool the alert came from
+ """
+ monitoringTool: String
+
+ """
+ Service the alert came from
+ """
+ service: String
+
+ """
+ Severity of the alert
+ """
+ severity: AlertManagementSeverity
+
+ """
+ Timestamp the alert was raised
+ """
+ startedAt: Time
+
+ """
+ Status of the alert
+ """
+ status: AlertManagementStatus
+
+ """
+ Title of the alert
+ """
+ title: String
+
+ """
+ Timestamp the alert was last updated
+ """
+ updatedAt: Time
+}
+
+"""
+The connection type for AlertManagementAlert.
+"""
+type AlertManagementAlertConnection {
+ """
+ A list of edges.
+ """
+ edges: [AlertManagementAlertEdge]
+
+ """
+ A list of nodes.
+ """
+ nodes: [AlertManagementAlert]
+
+ """
+ Information to aid in pagination.
+ """
+ pageInfo: PageInfo!
+}
+
+"""
+An edge in a connection.
+"""
+type AlertManagementAlertEdge {
+ """
+ A cursor for use in pagination.
+ """
+ cursor: String!
+
+ """
+ The item at the end of the edge.
+ """
+ node: AlertManagementAlert
+}
+
+"""
+Values for sorting alerts
+"""
+enum AlertManagementAlertSort {
+ """
+ Created time by ascending order
+ """
+ CREATED_TIME_ASC
+
+ """
+ Created time by descending order
+ """
+ CREATED_TIME_DESC
+
+ """
+ End time by ascending order
+ """
+ END_TIME_ASC
+
+ """
+ End time by descending order
+ """
+ END_TIME_DESC
+
+ """
+ Events count by ascending order
+ """
+ EVENTS_COUNT_ASC
+
+ """
+ Events count by descending order
+ """
+ EVENTS_COUNT_DESC
+
+ """
+ Severity by ascending order
+ """
+ SEVERITY_ASC
+
+ """
+ Severity by descending order
+ """
+ SEVERITY_DESC
+
+ """
+ Start time by ascending order
+ """
+ START_TIME_ASC
+
+ """
+ Start time by descending order
+ """
+ START_TIME_DESC
+
+ """
+ Status by ascending order
+ """
+ STATUS_ASC
+
+ """
+ Status by descending order
+ """
+ STATUS_DESC
+
+ """
+ Created time by ascending order
+ """
+ UPDATED_TIME_ASC
+
+ """
+ Created time by descending order
+ """
+ UPDATED_TIME_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
+}
+
+"""
+Represents total number of alerts for the represented categories
+"""
+type AlertManagementAlertStatusCountsType {
+ """
+ Number of alerts with status ACKNOWLEDGED for the project
+ """
+ acknowledged: Int
+
+ """
+ Total number of alerts for the project
+ """
+ all: Int
+
+ """
+ Number of alerts with status IGNORED for the project
+ """
+ ignored: Int
+
+ """
+ Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project
+ """
+ open: Int
+
+ """
+ Number of alerts with status RESOLVED for the project
+ """
+ resolved: Int
+
+ """
+ Number of alerts with status TRIGGERED for the project
+ """
+ triggered: Int
+}
+
+"""
+Alert severity values
+"""
+enum AlertManagementSeverity {
+ """
+ Critical severity
+ """
+ CRITICAL
+
+ """
+ High severity
+ """
+ HIGH
+
+ """
+ Info severity
+ """
+ INFO
+
+ """
+ Low severity
+ """
+ LOW
+
+ """
+ Medium severity
+ """
+ MEDIUM
+
+ """
+ Unknown severity
+ """
+ UNKNOWN
+}
+
+"""
+Alert status values
+"""
+enum AlertManagementStatus {
+ """
+ Acknowledged status
+ """
+ ACKNOWLEDGED
+
+ """
+ Ignored status
+ """
+ IGNORED
+
+ """
+ Resolved status
+ """
+ RESOLVED
+
+ """
+ Triggered status
+ """
+ TRIGGERED
+}
+
+"""
An emoji awarded by a user.
"""
type AwardEmoji {
@@ -246,6 +586,31 @@ type Board {
id: ID!
"""
+ Lists of the project board
+ """
+ lists(
+ """
+ Returns the elements in the list that come after the specified cursor.
+ """
+ after: String
+
+ """
+ Returns the elements in the list that come before the specified cursor.
+ """
+ before: String
+
+ """
+ Returns the first _n_ elements from the list.
+ """
+ first: Int
+
+ """
+ Returns the last _n_ elements from the list.
+ """
+ last: Int
+ ): BoardListConnection
+
+ """
Name of the board
"""
name: String
@@ -291,6 +656,163 @@ type BoardEdge {
node: Board
}
+"""
+Represents a list for an issue board
+"""
+type BoardList {
+ """
+ Assignee in the list
+ """
+ assignee: User
+
+ """
+ Indicates if list is collapsed for this user
+ """
+ collapsed: Boolean
+
+ """
+ ID (global ID) of the list
+ """
+ id: ID!
+
+ """
+ Label of the list
+ """
+ label: Label
+
+ """
+ The current limit metric for the list
+ """
+ limitMetric: ListLimitMetric
+
+ """
+ Type of the list
+ """
+ listType: String!
+
+ """
+ Maximum number of issues in the list
+ """
+ maxIssueCount: Int
+
+ """
+ Maximum weight of issues in the list
+ """
+ maxIssueWeight: Int
+
+ """
+ Milestone of the list
+ """
+ milestone: Milestone
+
+ """
+ Position of list within the board
+ """
+ position: Int
+
+ """
+ Title of the list
+ """
+ title: String!
+}
+
+"""
+The connection type for BoardList.
+"""
+type BoardListConnection {
+ """
+ A list of edges.
+ """
+ edges: [BoardListEdge]
+
+ """
+ A list of nodes.
+ """
+ nodes: [BoardList]
+
+ """
+ Information to aid in pagination.
+ """
+ pageInfo: PageInfo!
+}
+
+"""
+An edge in a connection.
+"""
+type BoardListEdge {
+ """
+ A cursor for use in pagination.
+ """
+ cursor: String!
+
+ """
+ The item at the end of the edge.
+ """
+ node: BoardList
+}
+
+"""
+Autogenerated input type of BoardListUpdateLimitMetrics
+"""
+input BoardListUpdateLimitMetricsInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The new limit metric type for the list.
+ """
+ limitMetric: ListLimitMetric
+
+ """
+ The global ID of the list.
+ """
+ listId: ID!
+
+ """
+ The new maximum issue count limit.
+ """
+ maxIssueCount: Int
+
+ """
+ The new maximum issue weight limit.
+ """
+ maxIssueWeight: Int
+}
+
+"""
+Autogenerated return type of BoardListUpdateLimitMetrics
+"""
+type BoardListUpdateLimitMetricsPayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+
+ """
+ The updated list
+ """
+ list: BoardList
+}
+
+type Branch {
+ """
+ Commit for the branch
+ """
+ commit: Commit
+
+ """
+ Name of the branch
+ """
+ name: String!
+}
+
type Commit {
"""
Author of the commit
@@ -403,12 +925,167 @@ type Commit {
title: String
"""
+ The GitLab Flavored Markdown rendering of `title`
+ """
+ titleHtml: String
+
+ """
Web URL of the commit
"""
webUrl: String!
}
"""
+Autogenerated input type of CreateAlertIssue
+"""
+input CreateAlertIssueInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The iid of the alert to mutate
+ """
+ iid: String!
+
+ """
+ The project the alert to mutate is in
+ """
+ projectPath: ID!
+}
+
+"""
+Autogenerated return type of CreateAlertIssue
+"""
+type CreateAlertIssuePayload {
+ """
+ The alert after mutation
+ """
+ alert: AlertManagementAlert
+
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+
+ """
+ The issue created after mutation
+ """
+ issue: Issue
+}
+
+"""
+Autogenerated input type of CreateAnnotation
+"""
+input CreateAnnotationInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The global id of the cluster to add an annotation to
+ """
+ clusterId: ID
+
+ """
+ The path to a file defining the dashboard on which the annotation should be added
+ """
+ dashboardPath: String!
+
+ """
+ The description of the annotation
+ """
+ description: String!
+
+ """
+ Timestamp indicating ending moment to which the annotation relates
+ """
+ endingAt: Time
+
+ """
+ The global id of the environment to add an annotation to
+ """
+ environmentId: ID
+
+ """
+ Timestamp indicating starting moment to which the annotation relates
+ """
+ startingAt: Time!
+}
+
+"""
+Autogenerated return type of CreateAnnotation
+"""
+type CreateAnnotationPayload {
+ """
+ The created annotation
+ """
+ annotation: MetricsDashboardAnnotation
+
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+}
+
+"""
+Autogenerated input type of CreateBranch
+"""
+input CreateBranchInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Name of the branch
+ """
+ name: String!
+
+ """
+ Project full path the branch is associated with
+ """
+ projectPath: ID!
+
+ """
+ Branch name or commit SHA to create branch from
+ """
+ ref: String!
+}
+
+"""
+Autogenerated return type of CreateBranch
+"""
+type CreateBranchPayload {
+ """
+ Branch after mutation
+ """
+ branch: Branch
+
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+}
+
+"""
Autogenerated input type of CreateDiffNote
"""
input CreateDiffNoteInput {
@@ -443,7 +1120,7 @@ type CreateDiffNotePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -528,7 +1205,7 @@ type CreateEpicPayload {
epic: Epic
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
}
@@ -568,7 +1245,7 @@ type CreateImageDiffNotePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -579,6 +1256,61 @@ type CreateImageDiffNotePayload {
}
"""
+Autogenerated input type of CreateIteration
+"""
+input CreateIterationInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The description of the iteration
+ """
+ description: String
+
+ """
+ The end date of the iteration
+ """
+ dueDate: String
+
+ """
+ The target group for the iteration
+ """
+ groupPath: ID!
+
+ """
+ The start date of the iteration
+ """
+ startDate: String
+
+ """
+ The title of the iteration
+ """
+ title: String
+}
+
+"""
+Autogenerated return type of CreateIteration
+"""
+type CreateIterationPayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+
+ """
+ The created iteration
+ """
+ iteration: Iteration
+}
+
+"""
Autogenerated input type of CreateNote
"""
input CreateNoteInput {
@@ -613,7 +1345,7 @@ type CreateNotePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -653,7 +1385,7 @@ type CreateRequirementPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -698,6 +1430,11 @@ input CreateSnippetInput {
title: String!
"""
+ The paths to files uploaded in the snippet description
+ """
+ uploadedFiles: [String!]
+
+ """
The visibility level of the snippet
"""
visibilityLevel: VisibilityLevelsEnum!
@@ -713,7 +1450,7 @@ type CreateSnippetPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -1258,7 +1995,7 @@ type DesignManagementDeletePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -1308,7 +2045,7 @@ type DesignManagementUploadPayload {
designs: [Design!]!
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -1498,7 +2235,7 @@ type DestroyNotePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -1533,7 +2270,7 @@ type DestroySnippetPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -1862,7 +2599,7 @@ type DismissVulnerabilityPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -2415,7 +3152,7 @@ type EpicAddIssuePayload {
epicIssue: EpicIssue
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
}
@@ -2650,6 +3387,11 @@ type EpicIssue implements Noteable {
iid: ID!
"""
+ Iteration of the issue
+ """
+ iteration: Iteration
+
+ """
Labels of the issue
"""
labels(
@@ -2940,7 +3682,7 @@ type EpicSetSubscriptionPayload {
epic: Epic
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
}
@@ -3001,7 +3743,7 @@ input EpicTreeNodeFieldsInputType {
"""
The id of the epic_issue or issue that the actual epic or issue is switched with
"""
- adjacentReferenceId: ID!
+ adjacentReferenceId: ID
"""
The id of the epic_issue or epic that is being moved
@@ -3016,7 +3758,7 @@ input EpicTreeNodeFieldsInputType {
"""
The type of the switch, after or before allowed
"""
- relativePosition: MoveType!
+ relativePosition: MoveType
}
"""
@@ -3049,7 +3791,7 @@ type EpicTreeReorderPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
}
@@ -3091,6 +3833,36 @@ type GeoNode {
name: String
"""
+ Package file registries of the GeoNode. Available only when feature flag `geo_self_service_framework` is enabled
+ """
+ packageFileRegistries(
+ """
+ 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
+ ): PackageFileRegistryConnection
+
+ """
Indicates whether this Geo node is the primary
"""
primary: Boolean
@@ -3163,7 +3935,7 @@ type GrafanaIntegration {
enabled: Boolean!
"""
- Url for the Grafana host for the Grafana integration
+ URL for the Grafana host for the Grafana integration
"""
grafanaUrl: String!
@@ -3509,6 +4281,53 @@ type Group {
): IssueConnection
"""
+ Find iterations
+ """
+ iterations(
+ """
+ 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
+
+ """
+ List items within a time frame where items.end_date is between startDate and
+ endDate parameters (startDate parameter must be present)
+ """
+ endDate: Time
+
+ """
+ Returns the first _n_ elements from the list.
+ """
+ first: Int
+
+ """
+ Returns the last _n_ elements from the list.
+ """
+ last: Int
+
+ """
+ List items within a time frame where items.start_date is between startDate
+ and endDate parameters (endDate parameter must be present)
+ """
+ startDate: Time
+
+ """
+ Filter iterations by state
+ """
+ state: IterationState
+
+ """
+ Fuzzy search by title
+ """
+ title: String
+ ): IterationConnection
+
+ """
Indicates if Large File Storage (LFS) is enabled for namespace
"""
lfsEnabled: Boolean
@@ -3544,6 +4363,11 @@ type Group {
first: Int
"""
+ Return also milestones in all subgroups and subprojects
+ """
+ includeDescendants: Boolean
+
+ """
Returns the last _n_ elements from the list.
"""
last: Int
@@ -3600,6 +4424,11 @@ type Group {
first: Int
"""
+ Returns only the projects which have vulnerabilities
+ """
+ hasVulnerabilities: Boolean = false
+
+ """
Include also subgroup projects
"""
includeSubgroups: Boolean = false
@@ -3650,9 +4479,14 @@ type Group {
before: String
"""
- List time logs within a time range where the logged date is before end_date parameter.
+ List time logs within a date range where the logged date is equal to or before endDate
"""
- endDate: Time!
+ endDate: Time
+
+ """
+ List time-logs within a time range where the logged time is equal to or before endTime
+ """
+ endTime: Time
"""
Returns the first _n_ elements from the list.
@@ -3665,9 +4499,14 @@ type Group {
last: Int
"""
- List time logs within a time range where the logged date is after start_date parameter.
+ List time logs within a date range where the logged date is equal to or after startDate
"""
- startDate: Time!
+ startDate: Time
+
+ """
+ List time-logs within a time range where the logged time is equal to or after startTime
+ """
+ startTime: Time
): TimelogConnection!
"""
@@ -3686,8 +4525,7 @@ type Group {
visibility: String
"""
- Vulnerabilities reported on the projects in the group and its subgroups.
- Available only when feature flag `first_class_vulnerabilities` is enabled
+ Vulnerabilities reported on the projects in the group and its subgroups
"""
vulnerabilities(
"""
@@ -3732,6 +4570,41 @@ type Group {
): VulnerabilityConnection
"""
+ Number of vulnerabilities per severity level, per day, for the projects in the group and its subgroups
+ """
+ vulnerabilitiesCountByDayAndSeverity(
+ """
+ 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!
+ ): VulnerabilitiesCountByDayAndSeverityConnection
+
+ """
Web URL of the group
"""
webUrl: String!
@@ -3754,6 +4627,38 @@ enum HealthStatus {
}
"""
+An ISO 8601-encoded date
+"""
+scalar ISO8601Date
+
+type InstanceSecurityDashboard {
+ """
+ Projects selected in Instance Security Dashboard
+ """
+ projects(
+ """
+ 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
+ ): ProjectConnection!
+}
+
+"""
State of a GitLab issue or merge request
"""
enum IssuableState {
@@ -3884,6 +4789,11 @@ type Issue implements Noteable {
iid: ID!
"""
+ Iteration of the issue
+ """
+ iteration: Iteration
+
+ """
Labels of the issue
"""
labels(
@@ -4164,7 +5074,7 @@ type IssueSetConfidentialPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -4209,7 +5119,52 @@ type IssueSetDueDatePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+
+ """
+ The issue after mutation
+ """
+ issue: Issue
+}
+
+"""
+Autogenerated input type of IssueSetIteration
+"""
+input IssueSetIterationInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The iid of the issue to mutate
+ """
+ iid: String!
+
+ """
+ The iteration to assign to the issue.
+ """
+ iterationId: ID
+
+ """
+ The project the issue to mutate is in
+ """
+ projectPath: ID!
+}
+
+"""
+Autogenerated return type of IssueSetIteration
+"""
+type IssueSetIterationPayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -4254,7 +5209,7 @@ type IssueSetWeightPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -4279,6 +5234,36 @@ enum IssueSort {
DUE_DATE_DESC
"""
+ Label priority by ascending order
+ """
+ LABEL_PRIORITY_ASC
+
+ """
+ Label priority by descending order
+ """
+ LABEL_PRIORITY_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
+
+ """
Relative position by ascending order
"""
RELATIVE_POSITION_ASC
@@ -4324,18 +5309,124 @@ enum IssueState {
}
"""
+Represents an iteration object.
+"""
+type Iteration {
+ """
+ Timestamp of iteration creation
+ """
+ createdAt: Time!
+
+ """
+ Description of the iteration
+ """
+ description: String
+
+ """
+ Timestamp of the iteration due date
+ """
+ dueDate: Time
+
+ """
+ ID of the iteration
+ """
+ id: ID!
+
+ """
+ Timestamp of the iteration start date
+ """
+ startDate: Time
+
+ """
+ State of the iteration
+ """
+ state: IterationState!
+
+ """
+ Title of the iteration
+ """
+ title: String!
+
+ """
+ Timestamp of last iteration update
+ """
+ updatedAt: Time!
+
+ """
+ Web path of the iteration
+ """
+ webPath: String!
+
+ """
+ Web URL of the iteration
+ """
+ webUrl: String!
+}
+
+"""
+The connection type for Iteration.
+"""
+type IterationConnection {
+ """
+ A list of edges.
+ """
+ edges: [IterationEdge]
+
+ """
+ A list of nodes.
+ """
+ nodes: [Iteration]
+
+ """
+ Information to aid in pagination.
+ """
+ pageInfo: PageInfo!
+}
+
+"""
+An edge in a connection.
+"""
+type IterationEdge {
+ """
+ A cursor for use in pagination.
+ """
+ cursor: String!
+
+ """
+ The item at the end of the edge.
+ """
+ node: Iteration
+}
+
+"""
+State of a GitLab iteration
+"""
+enum IterationState {
+ all
+ closed
+ opened
+ started
+ upcoming
+}
+
+"""
Represents untyped JSON
"""
scalar JSON
type JiraImport {
"""
+ Timestamp of when the Jira import was created
+ """
+ createdAt: Time
+
+ """
Project key for the imported Jira project
"""
jiraProjectKey: String!
"""
- Timestamp of when the Jira import was created
+ Timestamp of when the Jira import was scheduled
"""
scheduledAt: Time
@@ -4415,7 +5506,7 @@ type JiraImportStartPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -4505,6 +5596,15 @@ type LabelEdge {
}
"""
+List limit metric setting
+"""
+enum ListLimitMetric {
+ all_metrics
+ issue_count
+ issue_weights
+}
+
+"""
Autogenerated input type of MarkAsSpamSnippet
"""
input MarkAsSpamSnippetInput {
@@ -4529,7 +5629,7 @@ type MarkAsSpamSnippetPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -5076,7 +6176,7 @@ type MergeRequestSetAssigneesPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -5126,7 +6226,7 @@ type MergeRequestSetLabelsPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -5171,7 +6271,7 @@ type MergeRequestSetLockedPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -5216,7 +6316,7 @@ type MergeRequestSetMilestonePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -5261,7 +6361,7 @@ type MergeRequestSetSubscriptionPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -5306,7 +6406,7 @@ type MergeRequestSetWipPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -5340,7 +6440,7 @@ type Metadata {
type MetricsDashboard {
"""
- Annotations added to the dashboard. Will always return `null` if `metrics_dashboard_annotations` feature flag is disabled
+ Annotations added to the dashboard
"""
annotations(
"""
@@ -5389,7 +6489,7 @@ type MetricsDashboardAnnotation {
"""
Timestamp marking end of annotated time span
"""
- endingAt: String
+ endingAt: Time
"""
ID of the annotation
@@ -5404,7 +6504,7 @@ type MetricsDashboardAnnotation {
"""
Timestamp marking start of annotated time span
"""
- startingAt: String
+ startingAt: Time
}
"""
@@ -5549,10 +6649,16 @@ enum MoveType {
type Mutation {
addAwardEmoji(input: AddAwardEmojiInput!): AddAwardEmojiPayload
+ addProjectToSecurityDashboard(input: AddProjectToSecurityDashboardInput!): AddProjectToSecurityDashboardPayload
adminSidekiqQueuesDeleteJobs(input: AdminSidekiqQueuesDeleteJobsInput!): AdminSidekiqQueuesDeleteJobsPayload
+ boardListUpdateLimitMetrics(input: BoardListUpdateLimitMetricsInput!): BoardListUpdateLimitMetricsPayload
+ createAlertIssue(input: CreateAlertIssueInput!): CreateAlertIssuePayload
+ createAnnotation(input: CreateAnnotationInput!): CreateAnnotationPayload
+ createBranch(input: CreateBranchInput!): CreateBranchPayload
createDiffNote(input: CreateDiffNoteInput!): CreateDiffNotePayload
createEpic(input: CreateEpicInput!): CreateEpicPayload
createImageDiffNote(input: CreateImageDiffNoteInput!): CreateImageDiffNotePayload
+ createIteration(input: CreateIterationInput!): CreateIterationPayload
createNote(input: CreateNoteInput!): CreateNotePayload
createRequirement(input: CreateRequirementInput!): CreateRequirementPayload
createSnippet(input: CreateSnippetInput!): CreateSnippetPayload
@@ -5566,6 +6672,7 @@ type Mutation {
epicTreeReorder(input: EpicTreeReorderInput!): EpicTreeReorderPayload
issueSetConfidential(input: IssueSetConfidentialInput!): IssueSetConfidentialPayload
issueSetDueDate(input: IssueSetDueDateInput!): IssueSetDueDatePayload
+ issueSetIteration(input: IssueSetIterationInput!): IssueSetIterationPayload
issueSetWeight(input: IssueSetWeightInput!): IssueSetWeightPayload
jiraImportStart(input: JiraImportStartInput!): JiraImportStartPayload
markAsSpamSnippet(input: MarkAsSpamSnippetInput!): MarkAsSpamSnippetPayload
@@ -5576,11 +6683,13 @@ type Mutation {
mergeRequestSetSubscription(input: MergeRequestSetSubscriptionInput!): MergeRequestSetSubscriptionPayload
mergeRequestSetWip(input: MergeRequestSetWipInput!): MergeRequestSetWipPayload
removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload
+ removeProjectFromSecurityDashboard(input: RemoveProjectFromSecurityDashboardInput!): RemoveProjectFromSecurityDashboardPayload
todoMarkDone(input: TodoMarkDoneInput!): TodoMarkDonePayload
todoRestore(input: TodoRestoreInput!): TodoRestorePayload
todoRestoreMany(input: TodoRestoreManyInput!): TodoRestoreManyPayload
todosMarkAllDone(input: TodosMarkAllDoneInput!): TodosMarkAllDonePayload
toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload
+ updateAlertStatus(input: UpdateAlertStatusInput!): UpdateAlertStatusPayload
updateEpic(input: UpdateEpicInput!): UpdateEpicPayload
"""
@@ -5681,6 +6790,11 @@ type Namespace {
first: Int
"""
+ Returns only the projects which have vulnerabilities
+ """
+ hasVulnerabilities: Boolean = false
+
+ """
Include also subgroup projects
"""
includeSubgroups: Boolean = false
@@ -5934,6 +7048,188 @@ interface Noteable {
}
"""
+Represents a package
+"""
+type Package {
+ """
+ The created date
+ """
+ createdAt: Time!
+
+ """
+ The ID of the package
+ """
+ id: ID!
+
+ """
+ The name of the package
+ """
+ name: String!
+
+ """
+ The type of the package
+ """
+ packageType: PackageTypeEnum!
+
+ """
+ The update date
+ """
+ updatedAt: Time!
+
+ """
+ The version of the package
+ """
+ version: String
+}
+
+"""
+The connection type for Package.
+"""
+type PackageConnection {
+ """
+ A list of edges.
+ """
+ edges: [PackageEdge]
+
+ """
+ A list of nodes.
+ """
+ nodes: [Package]
+
+ """
+ Information to aid in pagination.
+ """
+ pageInfo: PageInfo!
+}
+
+"""
+An edge in a connection.
+"""
+type PackageEdge {
+ """
+ A cursor for use in pagination.
+ """
+ cursor: String!
+
+ """
+ The item at the end of the edge.
+ """
+ node: Package
+}
+
+"""
+Represents the sync and verification state of a package file
+"""
+type PackageFileRegistry {
+ """
+ Timestamp when the PackageFileRegistry was created
+ """
+ createdAt: Time
+
+ """
+ ID of the PackageFileRegistry
+ """
+ id: ID!
+
+ """
+ Error message during sync of the PackageFileRegistry
+ """
+ lastSyncFailure: String
+
+ """
+ Timestamp of the most recent successful sync of the PackageFileRegistry
+ """
+ lastSyncedAt: Time
+
+ """
+ ID of the PackageFile
+ """
+ packageFileId: ID!
+
+ """
+ Timestamp after which the PackageFileRegistry should be resynced
+ """
+ retryAt: Time
+
+ """
+ Number of consecutive failed sync attempts of the PackageFileRegistry
+ """
+ retryCount: Int
+
+ """
+ Sync state of the PackageFileRegistry
+ """
+ state: RegistryState
+}
+
+"""
+The connection type for PackageFileRegistry.
+"""
+type PackageFileRegistryConnection {
+ """
+ A list of edges.
+ """
+ edges: [PackageFileRegistryEdge]
+
+ """
+ A list of nodes.
+ """
+ nodes: [PackageFileRegistry]
+
+ """
+ Information to aid in pagination.
+ """
+ pageInfo: PageInfo!
+}
+
+"""
+An edge in a connection.
+"""
+type PackageFileRegistryEdge {
+ """
+ A cursor for use in pagination.
+ """
+ cursor: String!
+
+ """
+ The item at the end of the edge.
+ """
+ node: PackageFileRegistry
+}
+
+enum PackageTypeEnum {
+ """
+ Packages from the composer package manager
+ """
+ COMPOSER
+
+ """
+ Packages from the conan package manager
+ """
+ CONAN
+
+ """
+ Packages from the maven package manager
+ """
+ MAVEN
+
+ """
+ Packages from the npm package manager
+ """
+ NPM
+
+ """
+ Packages from the nuget package manager
+ """
+ NUGET
+
+ """
+ Packages from the pypi package manager
+ """
+ PYPI
+}
+
+"""
Information about pagination in a connection.
"""
type PageInfo {
@@ -6099,6 +7395,81 @@ enum PipelineStatusEnum {
type Project {
"""
+ A single Alert Management alert of the project
+ """
+ alertManagementAlert(
+ """
+ IID of the alert. For example, "1"
+ """
+ iid: String
+
+ """
+ Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool.
+ """
+ search: String
+
+ """
+ Sort alerts by this criteria
+ """
+ sort: AlertManagementAlertSort
+
+ """
+ Alerts with the specified statues. For example, [TRIGGERED]
+ """
+ statuses: [AlertManagementStatus!]
+ ): AlertManagementAlert
+
+ """
+ Counts of alerts by status for the project
+ """
+ alertManagementAlertStatusCounts: AlertManagementAlertStatusCountsType
+
+ """
+ Alert Management alerts of the project
+ """
+ alertManagementAlerts(
+ """
+ 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
+
+ """
+ IID of the alert. For example, "1"
+ """
+ iid: String
+
+ """
+ Returns the last _n_ elements from the list.
+ """
+ last: Int
+
+ """
+ Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool.
+ """
+ search: String
+
+ """
+ Sort alerts by this criteria
+ """
+ sort: AlertManagementAlertSort
+
+ """
+ Alerts with the specified statues. For example, [TRIGGERED]
+ """
+ statuses: [AlertManagementStatus!]
+ ): AlertManagementAlertConnection
+
+ """
Indicates the archived status of the project
"""
archived: Boolean
@@ -6571,6 +7942,31 @@ type Project {
openIssuesCount: Int
"""
+ Packages of the project
+ """
+ packages(
+ """
+ Returns the elements in the list that come after the specified cursor.
+ """
+ after: String
+
+ """
+ Returns the elements in the list that come before the specified cursor.
+ """
+ before: String
+
+ """
+ Returns the first _n_ elements from the list.
+ """
+ first: Int
+
+ """
+ Returns the last _n_ elements from the list.
+ """
+ last: Int
+ ): PackageConnection
+
+ """
Path of the project
"""
path: String!
@@ -6627,6 +8023,41 @@ type Project {
publicJobs: Boolean
"""
+ A single release of the project. Available only when feature flag `graphql_release_data` is enabled
+ """
+ release(
+ """
+ The name of the tag associated to the release
+ """
+ tagName: String!
+ ): Release
+
+ """
+ Releases of the project. Available only when feature flag `graphql_release_data` is enabled
+ """
+ releases(
+ """
+ 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
+ ): ReleaseConnection
+
+ """
Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project
"""
removeSourceBranchAfterMerge: Boolean
@@ -6857,7 +8288,7 @@ type Project {
visibility: String
"""
- Vulnerabilities reported on the project. Available only when feature flag `first_class_vulnerabilities` is enabled
+ Vulnerabilities reported on the project
"""
vulnerabilities(
"""
@@ -6902,8 +8333,7 @@ type Project {
): VulnerabilityConnection
"""
- Counts for each severity of vulnerability of the project. Available only when
- feature flag `first_class_vulnerabilities` is enabled
+ Counts for each severity of vulnerability of the project
"""
vulnerabilitySeveritiesCount: VulnerabilitySeveritiesCount
@@ -7244,6 +8674,11 @@ type Query {
): Group
"""
+ Fields related to Instance Security Dashboard
+ """
+ instanceSecurityDashboard: InstanceSecurityDashboard
+
+ """
Metadata about GitLab
"""
metadata: Metadata
@@ -7269,6 +8704,41 @@ type Query {
): Project
"""
+ Find projects visible to the current user
+ """
+ projects(
+ """
+ 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
+
+ """
+ Limit projects that the current user is a member of
+ """
+ membership: Boolean
+
+ """
+ Search criteria
+ """
+ search: String
+ ): ProjectConnection
+
+ """
Find Snippets visible to the current user
"""
snippets(
@@ -7367,6 +8837,173 @@ type Query {
"""
state: [VulnerabilityState!]
): VulnerabilityConnection
+
+ """
+ Number of vulnerabilities per severity level, per day, for the projects on the current user's instance security dashboard
+ """
+ vulnerabilitiesCountByDayAndSeverity(
+ """
+ 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!
+ ): VulnerabilitiesCountByDayAndSeverityConnection
+}
+
+"""
+State of a Geo registry.
+"""
+enum RegistryState {
+ """
+ Registry that failed to sync
+ """
+ FAILED
+
+ """
+ Registry waiting to be synced
+ """
+ PENDING
+
+ """
+ Registry currently syncing
+ """
+ STARTED
+
+ """
+ Registry that is synced
+ """
+ SYNCED
+}
+
+type Release {
+ """
+ User that created the release
+ """
+ author: User
+
+ """
+ The commit associated with the release
+ """
+ commit: Commit
+
+ """
+ Timestamp of when the release was created
+ """
+ createdAt: Time
+
+ """
+ Description (also known as "release notes") of the release
+ """
+ description: String
+
+ """
+ The GitLab Flavored Markdown rendering of `description`
+ """
+ descriptionHtml: String
+
+ """
+ Milestones associated to the release
+ """
+ milestones(
+ """
+ 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
+ ): MilestoneConnection
+
+ """
+ Name of the release
+ """
+ name: String
+
+ """
+ Timestamp of when the release was released
+ """
+ releasedAt: Time
+
+ """
+ Name of the tag associated with the release
+ """
+ tagName: String!
+
+ """
+ Relative web path to the tag associated with the release
+ """
+ tagPath: String
+}
+
+"""
+The connection type for Release.
+"""
+type ReleaseConnection {
+ """
+ A list of edges.
+ """
+ edges: [ReleaseEdge]
+
+ """
+ A list of nodes.
+ """
+ nodes: [Release]
+
+ """
+ Information to aid in pagination.
+ """
+ pageInfo: PageInfo!
+}
+
+"""
+An edge in a connection.
+"""
+type ReleaseEdge {
+ """
+ A cursor for use in pagination.
+ """
+ cursor: String!
+
+ """
+ The item at the end of the edge.
+ """
+ node: Release
}
"""
@@ -7404,7 +9041,37 @@ type RemoveAwardEmojiPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+}
+
+"""
+Autogenerated input type of RemoveProjectFromSecurityDashboard
+"""
+input RemoveProjectFromSecurityDashboardInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ ID of the project to remove from the Instance Security Dashboard
+ """
+ id: ID!
+}
+
+"""
+Autogenerated return type of RemoveProjectFromSecurityDashboard
+"""
+type RemoveProjectFromSecurityDashboardPayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
}
@@ -8123,7 +9790,6 @@ enum ServiceType {
HANGOUTS_CHAT_SERVICE
HIPCHAT_SERVICE
IRKER_SERVICE
- JENKINS_DEPRECATED_SERVICE
JENKINS_SERVICE
JIRA_SERVICE
MATTERMOST_SERVICE
@@ -8139,6 +9805,7 @@ enum ServiceType {
SLACK_SLASH_COMMANDS_SERVICE
TEAMCITY_SERVICE
UNIFY_CIRCUIT_SERVICE
+ WEBEX_TEAMS_SERVICE
YOUTRACK_SERVICE
}
@@ -8207,7 +9874,7 @@ type Snippet implements Noteable {
httpUrlToRepo: String
"""
- Id of the snippet
+ ID of the snippet
"""
id: ID!
@@ -8287,6 +9954,11 @@ type SnippetBlob {
binary: Boolean!
"""
+ Blob external storage
+ """
+ externalStorage: String
+
+ """
Blob mode
"""
mode: String
@@ -8312,6 +9984,11 @@ type SnippetBlob {
rawPath: String!
"""
+ Shows whether the blob is rendered as text
+ """
+ renderedAsText: Boolean!
+
+ """
Blob highlighted data
"""
richData: String
@@ -8653,7 +10330,7 @@ type Todo {
group: Group
"""
- Id of the todo
+ ID of the todo
"""
id: ID!
@@ -8743,7 +10420,7 @@ type TodoMarkDonePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -8793,7 +10470,7 @@ type TodoRestoreManyPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -8813,7 +10490,7 @@ type TodoRestorePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -8875,7 +10552,7 @@ type TodosMarkAllDonePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -8920,7 +10597,7 @@ type ToggleAwardEmojiPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -9092,6 +10769,56 @@ enum TypeEnum {
project
}
+"""
+Autogenerated input type of UpdateAlertStatus
+"""
+input UpdateAlertStatusInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The iid of the alert to mutate
+ """
+ iid: String!
+
+ """
+ The project the alert to mutate is in
+ """
+ projectPath: ID!
+
+ """
+ The status to set the alert
+ """
+ status: AlertManagementStatus!
+}
+
+"""
+Autogenerated return type of UpdateAlertStatus
+"""
+type UpdateAlertStatusPayload {
+ """
+ The alert after mutation
+ """
+ alert: AlertManagementAlert
+
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ Errors encountered during execution of the mutation.
+ """
+ errors: [String!]!
+
+ """
+ The issue created after mutation
+ """
+ issue: Issue
+}
+
input UpdateDiffImagePositionInput {
"""
Total height of the image
@@ -9199,7 +10926,7 @@ type UpdateEpicPayload {
epic: Epic
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
}
@@ -9239,7 +10966,7 @@ type UpdateImageDiffNotePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -9304,7 +11031,7 @@ type UpdateIssuePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -9344,7 +11071,7 @@ type UpdateNotePayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -9394,7 +11121,7 @@ type UpdateRequirementPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -9454,7 +11181,7 @@ type UpdateSnippetPayload {
clientMutationId: String
"""
- Reasons why the mutation failed.
+ Errors encountered during execution of the mutation.
"""
errors: [String!]!
@@ -9473,6 +11200,11 @@ type User {
avatarUrl: String
"""
+ ID of the user
+ """
+ id: ID!
+
+ """
Human-readable name of the user
"""
name: String!
@@ -9518,6 +11250,11 @@ type User {
): SnippetConnection
"""
+ State of the issue
+ """
+ state: String!
+
+ """
Todos of the user
"""
todos(
@@ -9643,6 +11380,61 @@ enum VisibilityScopesEnum {
}
"""
+Represents the number of vulnerabilities for a particular severity on a particular day
+"""
+type VulnerabilitiesCountByDayAndSeverity {
+ """
+ Number of vulnerabilities
+ """
+ count: Int
+
+ """
+ Date for the count
+ """
+ day: ISO8601Date
+
+ """
+ Severity of the counted vulnerabilities
+ """
+ severity: VulnerabilitySeverity
+}
+
+"""
+The connection type for VulnerabilitiesCountByDayAndSeverity.
+"""
+type VulnerabilitiesCountByDayAndSeverityConnection {
+ """
+ A list of edges.
+ """
+ edges: [VulnerabilitiesCountByDayAndSeverityEdge]
+
+ """
+ A list of nodes.
+ """
+ nodes: [VulnerabilitiesCountByDayAndSeverity]
+
+ """
+ Information to aid in pagination.
+ """
+ pageInfo: PageInfo!
+}
+
+"""
+An edge in a connection.
+"""
+type VulnerabilitiesCountByDayAndSeverityEdge {
+ """
+ A cursor for use in pagination.
+ """
+ cursor: String!
+
+ """
+ The item at the end of the edge.
+ """
+ node: VulnerabilitiesCountByDayAndSeverity
+}
+
+"""
Represents a vulnerability.
"""
type Vulnerability {
@@ -9657,10 +11449,9 @@ type Vulnerability {
id: ID!
"""
- The JSON location metadata for the vulnerability. Its format depends on the
- type of the security scan that found the vulnerability
+ Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability
"""
- location: JSON
+ location: VulnerabilityLocation
"""
The project on which the vulnerability was found
@@ -9734,6 +11525,101 @@ type VulnerabilityEdge {
}
"""
+Represents a vulnerability location. The fields with data will depend on the vulnerability report type
+"""
+union VulnerabilityLocation = VulnerabilityLocationContainerScanning | VulnerabilityLocationDast | VulnerabilityLocationDependencyScanning | VulnerabilityLocationSast
+
+"""
+Represents the location of a vulnerability found by a container security scan
+"""
+type VulnerabilityLocationContainerScanning {
+ """
+ Dependency containing the vulnerability
+ """
+ dependency: VulnerableDependency
+
+ """
+ Name of the vulnerable container image
+ """
+ image: String
+
+ """
+ Operating system that runs on the vulnerable container image
+ """
+ operatingSystem: String
+}
+
+"""
+Represents the location of a vulnerability found by a DAST scan
+"""
+type VulnerabilityLocationDast {
+ """
+ Domain name of the vulnerable request
+ """
+ hostname: String
+
+ """
+ Query parameter for the URL on which the vulnerability occurred
+ """
+ param: String
+
+ """
+ URL path and query string of the vulnerable request
+ """
+ path: String
+
+ """
+ HTTP method of the vulnerable request
+ """
+ requestMethod: String
+}
+
+"""
+Represents the location of a vulnerability found by a dependency security scan
+"""
+type VulnerabilityLocationDependencyScanning {
+ """
+ Dependency containing the vulnerability
+ """
+ dependency: VulnerableDependency
+
+ """
+ Path to the vulnerable file
+ """
+ file: String
+}
+
+"""
+Represents the location of a vulnerability found by a SAST scan
+"""
+type VulnerabilityLocationSast {
+ """
+ Number of the last relevant line in the vulnerable file
+ """
+ endLine: String
+
+ """
+ Path to the vulnerable file
+ """
+ file: String
+
+ """
+ Number of the first relevant line in the vulnerable file
+ """
+ startLine: String
+
+ """
+ Class containing the vulnerability
+ """
+ vulnerableClass: String
+
+ """
+ Method containing the vulnerability
+ """
+ vulnerableMethod: String
+}
+
+"""
Check permissions for the current user on a vulnerability
"""
type VulnerabilityPermissions {
@@ -9843,4 +11729,29 @@ enum VulnerabilityState {
DETECTED
DISMISSED
RESOLVED
+}
+
+"""
+Represents a vulnerable dependency. Used in vulnerability location data
+"""
+type VulnerableDependency {
+ """
+ The package associated with the vulnerable dependency
+ """
+ package: VulnerablePackage
+
+ """
+ The version of the vulnerable dependency
+ """
+ version: String
+}
+
+"""
+Represents a vulnerable package. Used in vulnerability dependency data
+"""
+type VulnerablePackage {
+ """
+ The name of the vulnerable package
+ """
+ name: String
} \ No newline at end of file
diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json
index 26a2acdb4c6..40bfa08cff3 100644
--- a/doc/api/graphql/reference/gitlab_schema.json
+++ b/doc/api/graphql/reference/gitlab_schema.json
@@ -93,7 +93,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -127,6 +127,108 @@
},
{
"kind": "INPUT_OBJECT",
+ "name": "AddProjectToSecurityDashboardInput",
+ "description": "Autogenerated input type of AddProjectToSecurityDashboard",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "id",
+ "description": "ID of the project to be added to Instance Security Dashboard",
+ "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": "AddProjectToSecurityDashboardPayload",
+ "description": "Autogenerated return type of AddProjectToSecurityDashboard",
+ "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": "project",
+ "description": "Project that was added to the Instance Security Dashboard",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Project",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
"name": "AdminSidekiqQueuesDeleteJobsInput",
"description": "Autogenerated input type of AdminSidekiqQueuesDeleteJobs",
"fields": null,
@@ -241,7 +343,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -289,6 +391,651 @@
},
{
"kind": "OBJECT",
+ "name": "AlertManagementAlert",
+ "description": "Describes an alert from the project's Alert Management",
+ "fields": [
+ {
+ "name": "createdAt",
+ "description": "Timestamp the alert was created",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "description",
+ "description": "Description of the alert",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "details",
+ "description": "Alert details",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "JSON",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "endedAt",
+ "description": "Timestamp the alert ended",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "eventCount",
+ "description": "Number of events of this alert",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "hosts",
+ "description": "List of hosts the alert came from",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "iid",
+ "description": "Internal ID of the alert",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "issueIid",
+ "description": "Internal ID of the GitLab issue attached to the alert",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "monitoringTool",
+ "description": "Monitoring tool the alert came from",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "service",
+ "description": "Service the alert came from",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "severity",
+ "description": "Severity of the alert",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "ENUM",
+ "name": "AlertManagementSeverity",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "startedAt",
+ "description": "Timestamp the alert was raised",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "status",
+ "description": "Status of the alert",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "ENUM",
+ "name": "AlertManagementStatus",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "title",
+ "description": "Title of the alert",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "updatedAt",
+ "description": "Timestamp the alert was last updated",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlertConnection",
+ "description": "The connection type for AlertManagementAlert.",
+ "fields": [
+ {
+ "name": "edges",
+ "description": "A list of edges.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlertEdge",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "nodes",
+ "description": "A list of nodes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlert",
+ "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": "AlertManagementAlertEdge",
+ "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": "AlertManagementAlert",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "AlertManagementAlertSort",
+ "description": "Values for sorting alerts",
+ "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": "START_TIME_ASC",
+ "description": "Start time by ascending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "START_TIME_DESC",
+ "description": "Start time by descending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "END_TIME_ASC",
+ "description": "End time by ascending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "END_TIME_DESC",
+ "description": "End time by descending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "CREATED_TIME_ASC",
+ "description": "Created time by ascending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "CREATED_TIME_DESC",
+ "description": "Created time by descending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "UPDATED_TIME_ASC",
+ "description": "Created time by ascending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "UPDATED_TIME_DESC",
+ "description": "Created time by descending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "EVENTS_COUNT_ASC",
+ "description": "Events count by ascending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "EVENTS_COUNT_DESC",
+ "description": "Events count by descending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "SEVERITY_ASC",
+ "description": "Severity by ascending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "SEVERITY_DESC",
+ "description": "Severity by descending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "STATUS_ASC",
+ "description": "Status by ascending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "STATUS_DESC",
+ "description": "Status by descending order",
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlertStatusCountsType",
+ "description": "Represents total number of alerts for the represented categories",
+ "fields": [
+ {
+ "name": "acknowledged",
+ "description": "Number of alerts with status ACKNOWLEDGED for the project",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "all",
+ "description": "Total number of alerts for the project",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "ignored",
+ "description": "Number of alerts with status IGNORED for the project",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "open",
+ "description": "Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "resolved",
+ "description": "Number of alerts with status RESOLVED for the project",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "triggered",
+ "description": "Number of alerts with status TRIGGERED for the project",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "AlertManagementSeverity",
+ "description": "Alert severity values",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "CRITICAL",
+ "description": "Critical severity",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "HIGH",
+ "description": "High severity",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "MEDIUM",
+ "description": "Medium severity",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "LOW",
+ "description": "Low severity",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "INFO",
+ "description": "Info severity",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "UNKNOWN",
+ "description": "Unknown severity",
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "AlertManagementStatus",
+ "description": "Alert status values",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "TRIGGERED",
+ "description": "Triggered status",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "ACKNOWLEDGED",
+ "description": "Acknowledged status",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "RESOLVED",
+ "description": "Resolved status",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "IGNORED",
+ "description": "Ignored status",
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
"name": "AwardEmoji",
"description": "An emoji awarded by a user.",
"fields": [
@@ -771,6 +1518,59 @@
"deprecationReason": null
},
{
+ "name": "lists",
+ "description": "Lists of the project board",
+ "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": "BoardListConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "name",
"description": "Name of the board",
"args": [
@@ -919,6 +1719,429 @@
"possibleTypes": null
},
{
+ "kind": "OBJECT",
+ "name": "BoardList",
+ "description": "Represents a list for an issue board",
+ "fields": [
+ {
+ "name": "assignee",
+ "description": "Assignee in the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "User",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "collapsed",
+ "description": "Indicates if list is collapsed for this user",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "id",
+ "description": "ID (global ID) of the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "label",
+ "description": "Label of the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Label",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "limitMetric",
+ "description": "The current limit metric for the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "ENUM",
+ "name": "ListLimitMetric",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "listType",
+ "description": "Type of the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "maxIssueCount",
+ "description": "Maximum number of issues in the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "maxIssueWeight",
+ "description": "Maximum weight of issues in the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "milestone",
+ "description": "Milestone of the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Milestone",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "position",
+ "description": "Position of list within the board",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "title",
+ "description": "Title of the list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "BoardListConnection",
+ "description": "The connection type for BoardList.",
+ "fields": [
+ {
+ "name": "edges",
+ "description": "A list of edges.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "BoardListEdge",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "nodes",
+ "description": "A list of nodes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "BoardList",
+ "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": "BoardListEdge",
+ "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": "BoardList",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
+ "name": "BoardListUpdateLimitMetricsInput",
+ "description": "Autogenerated input type of BoardListUpdateLimitMetrics",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "listId",
+ "description": "The global ID of the list.",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "limitMetric",
+ "description": "The new limit metric type for the list.",
+ "type": {
+ "kind": "ENUM",
+ "name": "ListLimitMetric",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "maxIssueCount",
+ "description": "The new maximum issue count limit.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "maxIssueWeight",
+ "description": "The new maximum issue weight limit.",
+ "type": {
+ "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": "BoardListUpdateLimitMetricsPayload",
+ "description": "Autogenerated return type of BoardListUpdateLimitMetrics",
+ "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": "list",
+ "description": "The updated list",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "BoardList",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
"kind": "SCALAR",
"name": "Boolean",
"description": "Represents `true` or `false` values.",
@@ -930,6 +2153,51 @@
},
{
"kind": "OBJECT",
+ "name": "Branch",
+ "description": null,
+ "fields": [
+ {
+ "name": "commit",
+ "description": "Commit for the branch",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Commit",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "name",
+ "description": "Name of the branch",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
"name": "Commit",
"description": null,
"fields": [
@@ -1208,6 +2476,20 @@
"deprecationReason": null
},
{
+ "name": "titleHtml",
+ "description": "The GitLab Flavored Markdown rendering of `title`",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "webUrl",
"description": "Web URL of the commit",
"args": [
@@ -1235,6 +2517,426 @@
},
{
"kind": "INPUT_OBJECT",
+ "name": "CreateAlertIssueInput",
+ "description": "Autogenerated input type of CreateAlertIssue",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "projectPath",
+ "description": "The project the alert to mutate is in",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "iid",
+ "description": "The iid of the alert to mutate",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "CreateAlertIssuePayload",
+ "description": "Autogenerated return type of CreateAlertIssue",
+ "fields": [
+ {
+ "name": "alert",
+ "description": "The alert after mutation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlert",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "errors",
+ "description": "Errors encountered during execution of the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "issue",
+ "description": "The issue created after mutation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Issue",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
+ "name": "CreateAnnotationInput",
+ "description": "Autogenerated input type of CreateAnnotation",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "environmentId",
+ "description": "The global id of the environment to add an annotation to",
+ "type": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "clusterId",
+ "description": "The global id of the cluster to add an annotation to",
+ "type": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "startingAt",
+ "description": "Timestamp indicating starting moment to which the annotation relates",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "endingAt",
+ "description": "Timestamp indicating ending moment to which the annotation relates",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "dashboardPath",
+ "description": "The path to a file defining the dashboard on which the annotation should be added",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "description",
+ "description": "The description of the annotation",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "CreateAnnotationPayload",
+ "description": "Autogenerated return type of CreateAnnotation",
+ "fields": [
+ {
+ "name": "annotation",
+ "description": "The created annotation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "MetricsDashboardAnnotation",
+ "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": "CreateBranchInput",
+ "description": "Autogenerated input type of CreateBranch",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "projectPath",
+ "description": "Project full path the branch is associated with",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "name",
+ "description": "Name of the branch",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "ref",
+ "description": "Branch name or commit SHA to create branch from",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "CreateBranchPayload",
+ "description": "Autogenerated return type of CreateBranch",
+ "fields": [
+ {
+ "name": "branch",
+ "description": "Branch after mutation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Branch",
+ "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": "CreateDiffNoteInput",
"description": "Autogenerated input type of CreateDiffNote",
"fields": null,
@@ -1317,7 +3019,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -1539,7 +3241,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -1655,7 +3357,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -1703,6 +3405,148 @@
},
{
"kind": "INPUT_OBJECT",
+ "name": "CreateIterationInput",
+ "description": "Autogenerated input type of CreateIteration",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "groupPath",
+ "description": "The target group for the iteration",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "title",
+ "description": "The title of the iteration",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "description",
+ "description": "The description of the iteration",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "startDate",
+ "description": "The start date of the iteration",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "dueDate",
+ "description": "The end date of the iteration",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "CreateIterationPayload",
+ "description": "Autogenerated return type of CreateIteration",
+ "fields": [
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "errors",
+ "description": "Errors encountered during execution of the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "iteration",
+ "description": "The created iteration",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Iteration",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
"name": "CreateNoteInput",
"description": "Autogenerated input type of CreateNote",
"fields": null,
@@ -1781,7 +3625,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -1897,7 +3741,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -2022,6 +3866,24 @@
"defaultValue": null
},
{
+ "name": "uploadedFiles",
+ "description": "The paths to files uploaded in the snippet description",
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ },
+ "defaultValue": null
+ },
+ {
"name": "clientMutationId",
"description": "A unique identifier for the client performing the mutation.",
"type": {
@@ -2057,7 +3919,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -3679,7 +5541,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -3843,7 +5705,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -4350,7 +6212,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -4452,7 +6314,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -5459,7 +7321,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -7019,7 +8881,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -7696,6 +9558,20 @@
"deprecationReason": null
},
{
+ "name": "iteration",
+ "description": "Iteration of the issue",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Iteration",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "labels",
"description": "Labels of the issue",
"args": [
@@ -8550,7 +10426,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -8693,13 +10569,9 @@
"name": "adjacentReferenceId",
"description": "The id of the epic_issue or issue that the actual epic or issue is switched with",
"type": {
- "kind": "NON_NULL",
- "name": null,
- "ofType": {
- "kind": "SCALAR",
- "name": "ID",
- "ofType": null
- }
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
},
"defaultValue": null
},
@@ -8707,13 +10579,9 @@
"name": "relativePosition",
"description": "The type of the switch, after or before allowed",
"type": {
- "kind": "NON_NULL",
- "name": null,
- "ofType": {
- "kind": "ENUM",
- "name": "MoveType",
- "ofType": null
- }
+ "kind": "ENUM",
+ "name": "MoveType",
+ "ofType": null
},
"defaultValue": null
},
@@ -8802,7 +10670,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -8952,6 +10820,77 @@
"deprecationReason": null
},
{
+ "name": "packageFileRegistries",
+ "description": "Package file registries of the GeoNode. Available only when feature flag `geo_self_service_framework` 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": "PackageFileRegistryConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "primary",
"description": "Indicates whether this Geo node is the primary",
"args": [
@@ -9161,7 +11100,7 @@
},
{
"name": "grafanaUrl",
- "description": "Url for the Grafana host for the Grafana integration",
+ "description": "URL for the Grafana host for the Grafana integration",
"args": [
],
@@ -10000,6 +11939,99 @@
"deprecationReason": null
},
{
+ "name": "iterations",
+ "description": "Find iterations",
+ "args": [
+ {
+ "name": "startDate",
+ "description": "List items within a time frame where items.start_date is between startDate and endDate parameters (endDate parameter must be present)",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "endDate",
+ "description": "List items within a time frame where items.end_date is between startDate and endDate parameters (startDate parameter must be present)",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "state",
+ "description": "Filter iterations by state",
+ "type": {
+ "kind": "ENUM",
+ "name": "IterationState",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "title",
+ "description": "Fuzzy search by title",
+ "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": "IterationConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "lfsEnabled",
"description": "Indicates if Large File Storage (LFS) is enabled for namespace",
"args": [
@@ -10062,6 +12094,16 @@
"defaultValue": null
},
{
+ "name": "includeDescendants",
+ "description": "Return also milestones in all subgroups and subprojects",
+ "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": {
@@ -10189,6 +12231,16 @@
"defaultValue": "false"
},
{
+ "name": "hasVulnerabilities",
+ "description": "Returns only the projects which have vulnerabilities",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "defaultValue": "false"
+ },
+ {
"name": "after",
"description": "Returns the elements in the list that come after the specified cursor.",
"type": {
@@ -10317,29 +12369,41 @@
"args": [
{
"name": "startDate",
- "description": "List time logs within a time range where the logged date is after start_date parameter.",
+ "description": "List time logs within a date range where the logged date is equal to or after startDate",
"type": {
- "kind": "NON_NULL",
- "name": null,
- "ofType": {
- "kind": "SCALAR",
- "name": "Time",
- "ofType": null
- }
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
},
"defaultValue": null
},
{
"name": "endDate",
- "description": "List time logs within a time range where the logged date is before end_date parameter.",
+ "description": "List time logs within a date range where the logged date is equal to or before endDate",
"type": {
- "kind": "NON_NULL",
- "name": null,
- "ofType": {
- "kind": "SCALAR",
- "name": "Time",
- "ofType": null
- }
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "startTime",
+ "description": "List time-logs within a time range where the logged time is equal to or after startTime",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "endTime",
+ "description": "List time-logs within a time range where the logged time is equal to or before endTime",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
},
"defaultValue": null
},
@@ -10444,7 +12508,7 @@
},
{
"name": "vulnerabilities",
- "description": "Vulnerabilities reported on the projects in the group and its subgroups. Available only when feature flag `first_class_vulnerabilities` is enabled",
+ "description": "Vulnerabilities reported on the projects in the group and its subgroups",
"args": [
{
"name": "projectId",
@@ -10568,6 +12632,87 @@
"deprecationReason": null
},
{
+ "name": "vulnerabilitiesCountByDayAndSeverity",
+ "description": "Number of vulnerabilities per severity level, per day, for the projects in the group and its subgroups",
+ "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": "VulnerabilitiesCountByDayAndSeverityConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "webUrl",
"description": "Web URL of the group",
"args": [
@@ -10665,6 +12810,86 @@
},
{
"kind": "SCALAR",
+ "name": "ISO8601Date",
+ "description": "An ISO 8601-encoded date",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "InstanceSecurityDashboard",
+ "description": null,
+ "fields": [
+ {
+ "name": "projects",
+ "description": "Projects selected in Instance Security Dashboard",
+ "args": [
+ {
+ "name": "after",
+ "description": "Returns the elements in the list that come after the specified cursor.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "before",
+ "description": "Returns the elements in the list that come before the specified cursor.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "first",
+ "description": "Returns the first _n_ elements from the list.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "last",
+ "description": "Returns the last _n_ elements from the list.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "ProjectConnection",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "SCALAR",
"name": "Int",
"description": "Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",
"fields": null,
@@ -11038,6 +13263,20 @@
"deprecationReason": null
},
{
+ "name": "iteration",
+ "description": "Iteration of the issue",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Iteration",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "labels",
"description": "Labels of the issue",
"args": [
@@ -11864,7 +14103,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -11994,7 +14233,133 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "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": "IssueSetIterationInput",
+ "description": "Autogenerated input type of IssueSetIteration",
+ "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": "iterationId",
+ "description": "The iteration to assign to the issue.\n",
+ "type": {
+ "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": "IssueSetIterationPayload",
+ "description": "Autogenerated return type of IssueSetIteration",
+ "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": [
],
@@ -12124,7 +14489,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -12203,6 +14568,42 @@
"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": "DUE_DATE_ASC",
"description": "Due date by ascending order",
"isDeprecated": false,
@@ -12265,6 +14666,340 @@
"possibleTypes": null
},
{
+ "kind": "OBJECT",
+ "name": "Iteration",
+ "description": "Represents an iteration object.",
+ "fields": [
+ {
+ "name": "createdAt",
+ "description": "Timestamp of iteration creation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "description",
+ "description": "Description of the iteration",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "dueDate",
+ "description": "Timestamp of the iteration due date",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "id",
+ "description": "ID of the iteration",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "startDate",
+ "description": "Timestamp of the iteration start date",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "state",
+ "description": "State of the iteration",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "ENUM",
+ "name": "IterationState",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "title",
+ "description": "Title of the iteration",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "updatedAt",
+ "description": "Timestamp of last iteration update",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "webPath",
+ "description": "Web path of the iteration",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "webUrl",
+ "description": "Web URL of the iteration",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "IterationConnection",
+ "description": "The connection type for Iteration.",
+ "fields": [
+ {
+ "name": "edges",
+ "description": "A list of edges.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "IterationEdge",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "nodes",
+ "description": "A list of nodes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "Iteration",
+ "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": "IterationEdge",
+ "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": "Iteration",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "IterationState",
+ "description": "State of a GitLab iteration",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "upcoming",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "started",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "opened",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "closed",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "all",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
"kind": "SCALAR",
"name": "JSON",
"description": "Represents untyped JSON",
@@ -12280,6 +15015,20 @@
"description": null,
"fields": [
{
+ "name": "createdAt",
+ "description": "Timestamp of when the Jira import was created",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "jiraProjectKey",
"description": "Project key for the imported Jira project",
"args": [
@@ -12299,7 +15048,7 @@
},
{
"name": "scheduledAt",
- "description": "Timestamp of when the Jira import was created",
+ "description": "Timestamp of when the Jira import was scheduled",
"args": [
],
@@ -12525,7 +15274,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -12842,6 +15591,35 @@
"possibleTypes": null
},
{
+ "kind": "ENUM",
+ "name": "ListLimitMetric",
+ "description": "List limit metric setting",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "all_metrics",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "issue_count",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "issue_weights",
+ "description": null,
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
"kind": "INPUT_OBJECT",
"name": "MarkAsSpamSnippetInput",
"description": "Autogenerated input type of MarkAsSpamSnippet",
@@ -12897,7 +15675,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -14490,7 +17268,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -14638,7 +17416,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -14768,7 +17546,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -14894,7 +17672,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -15024,7 +17802,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -15154,7 +17932,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -15291,7 +18069,7 @@
"fields": [
{
"name": "annotations",
- "description": "Annotations added to the dashboard. Will always return `null` if `metrics_dashboard_annotations` feature flag is disabled",
+ "description": "Annotations added to the dashboard",
"args": [
{
"name": "from",
@@ -15415,7 +18193,7 @@
],
"type": {
"kind": "SCALAR",
- "name": "String",
+ "name": "Time",
"ofType": null
},
"isDeprecated": false,
@@ -15461,7 +18239,7 @@
],
"type": {
"kind": "SCALAR",
- "name": "String",
+ "name": "Time",
"ofType": null
},
"isDeprecated": false,
@@ -15941,6 +18719,33 @@
"deprecationReason": null
},
{
+ "name": "addProjectToSecurityDashboard",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "AddProjectToSecurityDashboardInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "AddProjectToSecurityDashboardPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "adminSidekiqQueuesDeleteJobs",
"description": null,
"args": [
@@ -15968,6 +18773,114 @@
"deprecationReason": null
},
{
+ "name": "boardListUpdateLimitMetrics",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "BoardListUpdateLimitMetricsInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "BoardListUpdateLimitMetricsPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "createAlertIssue",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "CreateAlertIssueInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "CreateAlertIssuePayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "createAnnotation",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "CreateAnnotationInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "CreateAnnotationPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "createBranch",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "CreateBranchInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "CreateBranchPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "createDiffNote",
"description": null,
"args": [
@@ -16049,6 +18962,33 @@
"deprecationReason": null
},
{
+ "name": "createIteration",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "CreateIterationInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "CreateIterationPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "createNote",
"description": null,
"args": [
@@ -16400,6 +19340,33 @@
"deprecationReason": null
},
{
+ "name": "issueSetIteration",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "IssueSetIterationInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "IssueSetIterationPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "issueSetWeight",
"description": null,
"args": [
@@ -16670,6 +19637,33 @@
"deprecationReason": null
},
{
+ "name": "removeProjectFromSecurityDashboard",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "RemoveProjectFromSecurityDashboardInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "RemoveProjectFromSecurityDashboardPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "todoMarkDone",
"description": null,
"args": [
@@ -16805,6 +19799,33 @@
"deprecationReason": null
},
{
+ "name": "updateAlertStatus",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "UpdateAlertStatusInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "UpdateAlertStatusPayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "updateEpic",
"description": null,
"args": [
@@ -17155,6 +20176,16 @@
"defaultValue": "false"
},
{
+ "name": "hasVulnerabilities",
+ "description": "Returns only the projects which have vulnerabilities",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "defaultValue": "false"
+ },
+ {
"name": "after",
"description": "Returns the elements in the list that come after the specified cursor.",
"type": {
@@ -17997,6 +21028,527 @@
},
{
"kind": "OBJECT",
+ "name": "Package",
+ "description": "Represents a package",
+ "fields": [
+ {
+ "name": "createdAt",
+ "description": "The created date",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "id",
+ "description": "The ID of the package",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "name",
+ "description": "The name of the package",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "packageType",
+ "description": "The type of the package",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "ENUM",
+ "name": "PackageTypeEnum",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "updatedAt",
+ "description": "The update date",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "version",
+ "description": "The version of the package",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "PackageConnection",
+ "description": "The connection type for Package.",
+ "fields": [
+ {
+ "name": "edges",
+ "description": "A list of edges.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "PackageEdge",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "nodes",
+ "description": "A list of nodes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "Package",
+ "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": "PackageEdge",
+ "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": "Package",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "PackageFileRegistry",
+ "description": "Represents the sync and verification state of a package file",
+ "fields": [
+ {
+ "name": "createdAt",
+ "description": "Timestamp when the PackageFileRegistry was created",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "id",
+ "description": "ID of the PackageFileRegistry",
+ "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 PackageFileRegistry",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "lastSyncedAt",
+ "description": "Timestamp of the most recent successful sync of the PackageFileRegistry",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "packageFileId",
+ "description": "ID of the PackageFile",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "retryAt",
+ "description": "Timestamp after which the PackageFileRegistry 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 PackageFileRegistry",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "state",
+ "description": "Sync state of the PackageFileRegistry",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "ENUM",
+ "name": "RegistryState",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "PackageFileRegistryConnection",
+ "description": "The connection type for PackageFileRegistry.",
+ "fields": [
+ {
+ "name": "edges",
+ "description": "A list of edges.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "PackageFileRegistryEdge",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "nodes",
+ "description": "A list of nodes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "PackageFileRegistry",
+ "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": "PackageFileRegistryEdge",
+ "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": "PackageFileRegistry",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "PackageTypeEnum",
+ "description": null,
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "MAVEN",
+ "description": "Packages from the maven package manager",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "NPM",
+ "description": "Packages from the npm package manager",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "CONAN",
+ "description": "Packages from the conan package manager",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "NUGET",
+ "description": "Packages from the nuget package manager",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "PYPI",
+ "description": "Packages from the pypi package manager",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "COMPOSER",
+ "description": "Packages from the composer package manager",
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
"name": "PageInfo",
"description": "Information about pagination in a connection.",
"fields": [
@@ -18575,6 +22127,182 @@
"description": null,
"fields": [
{
+ "name": "alertManagementAlert",
+ "description": "A single Alert Management alert of the project",
+ "args": [
+ {
+ "name": "iid",
+ "description": "IID of the alert. For example, \"1\"",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "statuses",
+ "description": "Alerts with the specified statues. For example, [TRIGGERED]",
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "ENUM",
+ "name": "AlertManagementStatus",
+ "ofType": null
+ }
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "sort",
+ "description": "Sort alerts by this criteria",
+ "type": {
+ "kind": "ENUM",
+ "name": "AlertManagementAlertSort",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "search",
+ "description": "Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlert",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "alertManagementAlertStatusCounts",
+ "description": "Counts of alerts by status for the project",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlertStatusCountsType",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "alertManagementAlerts",
+ "description": "Alert Management alerts of the project",
+ "args": [
+ {
+ "name": "iid",
+ "description": "IID of the alert. For example, \"1\"",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "statuses",
+ "description": "Alerts with the specified statues. For example, [TRIGGERED]",
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "ENUM",
+ "name": "AlertManagementStatus",
+ "ofType": null
+ }
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "sort",
+ "description": "Sort alerts by this criteria",
+ "type": {
+ "kind": "ENUM",
+ "name": "AlertManagementAlertSort",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "search",
+ "description": "Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool.",
+ "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": "AlertManagementAlertConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "archived",
"description": "Indicates the archived status of the project",
"args": [
@@ -19723,6 +23451,59 @@
"deprecationReason": null
},
{
+ "name": "packages",
+ "description": "Packages of 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": "PackageConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "path",
"description": "Path of the project",
"args": [
@@ -19852,6 +23633,86 @@
"deprecationReason": null
},
{
+ "name": "release",
+ "description": "A single release of the project. Available only when feature flag `graphql_release_data` is enabled",
+ "args": [
+ {
+ "name": "tagName",
+ "description": "The name of the tag associated to the release",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Release",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "releases",
+ "description": "Releases of the project. Available only when feature flag `graphql_release_data` is enabled",
+ "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": "ReleaseConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "removeSourceBranchAfterMerge",
"description": "Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project",
"args": [
@@ -20428,7 +24289,7 @@
},
{
"name": "vulnerabilities",
- "description": "Vulnerabilities reported on the project. Available only when feature flag `first_class_vulnerabilities` is enabled",
+ "description": "Vulnerabilities reported on the project",
"args": [
{
"name": "projectId",
@@ -20553,7 +24414,7 @@
},
{
"name": "vulnerabilitySeveritiesCount",
- "description": "Counts for each severity of vulnerability of the project. Available only when feature flag `first_class_vulnerabilities` is enabled",
+ "description": "Counts for each severity of vulnerability of the project",
"args": [
],
@@ -21736,6 +25597,20 @@
"deprecationReason": null
},
{
+ "name": "instanceSecurityDashboard",
+ "description": "Fields related to Instance Security Dashboard",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "InstanceSecurityDashboard",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "metadata",
"description": "Metadata about GitLab",
"args": [
@@ -21804,6 +25679,79 @@
"deprecationReason": null
},
{
+ "name": "projects",
+ "description": "Find projects visible to the current user",
+ "args": [
+ {
+ "name": "membership",
+ "description": "Limit projects that the current user is a member of",
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "search",
+ "description": "Search criteria",
+ "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": "snippets",
"description": "Find Snippets visible to the current user",
"args": [
@@ -22048,6 +25996,430 @@
},
"isDeprecated": false,
"deprecationReason": null
+ },
+ {
+ "name": "vulnerabilitiesCountByDayAndSeverity",
+ "description": "Number of vulnerabilities per severity level, per day, for the projects on the current user's instance security dashboard",
+ "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": "VulnerabilitiesCountByDayAndSeverityConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "RegistryState",
+ "description": "State of a Geo registry.",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "PENDING",
+ "description": "Registry waiting to be synced",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "STARTED",
+ "description": "Registry currently syncing",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "SYNCED",
+ "description": "Registry that is synced",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "FAILED",
+ "description": "Registry that failed to sync",
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "Release",
+ "description": null,
+ "fields": [
+ {
+ "name": "author",
+ "description": "User that created the release",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "User",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "commit",
+ "description": "The commit associated with the release",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Commit",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "createdAt",
+ "description": "Timestamp of when the release was created",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "description",
+ "description": "Description (also known as \"release notes\") of the release",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "descriptionHtml",
+ "description": "The GitLab Flavored Markdown rendering of `description`",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "milestones",
+ "description": "Milestones associated to the release",
+ "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": "MilestoneConnection",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "name",
+ "description": "Name of the release",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "releasedAt",
+ "description": "Timestamp of when the release was released",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Time",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "tagName",
+ "description": "Name of the tag associated with the release",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "tagPath",
+ "description": "Relative web path to the tag associated with the release",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "ReleaseConnection",
+ "description": "The connection type for Release.",
+ "fields": [
+ {
+ "name": "edges",
+ "description": "A list of edges.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "ReleaseEdge",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "nodes",
+ "description": "A list of nodes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "Release",
+ "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": "ReleaseEdge",
+ "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": "Release",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
}
],
"inputFields": null,
@@ -22141,7 +26513,95 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "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": "RemoveProjectFromSecurityDashboardInput",
+ "description": "Autogenerated input type of RemoveProjectFromSecurityDashboard",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "id",
+ "description": "ID of the project to remove from the Instance Security Dashboard",
+ "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": "RemoveProjectFromSecurityDashboardPayload",
+ "description": "Autogenerated return type of RemoveProjectFromSecurityDashboard",
+ "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": [
],
@@ -24587,25 +29047,25 @@
"deprecationReason": null
},
{
- "name": "YOUTRACK_SERVICE",
+ "name": "WEBEX_TEAMS_SERVICE",
"description": null,
"isDeprecated": false,
"deprecationReason": null
},
{
- "name": "GITHUB_SERVICE",
+ "name": "YOUTRACK_SERVICE",
"description": null,
"isDeprecated": false,
"deprecationReason": null
},
{
- "name": "JENKINS_SERVICE",
+ "name": "GITHUB_SERVICE",
"description": null,
"isDeprecated": false,
"deprecationReason": null
},
{
- "name": "JENKINS_DEPRECATED_SERVICE",
+ "name": "JENKINS_SERVICE",
"description": null,
"isDeprecated": false,
"deprecationReason": null
@@ -24787,7 +29247,7 @@
},
{
"name": "id",
- "description": "Id of the snippet",
+ "description": "ID of the snippet",
"args": [
],
@@ -25032,6 +29492,20 @@
"deprecationReason": null
},
{
+ "name": "externalStorage",
+ "description": "Blob external storage",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "mode",
"description": "Blob mode",
"args": [
@@ -25106,6 +29580,24 @@
"deprecationReason": null
},
{
+ "name": "renderedAsText",
+ "description": "Shows whether the blob is rendered as text",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "richData",
"description": "Blob highlighted data",
"args": [
@@ -26214,7 +30706,7 @@
},
{
"name": "id",
- "description": "Id of the todo",
+ "description": "ID of the todo",
"args": [
],
@@ -26509,7 +31001,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -26658,7 +31150,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -26737,7 +31229,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -26893,7 +31385,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -27035,7 +31527,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -27559,6 +32051,150 @@
},
{
"kind": "INPUT_OBJECT",
+ "name": "UpdateAlertStatusInput",
+ "description": "Autogenerated input type of UpdateAlertStatus",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "projectPath",
+ "description": "The project the alert to mutate is in",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "iid",
+ "description": "The iid of the alert to mutate",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "status",
+ "description": "The status to set the alert",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "ENUM",
+ "name": "AlertManagementStatus",
+ "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": "UpdateAlertStatusPayload",
+ "description": "Autogenerated return type of UpdateAlertStatus",
+ "fields": [
+ {
+ "name": "alert",
+ "description": "The alert after mutation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "AlertManagementAlert",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "errors",
+ "description": "Errors encountered during execution of the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "issue",
+ "description": "The issue created after mutation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Issue",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
"name": "UpdateDiffImagePositionInput",
"description": null,
"fields": null,
@@ -27808,7 +32444,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -27916,7 +32552,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -28082,7 +32718,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -28198,7 +32834,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -28334,7 +32970,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -28486,7 +33122,7 @@
},
{
"name": "errors",
- "description": "Reasons why the mutation failed.",
+ "description": "Errors encountered during execution of the mutation.",
"args": [
],
@@ -28562,6 +33198,24 @@
"deprecationReason": null
},
{
+ "name": "id",
+ "description": "ID of the user",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "name",
"description": "Human-readable name of the user",
"args": [
@@ -28671,6 +33325,24 @@
"deprecationReason": null
},
{
+ "name": "state",
+ "description": "State of the issue",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "todos",
"description": "Todos of the user",
"args": [
@@ -29100,6 +33772,173 @@
},
{
"kind": "OBJECT",
+ "name": "VulnerabilitiesCountByDayAndSeverity",
+ "description": "Represents the number of vulnerabilities for a particular severity on a particular day",
+ "fields": [
+ {
+ "name": "count",
+ "description": "Number of vulnerabilities",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Int",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "day",
+ "description": "Date for the count",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "ISO8601Date",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "severity",
+ "description": "Severity of the counted vulnerabilities",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "ENUM",
+ "name": "VulnerabilitySeverity",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilitiesCountByDayAndSeverityConnection",
+ "description": "The connection type for VulnerabilitiesCountByDayAndSeverity.",
+ "fields": [
+ {
+ "name": "edges",
+ "description": "A list of edges.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "VulnerabilitiesCountByDayAndSeverityEdge",
+ "ofType": null
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "nodes",
+ "description": "A list of nodes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "VulnerabilitiesCountByDayAndSeverity",
+ "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": "VulnerabilitiesCountByDayAndSeverityEdge",
+ "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": "VulnerabilitiesCountByDayAndSeverity",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
"name": "Vulnerability",
"description": "Represents a vulnerability.",
"fields": [
@@ -29137,13 +33976,13 @@
},
{
"name": "location",
- "description": "The JSON location metadata for the vulnerability. Its format depends on the type of the security scan that found the vulnerability",
+ "description": "Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability",
"args": [
],
"type": {
- "kind": "SCALAR",
- "name": "JSON",
+ "kind": "UNION",
+ "name": "VulnerabilityLocation",
"ofType": null
},
"isDeprecated": false,
@@ -29372,6 +34211,285 @@
"possibleTypes": null
},
{
+ "kind": "UNION",
+ "name": "VulnerabilityLocation",
+ "description": "Represents a vulnerability location. The fields with data will depend on the vulnerability report type",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": [
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationContainerScanning",
+ "ofType": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationDast",
+ "ofType": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationDependencyScanning",
+ "ofType": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationSast",
+ "ofType": null
+ }
+ ]
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationContainerScanning",
+ "description": "Represents the location of a vulnerability found by a container security scan",
+ "fields": [
+ {
+ "name": "dependency",
+ "description": "Dependency containing the vulnerability",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "VulnerableDependency",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "image",
+ "description": "Name of the vulnerable container image",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "operatingSystem",
+ "description": "Operating system that runs on the vulnerable container image",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationDast",
+ "description": "Represents the location of a vulnerability found by a DAST scan",
+ "fields": [
+ {
+ "name": "hostname",
+ "description": "Domain name of the vulnerable request",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "param",
+ "description": "Query parameter for the URL on which the vulnerability occurred",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "path",
+ "description": "URL path and query string of the vulnerable request",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "requestMethod",
+ "description": "HTTP method of the vulnerable request",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationDependencyScanning",
+ "description": "Represents the location of a vulnerability found by a dependency security scan",
+ "fields": [
+ {
+ "name": "dependency",
+ "description": "Dependency containing the vulnerability",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "VulnerableDependency",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "file",
+ "description": "Path to the vulnerable file",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerabilityLocationSast",
+ "description": "Represents the location of a vulnerability found by a SAST scan",
+ "fields": [
+ {
+ "name": "endLine",
+ "description": "Number of the last relevant line in the vulnerable file",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "file",
+ "description": "Path to the vulnerable file",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "startLine",
+ "description": "Number of the first relevant line in the vulnerable file",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "vulnerableClass",
+ "description": "Class containing the vulnerability",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "vulnerableMethod",
+ "description": "Method containing the vulnerability",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
"kind": "OBJECT",
"name": "VulnerabilityPermissions",
"description": "Check permissions for the current user on a vulnerability",
@@ -29744,6 +34862,74 @@
},
{
"kind": "OBJECT",
+ "name": "VulnerableDependency",
+ "description": "Represents a vulnerable dependency. Used in vulnerability location data",
+ "fields": [
+ {
+ "name": "package",
+ "description": "The package associated with the vulnerable dependency",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "VulnerablePackage",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "version",
+ "description": "The version of the vulnerable dependency",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "VulnerablePackage",
+ "description": "Represents a vulnerable package. Used in vulnerability dependency data",
+ "fields": [
+ {
+ "name": "name",
+ "description": "The name of the vulnerable package",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
"name": "__Directive",
"description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.",
"fields": [
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 4d3d77ba35f..4164c26e751 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -24,7 +24,17 @@ Autogenerated return type of AddAwardEmoji
| --- | ---- | ---------- |
| `awardEmoji` | AwardEmoji | The award emoji after mutation |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
+
+## AddProjectToSecurityDashboardPayload
+
+Autogenerated return type of AddProjectToSecurityDashboard
+
+| Name | 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
@@ -33,9 +43,44 @@ Autogenerated return type of AdminSidekiqQueuesDeleteJobs
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `result` | DeleteJobsResponse | Information about the status of the deletion request |
+## AlertManagementAlert
+
+Describes an alert from the project's Alert Management
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `createdAt` | Time | Timestamp the alert was created |
+| `description` | String | Description of the alert |
+| `details` | JSON | Alert details |
+| `endedAt` | Time | Timestamp the alert ended |
+| `eventCount` | Int | Number of events of this alert |
+| `hosts` | String! => Array | List of hosts the alert came from |
+| `iid` | ID! | Internal ID of the alert |
+| `issueIid` | ID | Internal ID of the GitLab issue attached to the alert |
+| `monitoringTool` | String | Monitoring tool the alert came from |
+| `service` | String | Service the alert came from |
+| `severity` | AlertManagementSeverity | Severity of the alert |
+| `startedAt` | Time | Timestamp the alert was raised |
+| `status` | AlertManagementStatus | Status of the alert |
+| `title` | String | Title of the alert |
+| `updatedAt` | Time | Timestamp the alert was last updated |
+
+## AlertManagementAlertStatusCountsType
+
+Represents total number of alerts for the represented categories
+
+| Name | 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 |
+| `open` | Int | Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project |
+| `resolved` | Int | Number of alerts with status RESOLVED for the project |
+| `triggered` | Int | Number of alerts with status TRIGGERED for the project |
+
## AwardEmoji
An emoji awarded by a user.
@@ -79,6 +124,41 @@ Represents a project or group board
| `name` | String | Name of the board |
| `weight` | Int | Weight of the board |
+## BoardList
+
+Represents a list for an issue board
+
+| Name | 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 |
+| `label` | Label | Label of the list |
+| `limitMetric` | ListLimitMetric | The current limit metric for the list |
+| `listType` | String! | Type of the list |
+| `maxIssueCount` | Int | Maximum number of issues in the list |
+| `maxIssueWeight` | Int | Maximum weight of issues in the list |
+| `milestone` | Milestone | Milestone of the list |
+| `position` | Int | Position of list within the board |
+| `title` | String! | Title of the list |
+
+## BoardListUpdateLimitMetricsPayload
+
+Autogenerated return type of BoardListUpdateLimitMetrics
+
+| Name | 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
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `commit` | Commit | Commit for the branch |
+| `name` | String! | Name of the branch |
+
## Commit
| Name | Type | Description |
@@ -94,8 +174,40 @@ Represents a project or group board
| `sha` | String! | SHA1 ID of the commit |
| `signatureHtml` | String | Rendered HTML of the commit signature |
| `title` | String | Title of the commit message |
+| `titleHtml` | String | The GitLab Flavored Markdown rendering of `title` |
| `webUrl` | String! | Web URL of the commit |
+## CreateAlertIssuePayload
+
+Autogenerated return type of CreateAlertIssue
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `alert` | AlertManagementAlert | The alert after mutation |
+| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
+| `issue` | Issue | The issue created after mutation |
+
+## CreateAnnotationPayload
+
+Autogenerated return type of CreateAnnotation
+
+| Name | 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
+
+Autogenerated return type of CreateBranch
+
+| Name | 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. |
+
## CreateDiffNotePayload
Autogenerated return type of CreateDiffNote
@@ -103,7 +215,7 @@ Autogenerated return type of CreateDiffNote
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `note` | Note | The note after mutation |
## CreateEpicPayload
@@ -114,7 +226,7 @@ Autogenerated return type of CreateEpic
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
| `epic` | Epic | The created epic |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
## CreateImageDiffNotePayload
@@ -123,9 +235,19 @@ Autogenerated return type of CreateImageDiffNote
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `note` | Note | The note after mutation |
+## CreateIterationPayload
+
+Autogenerated return type of CreateIteration
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
+| `iteration` | Iteration | The created iteration |
+
## CreateNotePayload
Autogenerated return type of CreateNote
@@ -133,7 +255,7 @@ Autogenerated return type of CreateNote
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `note` | Note | The note after mutation |
## CreateRequirementPayload
@@ -143,7 +265,7 @@ Autogenerated return type of CreateRequirement
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `requirement` | Requirement | The requirement after mutation |
## CreateSnippetPayload
@@ -153,7 +275,7 @@ Autogenerated return type of CreateSnippet
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `snippet` | Snippet | The snippet after mutation |
## DeleteJobsResponse
@@ -228,7 +350,7 @@ Autogenerated return type of DesignManagementDelete
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `version` | DesignVersion | The new version in which the designs are deleted |
## DesignManagementUploadPayload
@@ -239,7 +361,7 @@ Autogenerated return type of DesignManagementUpload
| --- | ---- | ---------- |
| `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 | Reasons why the mutation failed. |
+| `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
@@ -259,7 +381,7 @@ Autogenerated return type of DestroyNote
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `note` | Note | The note after mutation |
## DestroySnippetPayload
@@ -269,7 +391,7 @@ Autogenerated return type of DestroySnippet
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `snippet` | Snippet | The snippet after mutation |
## DetailedStatus
@@ -324,7 +446,7 @@ Autogenerated return type of DismissVulnerability
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `vulnerability` | Vulnerability | The vulnerability after dismissal |
## Environment
@@ -389,7 +511,7 @@ Autogenerated return type of EpicAddIssue
| `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 | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
## EpicDescendantCount
@@ -443,6 +565,7 @@ Relationship between an epic and an issue
| `healthStatus` | HealthStatus | Current health status. Returns null if `save_issuable_health_status` feature flag is disabled. |
| `id` | ID | Global ID of the epic-issue relation |
| `iid` | ID! | Internal ID of the issue |
+| `iteration` | Iteration | Iteration of the issue |
| `milestone` | Milestone | Milestone of the issue |
| `reference` | String! | Internal reference of the issue. Returned in shortened format by default |
| `relationPath` | String | URI path of the epic-issue relation |
@@ -485,7 +608,7 @@ Autogenerated return type of EpicSetSubscription
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
| `epic` | Epic | The epic after mutation |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
## EpicTreeReorderPayload
@@ -494,7 +617,7 @@ Autogenerated return type of EpicTreeReorder
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
## GeoNode
@@ -521,7 +644,7 @@ Autogenerated return type of EpicTreeReorder
| --- | ---- | ---------- |
| `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 |
+| `grafanaUrl` | String! | URL for the Grafana host for the Grafana integration |
| `id` | ID! | Internal ID of the Grafana integration |
| `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 |
@@ -582,6 +705,7 @@ Autogenerated return type of EpicTreeReorder
| `epic` | Epic | Epic to which this issue belongs |
| `healthStatus` | HealthStatus | Current health status. Returns null if `save_issuable_health_status` feature flag is disabled. |
| `iid` | ID! | Internal ID of the issue |
+| `iteration` | Iteration | Iteration of the issue |
| `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) |
@@ -622,7 +746,7 @@ Autogenerated return type of IssueSetConfidential
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `issue` | Issue | The issue after mutation |
## IssueSetDueDatePayload
@@ -632,7 +756,17 @@ Autogenerated return type of IssueSetDueDate
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
+| `issue` | Issue | The issue after mutation |
+
+## IssueSetIterationPayload
+
+Autogenerated return type of IssueSetIteration
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `issue` | Issue | The issue after mutation |
## IssueSetWeightPayload
@@ -642,15 +776,33 @@ Autogenerated return type of IssueSetWeight
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `issue` | Issue | The issue after mutation |
+## Iteration
+
+Represents an iteration object.
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `createdAt` | Time! | Timestamp of iteration creation |
+| `description` | String | Description of the iteration |
+| `dueDate` | Time | Timestamp of the iteration due date |
+| `id` | ID! | ID of the iteration |
+| `startDate` | Time | Timestamp of the iteration start date |
+| `state` | IterationState! | State of the iteration |
+| `title` | String! | Title of the iteration |
+| `updatedAt` | Time! | Timestamp of last iteration update |
+| `webPath` | String! | Web path of the iteration |
+| `webUrl` | String! | Web URL of the iteration |
+
## JiraImport
| Name | Type | Description |
| --- | ---- | ---------- |
+| `createdAt` | Time | Timestamp of when the Jira import was created |
| `jiraProjectKey` | String! | Project key for the imported Jira project |
-| `scheduledAt` | Time | Timestamp of when the Jira import was created |
+| `scheduledAt` | Time | Timestamp of when the Jira import was scheduled |
| `scheduledBy` | User | User that started the Jira import |
## JiraImportStartPayload
@@ -660,7 +812,7 @@ Autogenerated return type of JiraImportStart
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `jiraImport` | JiraImport | The Jira import data after mutation |
## JiraService
@@ -688,7 +840,7 @@ Autogenerated return type of MarkAsSpamSnippet
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `snippet` | Snippet | The snippet after mutation |
## MergeRequest
@@ -767,7 +919,7 @@ Autogenerated return type of MergeRequestSetAssignees
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `mergeRequest` | MergeRequest | The merge request after mutation |
## MergeRequestSetLabelsPayload
@@ -777,7 +929,7 @@ Autogenerated return type of MergeRequestSetLabels
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `mergeRequest` | MergeRequest | The merge request after mutation |
## MergeRequestSetLockedPayload
@@ -787,7 +939,7 @@ Autogenerated return type of MergeRequestSetLocked
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `mergeRequest` | MergeRequest | The merge request after mutation |
## MergeRequestSetMilestonePayload
@@ -797,7 +949,7 @@ Autogenerated return type of MergeRequestSetMilestone
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `mergeRequest` | MergeRequest | The merge request after mutation |
## MergeRequestSetSubscriptionPayload
@@ -807,7 +959,7 @@ Autogenerated return type of MergeRequestSetSubscription
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `mergeRequest` | MergeRequest | The merge request after mutation |
## MergeRequestSetWipPayload
@@ -817,7 +969,7 @@ Autogenerated return type of MergeRequestSetWip
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `mergeRequest` | MergeRequest | The merge request after mutation |
## Metadata
@@ -838,10 +990,10 @@ Autogenerated return type of MergeRequestSetWip
| Name | Type | Description |
| --- | ---- | ---------- |
| `description` | String | Description of the annotation |
-| `endingAt` | String | Timestamp marking end of annotated time span |
+| `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` | String | Timestamp marking start of annotated time span |
+| `startingAt` | Time | Timestamp marking start of annotated time span |
## Milestone
@@ -905,6 +1057,34 @@ Represents a milestone.
| `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
+
+Represents a package
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `createdAt` | Time! | The created date |
+| `id` | ID! | The ID of the package |
+| `name` | String! | The name of the package |
+| `packageType` | PackageTypeEnum! | The type of the package |
+| `updatedAt` | Time! | The update date |
+| `version` | String | The version of the package |
+
+## PackageFileRegistry
+
+Represents the sync and verification state of a package file
+
+| Name | 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 |
+| `lastSyncedAt` | Time | Timestamp of the most recent successful sync of the PackageFileRegistry |
+| `packageFileId` | ID! | ID of the PackageFile |
+| `retryAt` | Time | Timestamp after which the PackageFileRegistry should be resynced |
+| `retryCount` | Int | Number of consecutive failed sync attempts of the PackageFileRegistry |
+| `state` | RegistryState | Sync state of the PackageFileRegistry |
+
## PageInfo
Information about pagination in a connection.
@@ -947,6 +1127,8 @@ Information about pagination in a connection.
| Name | Type | Description |
| --- | ---- | ---------- |
+| `alertManagementAlert` | AlertManagementAlert | A single Alert Management alert of the project |
+| `alertManagementAlertStatusCounts` | AlertManagementAlertStatusCountsType | Counts of alerts by status for the project |
| `archived` | Boolean | Indicates the archived status of the project |
| `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 |
@@ -980,6 +1162,7 @@ Information about pagination in a connection.
| `path` | String! | Path of the project |
| `printingMergeRequestLinkEnabled` | Boolean | Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line |
| `publicJobs` | Boolean | Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts |
+| `release` | Release | A single release of the project. Available only when feature flag `graphql_release_data` is enabled |
| `removeSourceBranchAfterMerge` | Boolean | Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project |
| `repository` | Repository | Git repository of the project |
| `requestAccessEnabled` | Boolean | Indicates if users can request member access to the project |
@@ -998,7 +1181,7 @@ 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. Available only when feature flag `first_class_vulnerabilities` is enabled |
+| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each severity of vulnerability of the project |
| `webUrl` | String | Web URL of the project |
| `wikiEnabled` | Boolean | Indicates if Wikis are enabled for the current user |
@@ -1061,6 +1244,20 @@ Information about pagination in a connection.
| `storageSize` | Float! | Storage size of the project |
| `wikiSize` | Float | Wiki size of the project |
+## Release
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `author` | User | User that created the release |
+| `commit` | Commit | The commit associated with the release |
+| `createdAt` | Time | Timestamp of when the release was created |
+| `description` | String | Description (also known as "release notes") of the release |
+| `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` |
+| `name` | String | Name of the release |
+| `releasedAt` | Time | Timestamp of when the release was released |
+| `tagName` | String! | Name of the tag associated with the release |
+| `tagPath` | String | Relative web path to the tag associated with the release |
+
## RemoveAwardEmojiPayload
Autogenerated return type of RemoveAwardEmoji
@@ -1069,7 +1266,16 @@ Autogenerated return type of RemoveAwardEmoji
| --- | ---- | ---------- |
| `awardEmoji` | AwardEmoji | The award emoji after mutation |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
+
+## RemoveProjectFromSecurityDashboardPayload
+
+Autogenerated return type of RemoveProjectFromSecurityDashboard
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
## Repository
@@ -1256,7 +1462,7 @@ Represents a snippet entry
| `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` |
| `fileName` | String | File Name of the snippet |
| `httpUrlToRepo` | String | HTTP URL to the snippet repository |
-| `id` | ID! | Id of the snippet |
+| `id` | ID! | ID of the snippet |
| `project` | Project | The project the snippet is associated with |
| `rawUrl` | String! | Raw URL of the snippet |
| `sshUrlToRepo` | String | SSH URL to the snippet repository |
@@ -1273,11 +1479,13 @@ Represents the snippet blob
| Name | Type | Description |
| --- | ---- | ---------- |
| `binary` | Boolean! | Shows whether the blob is binary |
+| `externalStorage` | String | Blob external storage |
| `mode` | String | Blob mode |
| `name` | String | Blob name |
| `path` | String | Blob path |
| `plainData` | String | Blob plain highlighted data |
| `rawPath` | String! | Blob raw content endpoint path |
+| `renderedAsText` | Boolean! | Shows whether the blob is rendered as text |
| `richData` | String | Blob highlighted data |
| `richViewer` | SnippetBlobViewer | Blob content rich viewer |
| `simpleViewer` | SnippetBlobViewer! | Blob content simple viewer |
@@ -1351,7 +1559,7 @@ Representing a todo entry
| `body` | String! | Body of the todo |
| `createdAt` | Time! | Timestamp this todo was created |
| `group` | Group | Group this todo is associated with |
-| `id` | ID! | Id of the todo |
+| `id` | ID! | ID of the todo |
| `project` | Project | The project this todo is associated with |
| `state` | TodoStateEnum! | State of the todo |
| `targetType` | TodoTargetEnum! | Target type of the todo |
@@ -1363,7 +1571,7 @@ Autogenerated return type of TodoMarkDone
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `todo` | Todo! | The requested todo |
## TodoRestoreManyPayload
@@ -1373,7 +1581,7 @@ Autogenerated return type of TodoRestoreMany
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `updatedIds` | ID! => Array | The ids of the updated todo items |
## TodoRestorePayload
@@ -1383,7 +1591,7 @@ Autogenerated return type of TodoRestore
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `todo` | Todo! | The requested todo |
## TodosMarkAllDonePayload
@@ -1393,7 +1601,7 @@ Autogenerated return type of TodosMarkAllDone
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `updatedIds` | ID! => Array | Ids of the updated todos |
## ToggleAwardEmojiPayload
@@ -1404,7 +1612,7 @@ Autogenerated return type of ToggleAwardEmoji
| --- | ---- | ---------- |
| `awardEmoji` | AwardEmoji | The award emoji after mutation |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `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
@@ -1427,6 +1635,17 @@ Represents a directory
| `type` | EntryType! | Type of tree entry |
| `webUrl` | String | Web URL for the tree entry (directory) |
+## UpdateAlertStatusPayload
+
+Autogenerated return type of UpdateAlertStatus
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `alert` | AlertManagementAlert | The alert after mutation |
+| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
+| `issue` | Issue | The issue created after mutation |
+
## UpdateEpicPayload
Autogenerated return type of UpdateEpic
@@ -1435,7 +1654,7 @@ Autogenerated return type of UpdateEpic
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
| `epic` | Epic | The epic after mutation |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
## UpdateImageDiffNotePayload
@@ -1444,7 +1663,7 @@ Autogenerated return type of UpdateImageDiffNote
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `note` | Note | The note after mutation |
## UpdateIssuePayload
@@ -1454,7 +1673,7 @@ Autogenerated return type of UpdateIssue
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `issue` | Issue | The issue after mutation |
## UpdateNotePayload
@@ -1464,7 +1683,7 @@ Autogenerated return type of UpdateNote
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `note` | Note | The note after mutation |
## UpdateRequirementPayload
@@ -1474,7 +1693,7 @@ Autogenerated return type of UpdateRequirement
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `requirement` | Requirement | The requirement after mutation |
## UpdateSnippetPayload
@@ -1484,7 +1703,7 @@ Autogenerated return type of UpdateSnippet
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
-| `errors` | String! => Array | Reasons why the mutation failed. |
+| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `snippet` | Snippet | The snippet after mutation |
## User
@@ -1492,7 +1711,9 @@ Autogenerated return type of UpdateSnippet
| Name | Type | Description |
| --- | ---- | ---------- |
| `avatarUrl` | String | URL of the user's avatar |
+| `id` | ID! | ID of the user |
| `name` | String! | Human-readable name of the user |
+| `state` | String! | State of the issue |
| `userPermissions` | UserPermissions! | Permissions for the current user on the resource |
| `username` | String! | Username of the user. Unique within this instance of GitLab |
| `webUrl` | String! | Web URL of the user |
@@ -1503,6 +1724,16 @@ Autogenerated return type of UpdateSnippet
| --- | ---- | ---------- |
| `createSnippet` | Boolean! | Indicates the user can perform `create_snippet` on this resource |
+## VulnerabilitiesCountByDayAndSeverity
+
+Represents the number of vulnerabilities for a particular severity on a particular day
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `count` | Int | Number of vulnerabilities |
+| `day` | ISO8601Date | Date for the count |
+| `severity` | VulnerabilitySeverity | Severity of the counted vulnerabilities |
+
## Vulnerability
Represents a vulnerability.
@@ -1511,7 +1742,7 @@ Represents a vulnerability.
| --- | ---- | ---------- |
| `description` | String | Description of the vulnerability |
| `id` | ID! | GraphQL ID of the vulnerability |
-| `location` | JSON | The JSON location metadata for the vulnerability. Its format depends on the type of the security scan that found the vulnerability |
+| `location` | VulnerabilityLocation | Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability |
| `project` | Project | The project on which the vulnerability was found |
| `reportType` | VulnerabilityReportType | Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST) |
| `severity` | VulnerabilitySeverity | Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL) |
@@ -1520,6 +1751,48 @@ Represents a vulnerability.
| `userPermissions` | VulnerabilityPermissions! | Permissions for the current user on the resource |
| `vulnerabilityPath` | String | URL to the vulnerability's details page |
+## VulnerabilityLocationContainerScanning
+
+Represents the location of a vulnerability found by a container security scan
+
+| Name | 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 |
+
+## VulnerabilityLocationDast
+
+Represents the location of a vulnerability found by a DAST scan
+
+| Name | 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
+
+Represents the location of a vulnerability found by a dependency security scan
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `dependency` | VulnerableDependency | Dependency containing the vulnerability |
+| `file` | String | Path to the vulnerable file |
+
+## VulnerabilityLocationSast
+
+Represents the location of a vulnerability found by a SAST scan
+
+| Name | 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
Check permissions for the current user on a vulnerability
@@ -1547,3 +1820,20 @@ Represents vulnerability counts by severity
| `low` | Int | Number of vulnerabilities of LOW severity of the project |
| `medium` | Int | Number of vulnerabilities of MEDIUM severity of the project |
| `unknown` | Int | Number of vulnerabilities of UNKNOWN severity of the project |
+
+## VulnerableDependency
+
+Represents a vulnerable dependency. Used in vulnerability location data
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `package` | VulnerablePackage | The package associated with the vulnerable dependency |
+| `version` | String | The version of the vulnerable dependency |
+
+## VulnerablePackage
+
+Represents a vulnerable package. Used in vulnerability dependency data
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `name` | String | The name of the vulnerable package |
diff --git a/doc/api/group_badges.md b/doc/api/group_badges.md
index 6d5961a7eb8..5b7164cdd4d 100644
--- a/doc/api/group_badges.md
+++ b/doc/api/group_badges.md
@@ -7,7 +7,7 @@
Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:
- **%{project_path}**: will be replaced by the project path.
-- **%{project_id}**: will be replaced by the project id.
+- **%{project_id}**: will be replaced by the project ID.
- **%{default_branch}**: will be replaced by the project default branch.
- **%{commit_sha}**: will be replaced by the last project's commit SHA.
diff --git a/doc/api/group_import_export.md b/doc/api/group_import_export.md
index 50e8bd9dcf2..355ecbfb98f 100644
--- a/doc/api/group_import_export.md
+++ b/doc/api/group_import_export.md
@@ -1,6 +1,6 @@
# Group Import/Export API
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20353) in GitLab 12.8 as an experimental feature. May change in future releases.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20353) in GitLab 12.8.
Group Import/Export allows you to export group structure and import it to a new location.
When used with [Project Import/Export](project_import_export.md), you can preserve connections with
@@ -25,7 +25,7 @@ POST /groups/:id/export
| Attribute | Type | Required | Description |
| --------- | -------------- | -------- | ---------------------------------------- |
-| `id` | integer/string | yes | ID of the groupd owned by the authenticated user |
+| `id` | integer/string | yes | ID of the group owned by the authenticated user |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/1/export
@@ -41,7 +41,7 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab
Download the finished export.
-```text
+```plaintext
GET /groups/:id/export/download
```
@@ -66,7 +66,7 @@ returns either:
## Import a file
-```text
+```plaintext
POST /groups/import
```
diff --git a/doc/api/group_milestones.md b/doc/api/group_milestones.md
index 7e2a6987208..10445acf881 100644
--- a/doc/api/group_milestones.md
+++ b/doc/api/group_milestones.md
@@ -1,6 +1,6 @@
# Group milestones API
-> [Introduced][ce-12819] in GitLab 9.5.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/12819) in GitLab 9.5.
## List group milestones
@@ -21,10 +21,10 @@ Parameters:
| Attribute | Type | Required | Description |
| --------- | ------ | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `iids[]` | integer array | optional | Return only the milestones having the given `iid` |
-| `state` | string | optional | Return only `active` or `closed` milestones |
-| `title` | string | optional | Return only the milestones having the given `title` |
-| `search` | string | optional | Return only milestones with a title or description matching the provided string |
+| `iids[]` | integer array | no | Return only the milestones having the given `iid` |
+| `state` | string | no | Return only `active` or `closed` milestones |
+| `title` | string | no | Return only the milestones having the given `title` |
+| `search` | string | no | Return only milestones with a title or description matching the provided string |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/milestones
@@ -44,7 +44,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",
+ "web_url": "https://gitlab.com/groups/gitlab-org/-/milestones/42"
}
]
```
@@ -59,8 +60,10 @@ GET /groups/:id/milestones/:milestone_id
Parameters:
-- `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user
-- `milestone_id` (required) - The ID of the group milestone
+| Attribute | Type | Required | Description |
+| --------- | ------ | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `milestone_id` | integer | yes | The ID of the group milestone |
## Create new milestone
@@ -72,11 +75,13 @@ POST /groups/:id/milestones
Parameters:
-- `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user
-- `title` (required) - The title of a milestone
-- `description` (optional) - The description of the milestone
-- `due_date` (optional) - The due date of the milestone
-- `start_date` (optional) - The start date of the milestone
+| Attribute | Type | Required | Description |
+| --------- | ------ | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `title` | string | yes | The title of a milestone |
+| `description` | string | no | The description of the milestone |
+| `due_date` | date | no | The due date of the milestone, in YYYY-MM-DD format (ISO 8601) |
+| `start_date` | date | no | The start date of the milestone, in YYYY-MM-DD format (ISO 8601) |
## Edit milestone
@@ -88,13 +93,15 @@ PUT /groups/:id/milestones/:milestone_id
Parameters:
-- `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user
-- `milestone_id` (required) - The ID of a group milestone
-- `title` (optional) - The title of a milestone
-- `description` (optional) - The description of a milestone
-- `due_date` (optional) - The due date of the milestone
-- `start_date` (optional) - The start date of the milestone
-- `state_event` (optional) - The state event of the milestone (close|activate)
+| Attribute | Type | Required | Description |
+| --------- | ------ | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `milestone_id` | integer | yes | The ID of a group milestone |
+| `title` | string | no | The title of a milestone |
+| `description` | string | no | The description of a milestone |
+| `due_date` | date | no | The due date of the milestone, in YYYY-MM-DD format (ISO 8601) |
+| `start_date` | date | no | The start date of the milestone, in YYYY-MM-DD format (ISO 8601) |
+| `state_event` | string | no | The state event of the milestone _(`close` or `activate`)_ |
## Delete group milestone
@@ -106,8 +113,10 @@ DELETE /groups/:id/milestones/:milestone_id
Parameters:
-- `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user
-- `milestone_id` (required) - The ID of the group's milestone
+| Attribute | Type | Required | Description |
+| --------- | ------ | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `milestone_id` | integer | yes | The ID of the group's milestone |
## Get all issues assigned to a single milestone
@@ -119,8 +128,10 @@ GET /groups/:id/milestones/:milestone_id/issues
Parameters:
-- `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user
-- `milestone_id` (required) - The ID of a group milestone
+| Attribute | Type | Required | Description |
+| --------- | ------ | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `milestone_id` | integer | yes | The ID of a group milestone |
## Get all merge requests assigned to a single milestone
@@ -132,10 +143,10 @@ GET /groups/:id/milestones/:milestone_id/merge_requests
Parameters:
-- `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user
-- `milestone_id` (required) - The ID of a group milestone
-
-[ce-12819]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/12819
+| Attribute | Type | Required | Description |
+| --------- | ------ | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `milestone_id` | integer | yes | The ID of a group milestone |
## Get all burndown chart events for a single milestone **(STARTER)**
@@ -149,5 +160,7 @@ GET /groups/:id/milestones/:milestone_id/burndown_events
Parameters:
-- `id` (required) - The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user
-- `milestone_id` (required) - The ID of a group milestone
+| Attribute | Type | Required | Description |
+| --------- | ------ | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `milestone_id` | integer | yes | The ID of a group milestone |
diff --git a/doc/api/groups.md b/doc/api/groups.md
index 34c01766d06..bc7bff2964b 100644
--- a/doc/api/groups.md
+++ b/doc/api/groups.md
@@ -109,7 +109,7 @@ GET /groups?custom_attributes[key]=value&custom_attributes[other_key]=other_valu
## List a group's subgroups
-> [Introduced][ce-15142] in GitLab 10.3.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15142) in GitLab 10.3.
Get a list of visible direct subgroups in this group.
When accessed without authentication, only public groups are returned.
@@ -241,9 +241,142 @@ Example response:
```
NOTE: **Note:**
-
To distinguish between a project in the group and a project shared to the group, the `namespace` attribute can be used. When a project has been shared to the group, its `namespace` will be different from the group the request is being made for.
+## List a group's shared projects
+
+Get a list of projects shared to this group. When accessed without authentication, only public shared projects are returned.
+
+By default, this request returns 20 results at a time because the API results [are paginated](README.md#pagination).
+
+```plaintext
+GET /groups/:id/projects/shared
+```
+
+Parameters:
+
+| Attribute | Type | Required | Description |
+| ----------------------------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `archived` | boolean | no | Limit by archived status |
+| `visibility` | string | no | Limit by visibility `public`, `internal`, or `private` |
+| `order_by` | string | no | Return projects ordered by `id`, `name`, `path`, `created_at`, `updated_at`, or `last_activity_at` fields. Default is `created_at` |
+| `sort` | string | no | Return projects sorted in `asc` or `desc` order. Default is `desc` |
+| `search` | string | no | Return list of authorized projects matching the search criteria |
+| `simple` | boolean | no | Return only the ID, URL, name, and path of each project |
+| `starred` | boolean | no | Limit by projects starred by the current user |
+| `with_issues_enabled` | boolean | no | Limit by projects with issues feature enabled. Default is `false` |
+| `with_merge_requests_enabled` | boolean | no | Limit by projects with merge requests feature enabled. Default is `false` |
+| `min_access_level` | integer | no | Limit to projects where current user has at least this [access level](members.md) |
+| `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only) |
+
+Example response:
+
+```json
+[
+ {
+ "id":8,
+ "description":"Shared project for Html5 Boilerplate",
+ "name":"Html5 Boilerplate",
+ "name_with_namespace":"H5bp / Html5 Boilerplate",
+ "path":"html5-boilerplate",
+ "path_with_namespace":"h5bp/html5-boilerplate",
+ "created_at":"2020-04-27T06:13:22.642Z",
+ "default_branch":"master",
+ "tag_list":[
+
+ ],
+ "ssh_url_to_repo":"ssh://git@gitlab.com/h5bp/html5-boilerplate.git",
+ "http_url_to_repo":"http://gitlab.com/h5bp/html5-boilerplate.git",
+ "web_url":"http://gitlab.com/h5bp/html5-boilerplate",
+ "readme_url":"http://gitlab.com/h5bp/html5-boilerplate/-/blob/master/README.md",
+ "avatar_url":null,
+ "star_count":0,
+ "forks_count":4,
+ "last_activity_at":"2020-04-27T06:13:22.642Z",
+ "namespace":{
+ "id":28,
+ "name":"H5bp",
+ "path":"h5bp",
+ "kind":"group",
+ "full_path":"h5bp",
+ "parent_id":null,
+ "avatar_url":null,
+ "web_url":"http://gitlab.com/groups/h5bp"
+ },
+ "_links":{
+ "self":"http://gitlab.com/api/v4/projects/8",
+ "issues":"http://gitlab.com/api/v4/projects/8/issues",
+ "merge_requests":"http://gitlab.com/api/v4/projects/8/merge_requests",
+ "repo_branches":"http://gitlab.com/api/v4/projects/8/repository/branches",
+ "labels":"http://gitlab.com/api/v4/projects/8/labels",
+ "events":"http://gitlab.com/api/v4/projects/8/events",
+ "members":"http://gitlab.com/api/v4/projects/8/members"
+ },
+ "empty_repo":false,
+ "archived":false,
+ "visibility":"public",
+ "resolve_outdated_diff_discussions":false,
+ "container_registry_enabled":true,
+ "container_expiration_policy":{
+ "cadence":"7d",
+ "enabled":true,
+ "keep_n":null,
+ "older_than":null,
+ "name_regex":null,
+ "name_regex_keep":null,
+ "next_run_at":"2020-05-04T06:13:22.654Z"
+ },
+ "issues_enabled":true,
+ "merge_requests_enabled":true,
+ "wiki_enabled":true,
+ "jobs_enabled":true,
+ "snippets_enabled":true,
+ "can_create_merge_request_in":true,
+ "issues_access_level":"enabled",
+ "repository_access_level":"enabled",
+ "merge_requests_access_level":"enabled",
+ "forking_access_level":"enabled",
+ "wiki_access_level":"enabled",
+ "builds_access_level":"enabled",
+ "snippets_access_level":"enabled",
+ "pages_access_level":"enabled",
+ "emails_disabled":null,
+ "shared_runners_enabled":true,
+ "lfs_enabled":true,
+ "creator_id":1,
+ "import_status":"failed",
+ "open_issues_count":10,
+ "ci_default_git_depth":50,
+ "public_jobs":true,
+ "build_timeout":3600,
+ "auto_cancel_pending_pipelines":"enabled",
+ "build_coverage_regex":null,
+ "ci_config_path":null,
+ "shared_with_groups":[
+ {
+ "group_id":24,
+ "group_name":"Commit451",
+ "group_full_path":"Commit451",
+ "group_access_level":30,
+ "expires_at":null
+ }
+ ],
+ "only_allow_merge_if_pipeline_succeeds":false,
+ "request_access_enabled":true,
+ "only_allow_merge_if_all_discussions_are_resolved":false,
+ "remove_source_branch_after_merge":true,
+ "printing_merge_request_link_enabled":true,
+ "merge_method":"merge",
+ "suggestion_commit_message":null,
+ "auto_devops_enabled":true,
+ "auto_devops_deploy_strategy":"continuous",
+ "autoclose_referenced_issues":true,
+ "repository_storage":"default"
+ }
+]
+```
+
## Details of a group
Get all details of a group. This endpoint can be accessed without authentication
@@ -259,7 +392,11 @@ Parameters:
| ------------------------ | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user. |
| `with_custom_attributes` | boolean | no | Include [custom attributes](custom_attributes.md) in response (admins only). |
-| `with_projects` | boolean | no | Include details from projects that belong to the specified group (defaults to `true`). (Deprecated, [will be removed in 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213797). To get the details of all projects within a group, use the [list a group's projects endpoint](#list-a-groups-projects).) |
+| `with_projects` | boolean | no | Include details from projects that belong to the specified group (defaults to `true`). (Deprecated, [will be removed in API v5](https://gitlab.com/gitlab-org/gitlab/-/issues/213797). To get the details of all projects within a group, use the [list a group's projects endpoint](#list-a-groups-projects).) |
+
+NOTE: **Note:**
+The `projects` and `shared_projects` attributes in the response are deprecated and will be [removed in API v5](https://gitlab.com/gitlab-org/gitlab/-/issues/213797).
+To get the details of all projects within a group, use either the [list a group's projects](#list-a-groups-projects) or the [list a group's shared projects](#list-a-groups-shared-projects) endpoint.
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/4
@@ -290,7 +427,7 @@ Example response:
"file_template_project_id": 1,
"parent_id": null,
"created_at": "2020-01-15T12:36:29.590Z",
- "projects": [
+ "projects": [ // Deprecated and will be removed in API v5
{
"id": 7,
"description": "Voluptas veniam qui et beatae voluptas doloremque explicabo facilis.",
@@ -368,7 +505,7 @@ Example response:
"request_access_enabled": false
}
],
- "shared_projects": [
+ "shared_projects": [ // Deprecated and will be removed in API v5
{
"id": 8,
"description": "Velit eveniet provident fugiat saepe eligendi autem.",
@@ -571,6 +708,10 @@ PUT /groups/:id
| `shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Pipeline minutes quota for this group. |
| `extra_shared_runners_minutes_limit` | integer | no | **(STARTER ONLY)** Extra pipeline minutes quota for this group. |
+NOTE: **Note:**
+The `projects` and `shared_projects` attributes in the response are deprecated and will be [removed in API v5](https://gitlab.com/gitlab-org/gitlab/-/issues/213797).
+To get the details of all projects within a group, use either the [list a group's projects](#list-a-groups-projects) or the [list a group's shared projects](#list-a-groups-shared-projects) endpoint.
+
```shell
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5?name=Experimental"
```
@@ -582,10 +723,6 @@ This endpoint returns:
and later. To get the details of all projects within a group, use the
[list a group's projects endpoint](#list-a-groups-projects) instead.
-NOTE: **Note:**
-
-The `projects` and `shared_projects` attributes [will be deprecated in GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213797). To get the details of all projects within a group, use the [list a group's projects endpoint](#list-a-groups-projects) instead.
-
Example response:
```json
@@ -603,7 +740,7 @@ Example response:
"file_template_project_id": 1,
"parent_id": null,
"created_at": "2020-01-15T12:36:29.590Z",
- "projects": [
+ "projects": [ // Deprecated and will be removed in API v5
{
"id": 9,
"description": "foo",
@@ -944,8 +1081,6 @@ And to switch pages add:
/groups?per_page=100&page=2
```
-[ce-15142]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15142
-
## Group badges
Read more in the [Group Badges](group_badges.md) documentation.
diff --git a/doc/api/import.md b/doc/api/import.md
index 8db8dc7eea4..9640ba19cf9 100644
--- a/doc/api/import.md
+++ b/doc/api/import.md
@@ -12,8 +12,8 @@ POST /import/github
|------------|---------|----------|---------------------|
| `personal_access_token` | string | yes | GitHub personal access token |
| `repo_id` | integer | yes | GitHub repository ID |
-| `new_name` | string | no | New repo name |
-| `target_namespace` | string | yes | Namespace to import repo into |
+| `new_name` | string | no | New repository name |
+| `target_namespace` | string | yes | Namespace to import repository into |
```shell
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" --data "personal_access_token=abc123&repo_id=12345&target_namespace=root" https://gitlab.example.com/api/v4/import/github
diff --git a/doc/api/instance_level_ci_variables.md b/doc/api/instance_level_ci_variables.md
new file mode 100644
index 00000000000..d0871fdf4a7
--- /dev/null
+++ b/doc/api/instance_level_ci_variables.md
@@ -0,0 +1,162 @@
+# Instance-level CI/CD variables API
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14108) in GitLab 13.0
+> - It's deployed behind a feature flag, enabled by default.
+> - It's enabled on GitLab.com.
+> - It's recommended for production use.
+> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-instance-level-cicd-variables-core-only). **(CORE ONLY)**
+
+## List all instance variables
+
+Get the list of all instance-level variables.
+
+```plaintext
+GET /admin/ci/variables
+```
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables"
+```
+
+```json
+[
+ {
+ "key": "TEST_VARIABLE_1",
+ "variable_type": "env_var",
+ "value": "TEST_1",
+ "protected": false,
+ "masked": false
+ },
+ {
+ "key": "TEST_VARIABLE_2",
+ "variable_type": "env_var",
+ "value": "TEST_2",
+ "protected": false,
+ "masked": false
+ }
+]
+```
+
+## Show instance variable details
+
+Get the details of a specific instance-level variable.
+
+```plaintext
+GET /admin/ci/variables/:key
+```
+
+| Attribute | Type | required | Description |
+|-----------|---------|----------|-----------------------|
+| `key` | string | yes | The `key` of a variable |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/TEST_VARIABLE_1"
+```
+
+```json
+{
+ "key": "TEST_VARIABLE_1",
+ "variable_type": "env_var",
+ "value": "TEST_1",
+ "protected": false,
+ "masked": false
+}
+```
+
+## Create instance variable
+
+Create a new instance-level variable.
+
+NOTE: **Note:**
+The maximum number of instance-level variables is [planned to be 25](https://gitlab.com/gitlab-org/gitlab/-/issues/216097).
+
+```plaintext
+POST /admin/ci/variables
+```
+
+| Attribute | Type | required | Description |
+|-----------------|---------|----------|-----------------------|
+| `key` | string | yes | The `key` of a variable. Max 255 characters, only `A-Z`, `a-z`, `0-9`, and `_` are allowed. |
+| `value` | string | yes | The `value` of a variable. |
+| `variable_type` | string | no | The type of a variable. Available types are: `env_var` (default) and `file`. |
+| `protected` | boolean | no | Whether the variable is protected. |
+| `masked` | boolean | no | Whether the variable is masked. |
+
+```shell
+curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables" --form "key=NEW_VARIABLE" --form "value=new value"
+```
+
+```json
+{
+ "key": "NEW_VARIABLE",
+ "value": "new value",
+ "variable_type": "env_var",
+ "protected": false,
+ "masked": false
+}
+```
+
+## Update instance variable
+
+Update an instance-level variable.
+
+```plaintext
+PUT /admin/ci/variables/:key
+```
+
+| Attribute | Type | required | Description |
+|-----------------|---------|----------|-------------------------|
+| `key` | string | yes | The `key` of a variable. |
+| `value` | string | yes | The `value` of a variable. |
+| `variable_type` | string | no | The type of a variable. Available types are: `env_var` (default) and `file`. |
+| `protected` | boolean | no | Whether the variable is protected. |
+| `masked` | boolean | no | Whether the variable is masked. |
+
+```shell
+curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/NEW_VARIABLE" --form "value=updated value"
+```
+
+```json
+{
+ "key": "NEW_VARIABLE",
+ "value": "updated value",
+ "variable_type": "env_var",
+ "protected": true,
+ "masked": true
+}
+```
+
+## Remove instance variable
+
+Remove an instance-level variable.
+
+```plaintext
+DELETE /admin/ci/variables/:key
+```
+
+| Attribute | Type | required | Description |
+|-----------|---------|----------|-------------------------|
+| `key` | string | yes | The `key` of a variable |
+
+```shell
+curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/admin/ci/variables/VARIABLE_1"
+```
+
+### Enable or disable instance-level CI/CD variables **(CORE ONLY)**
+
+Instance-level CI/CD variables is under development but ready for production use.
+It is deployed behind a feature flag that is **enabled by default**.
+[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md)
+can opt to disable it for your instance.
+
+To disable it:
+
+```ruby
+Feature.disable(:ci_instance_level_variables)
+```
+
+To enable it:
+
+```ruby
+Feature.enable(:ci_instance_level_variables)
+```
diff --git a/doc/api/issues.md b/doc/api/issues.md
index 14f81d7d327..8e5882c4d4e 100644
--- a/doc/api/issues.md
+++ b/doc/api/issues.md
@@ -53,7 +53,7 @@ GET /issues?confidential=true
| `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 CE version `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. |
+| `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. |
| `iids[]` | integer array | no | Return only the issues having the given `iid` |
@@ -67,6 +67,7 @@ GET /issues?confidential=true
| `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 only from non-archived projects. If `false`, response will return issues from both archived and non-archived projects. Default is `true`. _(Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/197170))_ |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/issues
@@ -210,7 +211,7 @@ GET /groups/:id/issues?confidential=true
| `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 CE version `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. |
+| `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. |
| `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` |
@@ -365,7 +366,7 @@ GET /projects/:id/issues?confidential=true
| `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 CE version `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. |
+| `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. |
| `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` |
@@ -630,7 +631,7 @@ the `epic` property:
**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**: The `epic_iid` attribute is deprecated and [will be removed in 13.0](https://gitlab.com/gitlab-org/gitlab/issues/35157).
+**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
@@ -657,7 +658,7 @@ POST /projects/:id/issues
| `discussion_to_resolve` | string | no | The ID of a discussion to resolve. This will fill in the issue with a default description and mark the discussion as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. |
| `weight` **(STARTER)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. |
| `epic_id` **(ULTIMATE)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. |
-| `epic_iid` **(ULTIMATE)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in 13.0](https://gitlab.com/gitlab-org/gitlab/issues/35157)) |
+| `epic_iid` **(ULTIMATE)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/issues/35157)) |
```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/4/issues?title=Issues%20with%20auth&labels=bug
@@ -773,7 +774,7 @@ PUT /projects/:id/issues/:issue_iid
| `weight` **(STARTER)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. 0 |
| `discussion_locked` | boolean | no | Flag indicating if the issue's discussion is locked. If the discussion is locked only project members can add or edit comments. |
| `epic_id` **(ULTIMATE)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. |
-| `epic_iid` **(ULTIMATE)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in 13.0](https://gitlab.com/gitlab-org/gitlab/issues/35157)) |
+| `epic_iid` **(ULTIMATE)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [will be removed in version 5](https://gitlab.com/gitlab-org/gitlab/issues/35157)) |
```shell
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close
diff --git a/doc/api/issues_statistics.md b/doc/api/issues_statistics.md
index 699eda174d2..8db99e93f79 100644
--- a/doc/api/issues_statistics.md
+++ b/doc/api/issues_statistics.md
@@ -34,7 +34,7 @@ GET /issues_statistics?confidential=true
| `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`. |
| `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. |
-| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In CE version `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. |
+| `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. |
| `iids[]` | integer array | no | Return only the issues having the given `iid` |
| `search` | string | no | Search issues against their `title` and `description` |
@@ -92,7 +92,7 @@ GET /groups/:id/issues_statistics?confidential=true
| `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`. |
| `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. |
-| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In CE version `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. |
+| `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. |
| `search` | string | no | Search group issues against their `title` and `description` |
| `created_after` | datetime | no | Return issues created on or after the given time |
@@ -148,7 +148,7 @@ GET /projects/:id/issues_statistics?confidential=true
| `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`. |
| `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. |
-| `assignee_username` | string array | no | Return issues assigned to the given `username`. Similar to `assignee_id` and mutually exclusive with `assignee_id`. In CE version `assignee_username` array should only contain a single value or an invalid parameter error will be returned otherwise. |
+| `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. |
| `search` | string | no | Search project issues against their `title` and `description` |
| `created_after` | datetime | no | Return issues created on or after the given time |
diff --git a/doc/api/jobs.md b/doc/api/jobs.md
index 4827eafd790..c06dc56407c 100644
--- a/doc/api/jobs.md
+++ b/doc/api/jobs.md
@@ -345,7 +345,7 @@ Example of response
> **Notes**:
>
-> - [Introduced][ce-2893] in GitLab 8.5.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/2893) in GitLab 8.5.
> - The use of `CI_JOB_TOKEN` in the artifacts download API was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/2346)
> in [GitLab Premium](https://about.gitlab.com/pricing/) 9.5.
@@ -399,13 +399,11 @@ Possible response status codes:
| 200 | Serves the artifacts file. |
| 404 | Build not found or no artifacts.|
-[ce-2893]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/2893
-
## Download the artifacts archive
> **Notes**:
>
-> - [Introduced][ce-5347] in GitLab 8.10.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5347) in GitLab 8.10.
> - The use of `CI_JOB_TOKEN` in the artifacts download API was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/2346)
> in [GitLab Premium](https://about.gitlab.com/pricing/) 9.5.
@@ -466,8 +464,6 @@ Possible response status codes:
| 200 | Serves the artifacts file. |
| 404 | Build not found or no artifacts.|
-[ce-5347]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5347
-
## Download a single artifact file by job ID
> Introduced in GitLab 10.0
@@ -547,8 +543,8 @@ GET /projects/:id/jobs/:job_id/trace
| Attribute | Type | Required | Description |
|-----------|----------------|----------|------------------------------------------------------------------------------------------------------------------|
-| 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. |
+| `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. |
```shell
curl --location --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/jobs/8/trace"
diff --git a/doc/api/keys.md b/doc/api/keys.md
index d4eb1161a97..81ebd70be52 100644
--- a/doc/api/keys.md
+++ b/doc/api/keys.md
@@ -4,7 +4,7 @@
Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID of an SSH key.
-```text
+```plaintext
GET /keys/:id
```
@@ -63,7 +63,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/a
You can search for a user that owns a specific SSH key. Note only administrators can lookup SSH key with the fingerprint of an SSH key.
-```text
+```plaintext
GET /keys
```
diff --git a/doc/api/labels.md b/doc/api/labels.md
index e3f367daaca..3ced7da8ed5 100644
--- a/doc/api/labels.md
+++ b/doc/api/labels.md
@@ -7,6 +7,8 @@ The `description_html` - was added to response JSON in [GitLab 12.7](https://git
Get all labels for a given project.
+By default, this request returns 20 results at a time because the API results [are paginated](README.md#pagination).
+
```plaintext
GET /projects/:id/labels
```
@@ -109,7 +111,7 @@ GET /projects/:id/labels/:label_id
| Attribute | Type | Required | Description |
| --------- | ------- | -------- | --------------------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `label_id` | integer or string | yes | The ID or title of a group's label. |
+| `label_id` | integer or string | yes | The ID or title of a project's label. |
| `include_ancestor_groups` | boolean | no | Include ancestor groups. Defaults to `true`. |
```shell
diff --git a/doc/api/lint.md b/doc/api/lint.md
index 4ecce92df26..f0e4ad5655a 100644
--- a/doc/api/lint.md
+++ b/doc/api/lint.md
@@ -1,6 +1,6 @@
# Validate the `.gitlab-ci.yml` (API)
-> [Introduced][ce-5953] in GitLab 8.12.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5953) in GitLab 8.12.
Checks if your `.gitlab-ci.yml` file is valid.
@@ -47,5 +47,3 @@ Example responses:
"error": "content is missing"
}
```
-
-[ce-5953]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5953
diff --git a/doc/api/managed_licenses.md b/doc/api/managed_licenses.md
index 66125d23a82..13eb3a3fea7 100644
--- a/doc/api/managed_licenses.md
+++ b/doc/api/managed_licenses.md
@@ -90,7 +90,7 @@ Example response:
## Delete a managed license
-Deletes a managed license with a given id.
+Deletes a managed license with a given ID.
```plaintext
DELETE /projects/:id/managed_licenses/:managed_license_id
diff --git a/doc/api/members.md b/doc/api/members.md
index e9131e2d4c3..afeda7780d7 100644
--- a/doc/api/members.md
+++ b/doc/api/members.md
@@ -282,6 +282,78 @@ Example response:
}
```
+### Set override flag for a member of a group
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4875) in GitLab 12.10.
+
+By default, the access level of LDAP group members is set to the value specified
+by LDAP through Group Sync. You can allow access level overrides by calling this endpoint.
+
+```plaintext
+POST /groups/:id/members/:user_id/override
+```
+
+| Attribute | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `user_id` | integer | yes | The user ID of the member |
+
+```bash
+curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "username": "raymond_smith",
+ "name": "Raymond Smith",
+ "state": "active",
+ "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
+ "web_url": "http://192.168.1.8:3000/root",
+ "expires_at": "2012-10-22T14:13:35Z",
+ "access_level": 40,
+ "override": true
+}
+```
+
+### Remove override for a member of a group
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/4875) in GitLab 12.10.
+
+Sets the override flag to false and allows LDAP Group Sync to reset the access
+level to the LDAP-prescribed value.
+
+```plaintext
+DELETE /groups/:id/members/:user_id/override
+```
+
+| Attribute | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
+| `user_id` | integer | yes | The user ID of the member |
+
+```bash
+curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "username": "raymond_smith",
+ "name": "Raymond Smith",
+ "state": "active",
+ "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
+ "web_url": "http://192.168.1.8:3000/root",
+ "expires_at": "2012-10-22T14:13:35Z",
+ "access_level": 40,
+ "override": false
+}
+```
+
## Remove a member from a group or project
Removes a user from a group or project.
diff --git a/doc/api/merge_request_approvals.md b/doc/api/merge_request_approvals.md
index 84f5e41496c..c07e52451d2 100644
--- a/doc/api/merge_request_approvals.md
+++ b/doc/api/merge_request_approvals.md
@@ -51,7 +51,7 @@ POST /projects/:id/approvals
| `approvals_before_merge` | integer | no | How many approvals are required before an MR can be merged. Deprecated in 12.0 in favor of Approval Rules API. |
| `reset_approvals_on_push` | boolean | no | Reset approvals on a new push |
| `disable_overriding_approvers_per_merge_request` | boolean | no | Allow/Disallow overriding approvers per MR |
-| `merge_requests_author_approval` | boolean | no | Allow/Disallow authors from self approving merge requests; `true` means authors cannot self approve |
+| `merge_requests_author_approval` | boolean | no | Allow/Disallow authors from self approving merge requests; `true` means authors can self approve |
| `merge_requests_disable_committers_approval` | boolean | no | Allow/Disallow committers from self approving merge requests |
| `require_password_to_approve` | boolean | no | Require approver to enter a password in order to authenticate before adding the approval |
diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md
index b0ffeae2b55..3834bb6fee3 100644
--- a/doc/api/merge_requests.md
+++ b/doc/api/merge_requests.md
@@ -12,7 +12,7 @@ NOTE: **Note**
## List merge requests
-> [Introduced][ce-13060] in GitLab 9.5.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5.
Get all merge requests the authenticated user has access to. By
default it returns only merge requests created by the current user. To
@@ -47,17 +47,18 @@ Parameters:
| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request |
| `labels` | string | no | Return merge requests matching a comma separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. `No+Label` (Deprecated) lists all merge requests with no labels. Predefined names are case-insensitive. |
| `with_labels_details` | boolean | no | If `true`, response will return more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) |
+| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) |
| `created_after` | datetime | no | Return merge requests created on or after the given time |
| `created_before` | datetime | no | Return merge requests created on or before the given time |
| `updated_after` | datetime | no | Return merge requests updated on or after the given time |
| `updated_before` | datetime | no | Return merge requests updated on or before the given time |
| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`. Defaults to `created_by_me`<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead. |
| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`
-| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced][ce-13060] in GitLab 12.10)_ | |
+| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10)_ | |
| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. |
| `approver_ids` **(STARTER)** | integer array | no | Returns merge requests which have specified all the users with the given `id`s as individual approvers. `None` returns merge requests without approvers. `Any` returns merge requests with an approver. |
| `approved_by_ids` **(STARTER)** | integer array | no | Returns merge requests which have been approved by all the users with the given `id`s (Max: 5). `None` returns merge requests with no approvals. `Any` returns merge requests with an approval. |
-| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced][ce-14016] in GitLab 10.0)_ |
+| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ |
| `source_branch` | string | no | Return merge requests with the given source branch |
| `target_branch` | string | no | Return merge requests with the given target branch |
| `search` | string | no | Search merge requests against their `title` and `description` |
@@ -65,6 +66,13 @@ Parameters:
| `wip` | string | no | Filter merge requests against their `wip` status. `yes` to return *only* WIP merge requests, `no` to return *non* WIP merge requests |
NOTE: **Note:**
+[Starting in GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890),
+listing merge requests may not proactively update the `merge_status` field
+(which also affects the `has_conflicts` field), as this can be an expensive
+operation. If you are interested in the value of these fields from this
+endpoint, set the `with_merge_status_recheck` parameter to `true` in the query.
+
+NOTE: **Note:**
[Starting in GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/issues/29984),
when `async_merge_request_check_mergeability` feature flag is enabled, the
mergeability (`merge_status`) of each merge request will be checked
@@ -227,17 +235,18 @@ Parameters:
| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request |
| `labels` | string | no | Return merge requests matching a comma separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. `No+Label` (Deprecated) lists all merge requests with no labels. Predefined names are case-insensitive. |
| `with_labels_details` | boolean | no | If `true`, response will return more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) |
+| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) |
| `created_after` | datetime | no | Return merge requests created on or after the given time |
| `created_before` | datetime | no | Return merge requests created on or before the given time |
| `updated_after` | datetime | no | Return merge requests updated on or after the given time |
| `updated_before` | datetime | no | Return merge requests updated on or before the given time |
-| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead.<br> _([Introduced][ce-13060] in GitLab 9.5. [Changed to snake_case][ce-18935] in GitLab 11.0)_ |
-| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. _([Introduced][ce-13060] in GitLab 9.5)_
-| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced][ce-13060] in GitLab 12.10)_ | |
-| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. _([Introduced][ce-13060] in GitLab 9.5)_ |
+| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead.<br> _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5. [Changed to snake_case](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935) in GitLab 11.0)_ |
+| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_
+| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10)_ | |
+| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_ |
| `approver_ids` **(STARTER)** | integer array | no | Returns merge requests which have specified all the users with the given `id`s as individual approvers. `None` returns merge requests without approvers. `Any` returns merge requests with an approver. |
| `approved_by_ids` **(STARTER)** | integer array | no | Returns merge requests which have been approved by all the users with the given `id`s (Max: 5). `None` returns merge requests with no approvals. `Any` returns merge requests with an approval. |
-| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced][ce-14016] in GitLab 10.0)_ |
+| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ |
| `source_branch` | string | no | Return merge requests with the given source branch |
| `target_branch` | string | no | Return merge requests with the given target branch |
| `search` | string | no | Search merge requests against their `title` and `description` |
@@ -390,17 +399,18 @@ Parameters:
| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request |
| `labels` | string | no | Return merge requests matching a comma separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. `No+Label` (Deprecated) lists all merge requests with no labels. Predefined names are case-insensitive. |
| `with_labels_details` | boolean | no | If `true`, response will return more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413)|
+| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) |
| `created_after` | datetime | no | Return merge requests created on or after the given time |
| `created_before` | datetime | no | Return merge requests created on or before the given time |
| `updated_after` | datetime | no | Return merge requests updated on or after the given time |
| `updated_before` | datetime | no | Return merge requests updated on or before the given time |
| `scope` | string | no | Return merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> |
-| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. _([Introduced][ce-13060] in GitLab 9.5)_
-| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced][ce-13060] in GitLab 12.10)_ | |
-| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. _([Introduced][ce-13060] in GitLab 9.5)_ |
+| `author_id` | integer | no | Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_
+| `author_username` | string | no | Returns merge requests created by the given `username`. Mutually exclusive with `author_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 12.10)_ | |
+| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any` returns merge requests with an assignee. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060) in GitLab 9.5)_ |
| `approver_ids` **(STARTER)** | integer array | no | Returns merge requests which have specified all the users with the given `id`s as individual approvers. `None` returns merge requests without approvers. `Any` returns merge requests with an approver. |
| `approved_by_ids` **(STARTER)** | integer array | no | Returns merge requests which have been approved by all the users with the given `id`s (Max: 5). `None` returns merge requests with no approvals. `Any` returns merge requests with an approval. |
-| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced][ce-14016] in GitLab 10.0)_ |
+| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ |
| `source_branch` | string | no | Return merge requests with the given source branch |
| `target_branch` | string | no | Return merge requests with the given target branch |
| `search` | string | no | Search merge requests against their `title` and `description` |
@@ -871,7 +881,7 @@ Parameters:
## List MR pipelines
-> [Introduced][ce-15454] in GitLab 10.5.0.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15454) in GitLab 10.5.0.
Get a list of merge request pipelines.
@@ -972,7 +982,7 @@ POST /projects/:id/merge_requests
| `assignee_id` | integer | no | Assignee user ID |
| `assignee_ids` | integer array | no | The ID of the user(s) to assign the MR to. Set to `0` or provide an empty value to unassign all assignees. |
| `description` | string | no | Description of MR. Limited to 1,048,576 characters. |
-| `target_project_id` | integer | no | The target project (numeric id) |
+| `target_project_id` | integer | no | The target project (numeric ID) |
| `labels` | string | no | Labels for MR as a comma-separated list |
| `milestone_id` | integer | no | The global ID of a milestone |
| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging |
@@ -1130,6 +1140,8 @@ PUT /projects/:id/merge_requests/:merge_request_iid
| `assignee_ids` | integer array | no | The ID of the user(s) to assign the MR to. Set to `0` or provide an empty value to unassign all assignees. |
| `milestone_id` | integer | no | The global ID of a milestone to assign the merge request to. Set to `0` or provide an empty value to unassign a milestone.|
| `labels` | string | no | Comma-separated label names for a merge request. Set to an empty string to unassign all labels. |
+| `add_labels` | string | no | Comma-separated label names to add to a merge request. |
+| `remove_labels` | string | no | Comma-separated label names to remove from a merge request. |
| `description` | string | no | Description of MR. Limited to 1,048,576 characters. |
| `state_event` | string | no | New state (close/reopen) |
| `remove_source_branch` | boolean | no | Flag indicating if a merge request should remove the source branch when merging |
@@ -2435,11 +2447,6 @@ Example response:
}
```
-[ce-13060]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13060
-[ce-14016]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016
-[ce-15454]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15454
-[ce-18935]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935
-
## Approvals **(STARTER)**
For approvals, please see [Merge Request Approvals](merge_request_approvals.md)
diff --git a/doc/api/metrics_dashboard_annotations.md b/doc/api/metrics_dashboard_annotations.md
index d8a018fe6c3..09187a096ef 100644
--- a/doc/api/metrics_dashboard_annotations.md
+++ b/doc/api/metrics_dashboard_annotations.md
@@ -4,22 +4,16 @@
Metrics dashboard annotations allow you to indicate events on your graphs at a single point in time or over a timespan.
-## Enable the metrics dashboard annotations API
-
-The `:metrics_dashboard_annotations` feature flag is disabled by default.
-To turn on this API, ask a GitLab administrator with Rails console
-access to run the following command:
-
-```ruby
-Feature.enable(:metrics_dashboard_annotations)
-```
-
## Create a new annotation
```plaintext
POST /environments/:id/metrics_dashboard/annotations/
+POST /clusters/:id/metrics_dashboard/annotations/
```
+NOTE: **Note:**
+The value of `dashboard_path` will be treated as a CGI-escaped path, and automatically unescaped.
+
Parameters:
| Attribute | Type | Required | Description |
diff --git a/doc/api/metrics_user_starred_dashboards.md b/doc/api/metrics_user_starred_dashboards.md
new file mode 100644
index 00000000000..dd9144d1319
--- /dev/null
+++ b/doc/api/metrics_user_starred_dashboards.md
@@ -0,0 +1,61 @@
+# User-starred metrics dashboards API
+
+The starred dashboard feature makes navigating to frequently-used dashboards easier
+by displaying favorited dashboards at the top of the select list.
+
+## Add a star to a dashboard
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31316) in GitLab 13.0.
+
+```plaintext
+POST /projects/:id/metrics/user_starred_dashboards
+```
+
+Parameters:
+
+| Attribute | Type | Required | Description |
+|:---------------|:---------------|:---------|:-----------------------------------------------------------------------------|
+| `dashboard_path` | string | yes | URL-encoded path to file defining the dashboard which should be marked as favorite. |
+
+```shell
+curl --header 'Private-Token: <your_access_token>' https://gitlab.example.com/api/v4/projects/20/metrics/user_starred_dashboards \
+ --data-urlencode "dashboard_path=config/prometheus/dashboards/common_metrics.yml"
+```
+
+Example Response:
+
+```json
+{
+ "id": 5,
+ "dashboard_path": "config/prometheus/common_metrics.yml",
+ "user_id": 1,
+ "project_id": 20
+}
+```
+
+## Remove a star from a dashboard
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31892) in GitLab 13.0.
+
+```plaintext
+DELETE /projects/:id/metrics/user_starred_dashboards
+```
+
+Parameters:
+
+| Attribute | Type | Required | Description |
+|:---------------|:---------------|:---------|:-----------------------------------------------------------------------------|
+| `dashboard_path` | string | no | URL-encoded path to file defining the dashboard which should no longer be marked as favorite. When not supplied all dashboards within given projects will be removed from favorites. |
+
+```shell
+curl --request DELETE --header 'Private-Token: <your_access_token>' https://gitlab.example.com/api/v4/projects/20/metrics/user_starred_dashboards \
+ --data-urlencode "dashboard_path=config/prometheus/dashboards/common_metrics.yml"
+```
+
+Example Response:
+
+```json
+{
+ "deleted_rows": 1
+}
+```
diff --git a/doc/api/oauth2.md b/doc/api/oauth2.md
index 959773b217d..a146fdd0d0c 100644
--- a/doc/api/oauth2.md
+++ b/doc/api/oauth2.md
@@ -4,7 +4,7 @@ This document covers using the [OAuth2](https://oauth.net/2/) protocol to allow
other services to access GitLab resources on user's behalf.
If you want GitLab to be an OAuth authentication service provider to sign into
-other services, see the [OAuth2 provider](../integration/oauth_provider.md)
+other services, see the [OAuth2 authentication service provider](../integration/oauth_provider.md)
documentation. This functionality is based on the
[doorkeeper Ruby gem](https://github.com/doorkeeper-gem/doorkeeper).
diff --git a/doc/api/packages.md b/doc/api/packages.md
index 8671de006d2..784343d29fd 100644
--- a/doc/api/packages.md
+++ b/doc/api/packages.md
@@ -68,6 +68,7 @@ GET /groups/:id/packages
| `order_by`| string | no | The field to use as order. One of `created_at` (default), `name`, `version`, `type`, or `project_path`. |
| `sort` | string | no | The direction of the order, either `asc` (default) for ascending order or `desc` for descending order. |
| `package_type` | string | no | Filter the returned packages by type. One of `conan`, `maven`, `npm`, `pypi` or `nuget`. (_Introduced in GitLab 12.9_) |
+| `package_name` | string | no | Filter the project packages with a fuzzy search by name. (_[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30980) in GitLab 13.0_)
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/:id/packages?exclude_subgroups=true
@@ -187,7 +188,27 @@ Example response:
"name": "Administrator",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
}
- }
+ },
+ "versions": [
+ {
+ "id":2,
+ "version":"2.0-SNAPSHOT",
+ "created_at":"2020-04-28T04:42:11.573Z",
+ "pipeline": {
+ "id": 234,
+ "status": "pending",
+ "ref": "new-pipeline",
+ "sha": "a91957a858320c0e17f3a0eca7cfacbff50ea29a",
+ "web_url": "https://example.com/foo/bar/pipelines/58",
+ "created_at": "2016-08-11T11:28:34.085Z",
+ "updated_at": "2016-08-11T11:32:35.169Z",
+ "user": {
+ "name": "Administrator",
+ "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
+ }
+ }
+ }
+ ]
}
```
diff --git a/doc/api/pages.md b/doc/api/pages.md
index 627c1b284f4..db39ab04d9d 100644
--- a/doc/api/pages.md
+++ b/doc/api/pages.md
@@ -8,7 +8,7 @@ The GitLab Pages feature must be enabled to use these endpoints. Find out more a
Remove pages. The user must have admin privileges.
-```text
+```plaintext
DELETE /projects/:id/pages
```
diff --git a/doc/api/pages_domains.md b/doc/api/pages_domains.md
index 8a047afc3b0..43bb5a9b774 100644
--- a/doc/api/pages_domains.md
+++ b/doc/api/pages_domains.md
@@ -8,7 +8,7 @@ The GitLab Pages feature must be enabled to use these endpoints. Find out more a
Get a list of all pages domains. The user must have admin permissions.
-```text
+```plaintext
GET /pages/domains
```
@@ -35,7 +35,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/ap
Get a list of project pages domains. The user must have permissions to view pages domains.
-```text
+```plaintext
GET /projects/:id/pages/domains
```
@@ -71,7 +71,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/ap
Get a single project pages domain. The user must have permissions to view pages domains.
-```text
+```plaintext
GET /projects/:id/pages/domains/:domain
```
@@ -113,7 +113,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/ap
Creates a new pages domain. The user must have permissions to create new pages domains.
-```text
+```plaintext
POST /projects/:id/pages/domains
```
@@ -155,7 +155,7 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain
Updates an existing project pages domain. The user must have permissions to change an existing pages domains.
-```text
+```plaintext
PUT /projects/:id/pages/domains/:domain
```
@@ -225,7 +225,7 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "certifi
Deletes an existing project pages domain.
-```text
+```plaintext
DELETE /projects/:id/pages/domains/:domain
```
diff --git a/doc/api/pipeline_schedules.md b/doc/api/pipeline_schedules.md
index 859e88d0945..36a18411ceb 100644
--- a/doc/api/pipeline_schedules.md
+++ b/doc/api/pipeline_schedules.md
@@ -54,7 +54,7 @@ GET /projects/:id/pipeline_schedules/:pipeline_schedule_id
| Attribute | Type | required | Description |
|--------------|---------|----------|--------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
```shell
curl --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13"
@@ -150,7 +150,7 @@ PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id
| Attribute | Type | required | Description |
|---------------|---------|----------|--------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
| `description` | string | no | The description of pipeline schedule |
| `ref` | string | no | The branch/tag name will be triggered |
| `cron` | string | no | The cron (e.g. `0 1 * * *`) ([Cron syntax](https://en.wikipedia.org/wiki/Cron)) |
@@ -200,7 +200,7 @@ POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/take_ownership
| 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 |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
```shell
curl --request POST --header "PRIVATE-TOKEN: hf2CvZXB9w8Uc5pZKpSB" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13/take_ownership"
@@ -245,7 +245,7 @@ DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id
| Attribute | Type | required | Description |
|----------------|---------|----------|--------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
```shell
curl --request DELETE --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13"
@@ -286,18 +286,18 @@ curl --request DELETE --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gi
Trigger a new scheduled pipeline, which runs immediately. The next scheduled run
of this pipeline is not affected.
-```text
+```plaintext
POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/play
```
| 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 |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
Example request:
-```sh
+```shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/42/pipeline_schedules/1/play
```
@@ -324,7 +324,7 @@ POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables
| 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 |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
| `key` | string | yes | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed |
| `value` | string | yes | The `value` of a variable |
| `variable_type` | string | no | The type of a variable. Available types are: `env_var` (default) and `file` |
@@ -352,7 +352,7 @@ PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key
| 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 |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
| `key` | string | yes | The `key` of a variable |
| `value` | string | yes | The `value` of a variable |
| `variable_type` | string | no | The type of a variable. Available types are: `env_var` (default) and `file` |
@@ -380,7 +380,7 @@ DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key
| 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 |
-| `pipeline_schedule_id` | integer | yes | The pipeline schedule id |
+| `pipeline_schedule_id` | integer | yes | The pipeline schedule ID |
| `key` | string | yes | The `key` of a variable |
```shell
diff --git a/doc/api/pipeline_triggers.md b/doc/api/pipeline_triggers.md
index 55c6e37c164..1a63a04be71 100644
--- a/doc/api/pipeline_triggers.md
+++ b/doc/api/pipeline_triggers.md
@@ -43,7 +43,7 @@ GET /projects/:id/triggers/:trigger_id
| Attribute | Type | required | Description |
|--------------|---------|----------|--------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `trigger_id` | integer | yes | The trigger id |
+| `trigger_id` | integer | yes | The trigger ID |
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/triggers/5"
@@ -101,7 +101,7 @@ PUT /projects/:id/triggers/:trigger_id
| Attribute | Type | required | Description |
|---------------|---------|----------|--------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `trigger_id` | integer | yes | The trigger id |
+| `trigger_id` | integer | yes | The trigger ID |
| `description` | string | no | The trigger name |
```shell
@@ -131,7 +131,7 @@ DELETE /projects/:id/triggers/:trigger_id
| Attribute | Type | required | Description |
|----------------|---------|----------|--------------------------|
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
-| `trigger_id` | integer | yes | The trigger id |
+| `trigger_id` | integer | yes | The trigger ID |
```shell
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/triggers/5"
diff --git a/doc/api/pipelines.md b/doc/api/pipelines.md
index 5b67df14ace..e84d7663bdb 100644
--- a/doc/api/pipelines.md
+++ b/doc/api/pipelines.md
@@ -1,5 +1,12 @@
# Pipelines API
+## Pipelines pagination
+
+By default, `GET` requests return 20 results at a time because the API results
+are paginated.
+
+Read more on [pagination](README.md#pagination).
+
## List project pipelines
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5837) in GitLab 8.11
@@ -130,6 +137,62 @@ Example of response
]
```
+### Get a pipeline's test report
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/202525) in GitLab 13.0.
+
+CAUTION: **Caution:**
+This API route is part of the [JUnit test report](../ci/junit_test_reports.md) feature. It is protected by a [feature flag](../development/feature_flags/index.md) that is **disabled** due to performance issues with very large data sets. See [the documentation for the feature](../ci/junit_test_reports.md#enabling-the-feature) for further details.
+
+```plaintext
+GET /projects/:id/pipelines/:pipeline_id/test_report
+```
+
+| 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 |
+| `pipeline_id` | integer | yes | The ID of a pipeline |
+
+Sample request:
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/pipelines/46/test_report"
+```
+
+Sample response:
+
+```json
+{
+ "total_time": 5,
+ "total_count": 1,
+ "success_count": 1,
+ "failed_count": 0,
+ "skipped_count": 0,
+ "error_count": 0,
+ "test_suites": [
+ {
+ "name": "Secure",
+ "total_time": 5,
+ "total_count": 1,
+ "success_count": 1,
+ "failed_count": 0,
+ "skipped_count": 0,
+ "error_count": 0,
+ "test_cases": [
+ {
+ "status": "success",
+ "name": "Security Reports can create an auto-remediation MR",
+ "classname": "vulnerability_management_spec",
+ "execution_time": 5,
+ "system_output": null,
+ "stack_trace": null
+ }
+ ]
+ }
+ ]
+}
+```
+
## Create a new pipeline
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/7209) in GitLab 8.14
@@ -225,7 +288,7 @@ Response:
}
```
-## Cancel a pipelines jobs
+## Cancel a pipeline's jobs
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5837) in GitLab 8.11
diff --git a/doc/api/project_badges.md b/doc/api/project_badges.md
index 4afb898eb91..4adeb50deca 100644
--- a/doc/api/project_badges.md
+++ b/doc/api/project_badges.md
@@ -7,7 +7,7 @@
Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:
- **%{project_path}**: will be replaced by the project path.
-- **%{project_id}**: will be replaced by the project id.
+- **%{project_id}**: will be replaced by the project ID.
- **%{default_branch}**: will be replaced by the project default branch.
- **%{commit_sha}**: will be replaced by the last project's commit sha.
diff --git a/doc/api/project_import_export.md b/doc/api/project_import_export.md
index 21a90670aa6..ae2fbcec0ff 100644
--- a/doc/api/project_import_export.md
+++ b/doc/api/project_import_export.md
@@ -18,7 +18,7 @@ data file uploads to the final server.
From GitLab 10.7, the `upload[url]` parameter is required if the `upload` parameter is present.
-```text
+```plaintext
POST /projects/:id/export
```
@@ -42,11 +42,14 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab
}
```
+NOTE: **Note:**
+The upload request will be sent with `Content-Type: application/gzip` header. Ensure that your pre-signed URL includes this as part of the signature.
+
## Export status
Get the status of export.
-```text
+```plaintext
GET /projects/:id/export
```
@@ -99,7 +102,7 @@ an email notifying the user to download the file, uploading the exported file to
Download the finished export.
-```text
+```plaintext
GET /projects/:id/export/download
```
@@ -118,7 +121,7 @@ ls *export.tar.gz
## Import a file
-```text
+```plaintext
POST /projects/import
```
@@ -182,7 +185,7 @@ requests.post(url, headers=headers, data=data, files=files)
Get the status of an import.
-```text
+```plaintext
GET /projects/:id/import
```
diff --git a/doc/api/project_repository_storage_moves.md b/doc/api/project_repository_storage_moves.md
new file mode 100644
index 00000000000..8df472f193f
--- /dev/null
+++ b/doc/api/project_repository_storage_moves.md
@@ -0,0 +1,80 @@
+# Project repository storage move API
+
+> [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.
+
+## Retrieve all project repository storage moves
+
+```plaintext
+GET /project_repository_storage_moves
+```
+
+By default, `GET` requests return 20 results at a time because the API results
+are [paginated](README.md#pagination).
+
+Example request:
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://primary.example.com/api/v4/project_repository_storage_moves'
+```
+
+Example response:
+
+```json
+[
+ {
+ "id": 1,
+ "created_at": "2020-05-07T04:27:17.234Z",
+ "state": "scheduled",
+ "source_storage_name": "default",
+ "destination_storage_name": "storage2",
+ "project": {
+ "id": 1,
+ "description": null,
+ "name": "project1",
+ "name_with_namespace": "John Doe2 / project1",
+ "path": "project1",
+ "path_with_namespace": "namespace1/project1",
+ "created_at": "2020-05-07T04:27:17.016Z"
+ }
+]
+```
+
+## Get a single project repository storage move
+
+```plaintext
+GET /project_repository_storage_moves/:id
+```
+
+Parameters:
+
+| Attribute | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `id` | integer | yes | The ID of the project repository storage move |
+
+Example request:
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://primary.example.com/api/v4/project_repository_storage_moves/1'
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "created_at": "2020-05-07T04:27:17.234Z",
+ "state": "scheduled",
+ "source_storage_name": "default",
+ "destination_storage_name": "storage2",
+ "project": {
+ "id": 1,
+ "description": null,
+ "name": "project1",
+ "name_with_namespace": "John Doe2 / project1",
+ "path": "project1",
+ "path_with_namespace": "namespace1/project1",
+ "created_at": "2020-05-07T04:27:17.016Z"
+}
+```
diff --git a/doc/api/project_snippets.md b/doc/api/project_snippets.md
index 9a37c675615..e435f87dcdb 100644
--- a/doc/api/project_snippets.md
+++ b/doc/api/project_snippets.md
@@ -60,7 +60,9 @@ Parameters:
},
"updated_at": "2012-06-28T10:52:04Z",
"created_at": "2012-06-28T10:52:04Z",
- "web_url": "http://example.com/example/example/snippets/1"
+ "project_id": 1,
+ "web_url": "http://example.com/example/example/snippets/1",
+ "raw_url": "http://example.com/example/example/snippets/1/raw"
}
```
diff --git a/doc/api/projects.md b/doc/api/projects.md
index 16c8569349c..8cb8961bafa 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -9,10 +9,8 @@ Values for the project visibility level are:
- `private`:
Project access must be granted explicitly for each user.
-
- `internal`:
The project can be cloned by any logged in user.
-
- `public`:
The project can be accessed without any authentication.
@@ -22,11 +20,9 @@ There are currently 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.
-
- `rebase_merge`:
A merge commit is created for every merge, but merging is only allowed if fast-forward merge is possible.
This way you could make sure that if this merge request would build, after merging to target branch it would also build.
-
- `ff`:
No merge commits are created and all merges are fast-forwarded, which means that merging is only allowed if the branch could be fast-forwarded.
@@ -162,7 +158,7 @@ When the user is authenticated and `simple` is not set this returns something li
"merge_method": "merge",
"autoclose_referenced_issues": true,
"suggestion_commit_message": null,
- "marked_for_deletion_at": "2020-04-03", // to be deprecated in GitLab 13.0 in favor of marked_for_deletion_on
+ "marked_for_deletion_at": "2020-04-03", // Deprecated and will be removed in API v5 in favor of marked_for_deletion_on
"marked_for_deletion_on": "2020-04-03",
"statistics": {
"commit_count": 37,
@@ -288,7 +284,7 @@ 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 will be deprecated in GitLab 13.0 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
the `approvals_before_merge` parameter:
@@ -411,7 +407,7 @@ This endpoint supports [keyset pagination](README.md#keyset-based-pagination) fo
"merge_method": "merge",
"autoclose_referenced_issues": true,
"suggestion_commit_message": null,
- "marked_for_deletion_at": "2020-04-03", // to be deprecated in GitLab 13.0 in favor of marked_for_deletion_on
+ "marked_for_deletion_at": "2020-04-03", // Deprecated and will be removed in API v5 in favor of marked_for_deletion_on
"marked_for_deletion_on": "2020-04-03",
"statistics": {
"commit_count": 37,
@@ -798,7 +794,9 @@ GET /projects/:id
"enabled": false,
"keep_n": null,
"older_than": null,
- "name_regex": null,
+ "name_regex": null, // to be deprecated in GitLab 13.0 in favor of `name_regex_delete`
+ "name_regex_delete": null,
+ "name_regex_keep": null,
"next_run_at": "2020-01-07T21:42:58.658Z"
},
"created_at": "2013-09-30T13:46:02Z",
@@ -877,7 +875,7 @@ GET /projects/:id
"service_desk_address": null,
"autoclose_referenced_issues": true,
"suggestion_commit_message": null,
- "marked_for_deletion_at": "2020-04-03", // to be deprecated in GitLab 13.0 in favor of marked_for_deletion_on
+ "marked_for_deletion_at": "2020-04-03", // Deprecated and will be removed in API v5 in favor of marked_for_deletion_on
"marked_for_deletion_on": "2020-04-03",
"statistics": {
"commit_count": 37,
@@ -912,7 +910,7 @@ the `approvals_before_merge` parameter:
}
```
-**Note**: The `web_url` and `avatar_url` attributes on `namespace` were [introduced][ce-27427] in GitLab 11.11.
+**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.
@@ -1031,9 +1029,10 @@ POST /projects
| `snippets_access_level` | string | no | One of `disabled`, `private` or `enabled` |
| `pages_access_level` | string | no | One of `disabled`, `private`, `enabled` or `public` |
| `emails_disabled` | boolean | no | Disable email notifications |
+| `show_default_award_emojis` | boolean | no | Show default award emojis |
| `resolve_outdated_diff_discussions` | boolean | no | Automatically resolve merge request diffs discussions on lines changed with a push |
| `container_registry_enabled` | boolean | no | Enable container registry for this project |
-| `container_expiration_policy_attributes` | hash | no | Update the container expiration policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `enabled` (boolean) |
+| `container_expiration_policy_attributes` | hash | no | Update the image expiration policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean) |
| `shared_runners_enabled` | boolean | no | Enable shared runners for this project |
| `visibility` | string | no | See [project visibility level](#project-visibility-level) |
| `import_url` | string | no | URL to import repository from |
@@ -1100,6 +1099,7 @@ POST /projects/user/:user_id
| `snippets_access_level` | string | no | One of `disabled`, `private` or `enabled` |
| `pages_access_level` | string | no | One of `disabled`, `private`, `enabled` or `public` |
| `emails_disabled` | boolean | no | Disable email notifications |
+| `show_default_award_emojis` | boolean | no | Show default award emojis |
| `resolve_outdated_diff_discussions` | boolean | no | Automatically resolve merge request diffs discussions on lines changed with a push |
| `container_registry_enabled` | boolean | no | Enable container registry for this project |
| `shared_runners_enabled` | boolean | no | Enable shared runners for this project |
@@ -1168,9 +1168,10 @@ PUT /projects/:id
| `snippets_access_level` | string | no | One of `disabled`, `private` or `enabled` |
| `pages_access_level` | string | no | One of `disabled`, `private`, `enabled` or `public` |
| `emails_disabled` | boolean | no | Disable email notifications |
+| `show_default_award_emojis` | boolean | no | Show default award emojis |
| `resolve_outdated_diff_discussions` | boolean | no | Automatically resolve merge request diffs discussions on lines changed with a push |
| `container_registry_enabled` | boolean | no | Enable container registry for this project |
-| `container_expiration_policy_attributes` | hash | no | Update the container expiration policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `enabled` (boolean) |
+| `container_expiration_policy_attributes` | hash | no | Update the image expiration policy for this project. Accepts: `cadence` (string), `keep_n` (string), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean) |
| `shared_runners_enabled` | boolean | no | Enable shared runners for this project |
| `visibility` | string | no | See [project visibility level](#project-visibility-level) |
| `import_url` | string | no | URL to import repository from |
@@ -2252,5 +2253,3 @@ GET /projects/:id/snapshot
| --------- | ---- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `wiki` | boolean | no | Whether to download the wiki, rather than project, repository |
-
-[ce-27427]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/27427
diff --git a/doc/api/releases/index.md b/doc/api/releases/index.md
index 47cef0e5fa0..9c3cac3c64f 100644
--- a/doc/api/releases/index.md
+++ b/doc/api/releases/index.md
@@ -96,7 +96,6 @@ Example response:
],
"commit_path":"/root/awesome-app/commit/588440f66559714280628a4f9799f0c4eb880a4a",
"tag_path":"/root/awesome-app/-/tags/v0.11.1",
- "evidence_sha":"760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d",
"assets":{
"count":6,
"sources":[
@@ -133,6 +132,13 @@ Example response:
],
"evidence_file_path":"https://gitlab.example.com/root/awesome-app/-/releases/v0.2/evidence.json"
},
+ "evidences":[
+ {
+ sha: "760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d",
+ filepath: "https://gitlab.example.com/root/awesome-app/-/releases/v0.2/evidence.json",
+ collected_at: "2019-01-03T01:56:19.539Z"
+ }
+ ]
},
{
"tag_name":"v0.1",
@@ -165,7 +171,6 @@ Example response:
"committer_email":"admin@example.com",
"committed_date":"2019-01-03T01:53:28.000Z"
},
- "evidence_sha":"760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d",
"assets":{
"count":4,
"sources":[
@@ -191,6 +196,13 @@ Example response:
],
"evidence_file_path":"https://gitlab.example.com/root/awesome-app/-/releases/v0.1/evidence.json"
},
+ "evidences":[
+ {
+ sha: "c3ffedec13af470e760d6cdfb08790f71cf52c6cde4d",
+ filepath: "https://gitlab.example.com/root/awesome-app/-/releases/v0.1/evidence.json",
+ collected_at: "2019-01-03T01:55:18.203Z"
+ }
+ ]
}
]
```
@@ -286,7 +298,6 @@ Example response:
],
"commit_path":"/root/awesome-app/commit/588440f66559714280628a4f9799f0c4eb880a4a",
"tag_path":"/root/awesome-app/-/tags/v0.11.1",
- "evidence_sha":"760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d",
"assets":{
"count":5,
"sources":[
@@ -314,9 +325,15 @@ Example response:
"url":"https://gitlab.example.com/root/awesome-app/-/tags/v0.11.1/binaries/linux-amd64",
"external":true
}
- ],
- "evidence_url":"https://gitlab.example.com/root/awesome-app/-/releases/v0.1/evidence.json"
+ ]
},
+ "evidences":[
+ {
+ sha: "760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d",
+ filepath: "https://gitlab.example.com/root/awesome-app/-/releases/v0.1/evidence.json",
+ collected_at: "2019-07-16T14:00:12.256Z"
+ }
+ ]
}
```
@@ -338,7 +355,7 @@ POST /projects/:id/releases
| `milestones` | array of string | no | The title of each milestone the release is associated with. |
| `assets:links` | array of hash | no | An array of assets links. |
| `assets:links:name`| string | required by: `assets:links` | The name of the link. |
-| `assets:links:url` | string | required by: `assets:links` | The url of the link. |
+| `assets:links:url` | string | required by: `assets:links` | The URL of the link. |
| `assets:links:filepath` | string | no | Optional path for a [Direct Asset link](../../user/project/releases.md).
| `released_at` | datetime | no | The date when the release will be/was ready. Defaults to the current time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). |
diff --git a/doc/api/releases/links.md b/doc/api/releases/links.md
index bf882ef35c0..f380ba5a1b2 100644
--- a/doc/api/releases/links.md
+++ b/doc/api/releases/links.md
@@ -21,7 +21,7 @@ GET /projects/:id/releases/:tag_name/assets/links
Example request:
```shell
-curl --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links"
+curl --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links"
```
Example response:
@@ -55,12 +55,12 @@ GET /projects/:id/releases/:tag_name/assets/links/:link_id
| ------------- | -------------- | -------- | --------------------------------------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../README.md#namespaced-path-encoding). |
| `tag_name` | string | yes | The tag associated with the Release. |
-| `link_id` | integer | yes | The id of the link. |
+| `link_id` | integer | yes | The ID of the link. |
Example request:
```shell
-curl --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"
+curl --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"
```
Example response:
@@ -93,7 +93,7 @@ Example request:
```shell
curl --request POST \
- --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" \
+ --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" \
--data name="awesome-v0.2.dmg" \
--data url="http://192.168.10.15:3000" \
"https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links"
@@ -122,7 +122,7 @@ PUT /projects/:id/releases/:tag_name/assets/links/:link_id
| ------------- | -------------- | -------- | --------------------------------------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../README.md#namespaced-path-encoding). |
| `tag_name` | string | yes | The tag associated with the Release. |
-| `link_id` | integer | yes | The id of the link. |
+| `link_id` | integer | yes | The ID of the link. |
| `name` | string | no | The name of the link. |
| `url` | string | no | The URL of the link. |
@@ -132,7 +132,7 @@ You have to specify at least one of `name` or `url`
Example request:
```shell
-curl --request PUT --data name="new name" --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"
+curl --request PUT --data name="new name" --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"
```
Example response:
@@ -158,12 +158,12 @@ DELETE /projects/:id/releases/:tag_name/assets/links/:link_id
| ------------- | -------------- | -------- | --------------------------------------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../README.md#namespaced-path-encoding). |
| `tag_name` | string | yes | The tag associated with the Release. |
-| `link_id` | integer | yes | The id of the link. |
+| `link_id` | integer | yes | The ID of the link. |
Example request:
```shell
-curl --request DELETE --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"
+curl --request DELETE --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"
```
Example response:
diff --git a/doc/api/remote_mirrors.md b/doc/api/remote_mirrors.md
index 0ffff194976..e46a890cbd4 100644
--- a/doc/api/remote_mirrors.md
+++ b/doc/api/remote_mirrors.md
@@ -11,13 +11,13 @@ outlined below.
Returns an Array of remote mirrors and their statuses:
-```text
+```plaintext
GET /projects/:id/remote_mirrors
```
Example request:
-```sh
+```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/42/remote_mirrors'
```
@@ -33,6 +33,7 @@ Example response:
"last_update_at": "2020-01-06T17:32:02.823Z",
"last_update_started_at": "2020-01-06T17:31:55.864Z",
"only_protected_branches": true,
+ "keep_divergent_refs": true,
"update_status": "finished",
"url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git"
}
@@ -49,7 +50,7 @@ and password information.
Create a remote mirror for a project. The mirror will be disabled by default. You can enable it by including the optional parameter `enabled` when creating it:
-```text
+```plaintext
POST /projects/:id/remote_mirrors
```
@@ -58,10 +59,11 @@ POST /projects/:id/remote_mirrors
| `url` | String | yes | The URL of the remote repository to be mirrored. |
| `enabled` | Boolean | no | Determines if the mirror is enabled. |
| `only_protected_branches` | Boolean | no | Determines if only protected branches are mirrored. |
+| `keep_divergent_refs` | Boolean | no | Determines if divergent refs are skipped. |
Example request:
-```sh
+```shell
curl --request POST --data "url=https://username:token@example.com/gitlab/example.git" --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/42/remote_mirrors'
```
@@ -76,6 +78,7 @@ Example response:
"last_update_at": null,
"last_update_started_at": null,
"only_protected_branches": false,
+ "keep_divergent_refs": false,
"update_status": "none",
"url": "https://*****:*****@example.com/gitlab/example.git"
}
@@ -88,7 +91,7 @@ Example response:
Toggle a remote mirror on or off, or change which types of branches are
mirrored:
-```text
+```plaintext
PUT /projects/:id/remote_mirrors/:mirror_id
```
@@ -97,10 +100,11 @@ PUT /projects/:id/remote_mirrors/:mirror_id
| `mirror_id` | Integer | yes | The remote mirror ID. |
| `enabled` | Boolean | no | Determines if the mirror is enabled. |
| `only_protected_branches` | Boolean | no | Determines if only protected branches are mirrored. |
+| `keep_divergent_refs` | Boolean | no | Determines if divergent refs are skipped. |
Example request:
-```sh
+```shell
curl --request PUT --data "enabled=false" --header "PRIVATE-TOKEN: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486'
```
@@ -115,6 +119,7 @@ Example response:
"last_update_at": "2020-01-06T17:32:02.823Z",
"last_update_started_at": "2020-01-06T17:31:55.864Z",
"only_protected_branches": true,
+ "keep_divergent_refs": true,
"update_status": "finished",
"url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git"
}
diff --git a/doc/api/repositories.md b/doc/api/repositories.md
index f261c9ab9f7..440db06792c 100644
--- a/doc/api/repositories.md
+++ b/doc/api/repositories.md
@@ -107,6 +107,8 @@ Parameters:
Get an archive of the repository. This endpoint can be accessed without
authentication if the repository is publicly accessible.
+This endpoint has a rate limit threshold of 5 requests per minute.
+
```plaintext
GET /projects/:id/repository/archive[.format]
```
diff --git a/doc/api/repository_files.md b/doc/api/repository_files.md
index e6425c3fe17..a8b58d90c34 100644
--- a/doc/api/repository_files.md
+++ b/doc/api/repository_files.md
@@ -47,7 +47,7 @@ Example response:
Parameters:
-- `file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
+- `file_path` (required) - URL encoded full path to new file. Ex. lib%2Fclass%2Erb
- `ref` (required) - The name of branch, tag or commit
NOTE: **Note:**
@@ -65,7 +65,7 @@ curl --head --header 'PRIVATE-TOKEN: <your_access_token>' 'https://gitlab.exampl
Example response:
-```text
+```plaintext
HTTP/1.1 200 OK
...
X-Gitlab-Blob-Id: 79f7bbd25901e8334750839545a9bd021f0e4c83
@@ -122,7 +122,7 @@ Example response:
Parameters:
-- `file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
+- `file_path` (required) - URL encoded full path to new file. Ex. lib%2Fclass%2Erb
- `ref` (required) - The name of branch, tag or commit
NOTE: **Note:**
@@ -134,7 +134,7 @@ curl --head --header 'PRIVATE-TOKEN: <your_access_token>' 'https://gitlab.exampl
Example response:
-```text
+```plaintext
HTTP/1.1 200 OK
...
X-Gitlab-Blob-Id: 79f7bbd25901e8334750839545a9bd021f0e4c83
@@ -161,7 +161,7 @@ curl --header 'PRIVATE-TOKEN: <your_access_token>' 'https://gitlab.example.com/a
Parameters:
-- `file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
+- `file_path` (required) - URL encoded full path to new file. Ex. lib%2Fclass%2Erb
- `ref` (required) - The name of branch, tag or commit
NOTE: **Note:**
@@ -193,7 +193,7 @@ Example response:
Parameters:
-- `file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
+- `file_path` (required) - URL encoded full path to new file. Ex. lib%2Fclass%2Erb
- `branch` (required) - Name of the branch
- `start_branch` (optional) - Name of the branch to start the new commit from
- `encoding` (optional) - Change encoding to 'base64'. Default is text.
@@ -228,7 +228,7 @@ Example response:
Parameters:
-- `file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
+- `file_path` (required) - URL encoded full path to new file. Ex. lib%2Fclass%2Erb
- `branch` (required) - Name of the branch
- `start_branch` (optional) - Name of the branch to start the new commit from
- `encoding` (optional) - Change encoding to 'base64'. Default is text.
@@ -236,7 +236,7 @@ Parameters:
- `author_name` (optional) - Specify the commit author's name
- `content` (required) - New file content
- `commit_message` (required) - Commit message
-- `last_commit_id` (optional) - Last known file commit id
+- `last_commit_id` (optional) - Last known file commit ID
If the commit fails for any reason we return a 400 error with a non-specific
error message. Possible causes for a failed commit include:
@@ -265,10 +265,10 @@ curl --request DELETE --header 'PRIVATE-TOKEN: <your_access_token>' --header "Co
Parameters:
-- `file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
+- `file_path` (required) - URL encoded full path to new file. Ex. lib%2Fclass%2Erb
- `branch` (required) - Name of the branch
- `start_branch` (optional) - Name of the branch to start the new commit from
- `author_email` (optional) - Specify the commit author's email address
- `author_name` (optional) - Specify the commit author's name
- `commit_message` (required) - Commit message
-- `last_commit_id` (optional) - Last known file commit id
+- `last_commit_id` (optional) - Last known file commit ID
diff --git a/doc/api/runners.md b/doc/api/runners.md
index 21d768a1605..5db1f116f6c 100644
--- a/doc/api/runners.md
+++ b/doc/api/runners.md
@@ -162,9 +162,9 @@ GET /runners/:id
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6"
```
-CAUTION: **Deprecation**
-The `token` attribute in the response is deprecated [since GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/issues/214320).
-It will be removed in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/214322).
+NOTE: **Note:**
+The `token` attribute in the response was deprecated [in GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/issues/214320).
+and removed in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/214322).
Example response:
@@ -190,7 +190,6 @@ Example response:
"path_with_namespace": "gitlab-org/gitlab-foss"
}
],
- "token": "205086a8e3b9a2b818ffac9b89d102",
"revision": null,
"tag_list": [
"ruby",
@@ -225,9 +224,9 @@ PUT /runners/:id
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"
```
-CAUTION: **Deprecation**
-The `token` attribute in the response is deprecated [since GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/issues/214320).
-It will be removed in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/214322).
+NOTE: **Note:**
+The `token` attribute in the response was deprecated [in GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/issues/214320).
+and removed in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/214322).
Example response:
@@ -253,7 +252,6 @@ Example response:
"path_with_namespace": "gitlab-org/gitlab-foss"
}
],
- "token": "205086a8e3b9a2b818ffac9b89d102",
"revision": null,
"tag_list": [
"ruby",
diff --git a/doc/api/scim.md b/doc/api/scim.md
index eaa56b0d0dd..4300c9efa3d 100644
--- a/doc/api/scim.md
+++ b/doc/api/scim.md
@@ -4,6 +4,9 @@
The SCIM API implements the [the RFC7644 protocol](https://tools.ietf.org/html/rfc7644).
+CAUTION: **Caution:**
+This API is for internal system use for connecting with a SCIM provider. While it can be used directly, it is subject to change without notice.
+
NOTE: **Note:**
[Group SSO](../user/group/saml_sso/index.md) must be enabled for the group. For more information, see [SCIM setup documentation](../user/group/saml_sso/scim_setup.md#requirements).
@@ -13,7 +16,7 @@ NOTE: **Note:**
This endpoint is used as part of the SCIM syncing mechanism and it only returns
a single user based on a unique ID which should match the `extern_uid` of the user.
-```text
+```plaintext
GET /api/scim/v2/groups/:group_path/Users
```
@@ -69,7 +72,7 @@ Example response:
## Get a single SAML user
-```text
+```plaintext
GET /api/scim/v2/groups/:group_path/Users/:id
```
@@ -110,7 +113,7 @@ Example response:
## Create a SAML user
-```text
+```plaintext
POST /api/scim/v2/groups/:group_path/Users/
```
@@ -158,15 +161,15 @@ Returns a `201` status code if successful.
Fields that can be updated are:
-| SCIM/IdP field | GitLab field |
-|:----------|:--------|
-| id/externalId | extern_uid |
-| name.formatted | name |
-| emails\[type eq "work"\].value | email |
-| active | Identity removal if `active = false` |
-| userName | username |
+| SCIM/IdP field | GitLab field |
+|:---------------------------------|:---------------------------------------|
+| `id/externalId` | `extern_uid` |
+| `name.formatted` | `name` |
+| `emails\[type eq "work"\].value` | `email` |
+| `active` | Identity removal if `active` = `false` |
+| `userName` | `username` |
-```text
+```plaintext
PATCH /api/scim/v2/groups/:group_path/Users/:id
```
@@ -190,7 +193,7 @@ Returns an empty response with a `204` status code if successful.
Removes the user's SSO identity and group membership.
-```text
+```plaintext
DELETE /api/scim/v2/groups/:group_path/Users/:id
```
diff --git a/doc/api/search.md b/doc/api/search.md
index e1c70fe56a7..7940a2fa4e3 100644
--- a/doc/api/search.md
+++ b/doc/api/search.md
@@ -17,7 +17,7 @@ GET /search
| `scope` | string | yes | The scope to search in |
| `search` | string | yes | The search query |
-Search the expression within the specified scope. Currently these scopes are supported: projects, issues, merge_requests, milestones, snippet_titles, snippet_blobs, users.
+Search the expression within the specified scope. Currently these scopes are supported: projects, issues, merge_requests, milestones, snippet_titles, users.
If Elasticsearch is enabled additional scopes available are blobs, wiki_blobs and commits. Find more about [the feature](../integration/elasticsearch.md). **(STARTER)**
@@ -253,39 +253,6 @@ Example response:
]
```
-### Scope: snippet_blobs
-
-This scope will be disabled after GitLab 13.0.
-
-```shell
-curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/search?scope=snippet_blobs&search=test
-```
-
-Example response:
-
-```json
-[
- {
- "id": 50,
- "title": "Sample file",
- "file_name": "file.rb",
- "description": "Simple ruby file",
- "author": {
- "id": 1,
- "name": "Administrator",
- "username": "root",
- "state": "active",
- "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
- "web_url": "http://localhost:3000/root"
- },
- "updated_at": "2018-02-06T12:49:29.104Z",
- "created_at": "2017-11-28T08:20:18.071Z",
- "project_id": 9,
- "web_url": "http://localhost:3000/root/jira-test/snippets/50"
- }
-]
-```
-
### Scope: wiki_blobs **(STARTER)**
This scope is available only if [Elasticsearch](../integration/elasticsearch.md) is enabled.
diff --git a/doc/api/services.md b/doc/api/services.md
index 3a5268f4271..d435dffa651 100644
--- a/doc/api/services.md
+++ b/doc/api/services.md
@@ -189,9 +189,9 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `new_issue_url` | string | true | New Issue url |
-| `issues_url` | string | true | Issue url |
-| `project_url` | string | true | Project url |
+| `new_issue_url` | string | true | New Issue URL |
+| `issues_url` | string | true | Issue URL |
+| `project_url` | string | true | Project URL |
| `description` | string | false | Description |
| `title` | string | false | Title |
| `push_events` | boolean | false | Enable notifications for push events |
@@ -331,6 +331,51 @@ Get Unify Circuit service settings for a project.
GET /projects/:id/services/unify-circuit
```
+## Webex Teams
+
+Webex Teams collaboration tool.
+
+### Create/Edit Webex Teams service
+
+Set Webex Teams service for a project.
+
+```plaintext
+PUT /projects/:id/services/webex-teams
+```
+
+Parameters:
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `webhook` | string | true | The Webex Teams webhook. For example, `https://api.ciscospark.com/v1/webhooks/incoming/...`. |
+| `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines |
+| `branches_to_be_notified` | string | all | Branches to send notifications for. Valid options are "all", "default", "protected", and "default_and_protected" |
+| `push_events` | boolean | false | Enable notifications for push events |
+| `issues_events` | boolean | false | Enable notifications for issue events |
+| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events |
+| `merge_requests_events` | boolean | false | Enable notifications for merge request events |
+| `tag_push_events` | boolean | false | Enable notifications for tag push events |
+| `note_events` | boolean | false | Enable notifications for note events |
+| `confidential_note_events` | boolean | false | Enable notifications for confidential note events |
+| `pipeline_events` | boolean | false | Enable notifications for pipeline events |
+| `wiki_page_events` | boolean | false | Enable notifications for wiki page events |
+
+### Delete Webex Teams service
+
+Delete Webex Teams service for a project.
+
+```plaintext
+DELETE /projects/:id/services/webex-teams
+```
+
+### Get Webex Teams service settings
+
+Get Webex Teams service settings for a project.
+
+```plaintext
+GET /projects/:id/services/webex-teams
+```
+
## Custom Issue Tracker
Custom issue tracker
@@ -347,11 +392,11 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `new_issue_url` | string | true | New Issue url
-| `issues_url` | string | true | Issue url
-| `project_url` | string | true | Project url
-| `description` | string | false | Description
-| `title` | string | false | Title
+| `new_issue_url` | string | true | New Issue URL |
+| `issues_url` | string | true | Issue URL |
+| `project_url` | string | true | Project URL |
+| `description` | string | false | Description |
+| `title` | string | false | Title |
| `push_events` | boolean | false | Enable notifications for push events |
### Delete Custom Issue Tracker service
@@ -567,7 +612,7 @@ Set Hangouts Chat service for a project.
PUT /projects/:id/services/hangouts-chat
```
->**Note:** Specific event parameters (for example, `push_events` flag) were [introduced in v10.4][11435]
+>**Note:** Specific event parameters (for example, `push_events` flag) were [introduced in v10.4](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/11435)
Parameters:
@@ -1034,9 +1079,9 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `new_issue_url` | string | true | New Issue url |
-| `project_url` | string | true | Project url |
-| `issues_url` | string | true | Issue url |
+| `new_issue_url` | string | true | New Issue URL |
+| `project_url` | string | true | Project URL |
+| `issues_url` | string | true | Issue URL |
| `description` | string | false | Description |
| `push_events` | boolean | false | Enable notifications for push events |
@@ -1068,7 +1113,7 @@ Set Slack service for a project.
PUT /projects/:id/services/slack
```
->**Note:** Specific event parameters (for example, `push_events` flag and `push_channel`) were [introduced in v10.4][11435]
+>**Note:** Specific event parameters (for example, `push_events` flag and `push_channel`) were [introduced in v10.4](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/11435)
Parameters:
@@ -1177,7 +1222,7 @@ Set Mattermost service for a project.
PUT /projects/:id/services/mattermost
```
->**Note:** Specific event parameters (for example, `push_events` flag and `push_channel`) were [introduced in v10.4][11435]
+>**Note:** Specific event parameters (for example, `push_events` flag and `push_channel`) were [introduced in v10.4](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/11435)
Parameters:
@@ -1303,6 +1348,9 @@ GET /projects/:id/services/jenkins
A continuous integration and build server
+NOTE: **Note:**
+This service was [removed in v13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/1600)
+
### Create/Edit Jenkins CI (Deprecated) service
Set Jenkins CI (Deprecated) service for a project.
@@ -1369,8 +1417,6 @@ Get MockCI service settings for a project.
GET /projects/:id/services/mock-ci
```
-[11435]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/11435
-
## YouTrack
YouTrack issue tracker
@@ -1387,8 +1433,8 @@ Parameters:
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `issues_url` | string | true | Issue url |
-| `project_url` | string | true | Project url |
+| `issues_url` | string | true | Issue URL |
+| `project_url` | string | true | Project URL |
| `description` | string | false | Description |
| `push_events` | boolean | false | Enable notifications for push events |
diff --git a/doc/api/settings.md b/doc/api/settings.md
index cf48048c830..f63d126742a 100644
--- a/doc/api/settings.md
+++ b/doc/api/settings.md
@@ -69,7 +69,9 @@ Example response:
"asset_proxy_enabled": true,
"asset_proxy_url": "https://assets.example.com",
"asset_proxy_whitelist": ["example.com", "*.example.com", "your-instance.com"],
- "npm_package_requests_forwarding": true
+ "npm_package_requests_forwarding": true,
+ "issues_create_limit": 300,
+ "raw_blob_request_limit": 300
}
```
@@ -156,7 +158,9 @@ Example response:
"allow_local_requests_from_hooks_and_services": true,
"allow_local_requests_from_web_hooks_and_services": true,
"allow_local_requests_from_system_hooks": false,
- "npm_package_requests_forwarding": true
+ "npm_package_requests_forwarding": true,
+ "issues_create_limit": 300,
+ "raw_blob_request_limit": 300
}
```
@@ -228,12 +232,15 @@ are listed in the descriptions of the relevant settings.
| `elasticsearch_aws` | boolean | no | **(PREMIUM)** Enable the use of AWS hosted Elasticsearch |
| `elasticsearch_aws_region` | string | no | **(PREMIUM)** The AWS region the Elasticsearch domain is configured |
| `elasticsearch_aws_secret_access_key` | string | no | **(PREMIUM)** AWS IAM secret access key |
+| `elasticsearch_indexed_field_length_limit` | integer | no | **(PREMIUM)** Maximum size of text fields that will be indexed by Elasticsearch. 0 value means no limit. This does not apply to repository and wiki indexing. |
| `elasticsearch_indexing` | boolean | no | **(PREMIUM)** Enable Elasticsearch indexing |
| `elasticsearch_limit_indexing` | boolean | no | **(PREMIUM)** Limit Elasticsearch to index certain namespaces and projects |
+| `elasticsearch_max_bulk_concurrency` | integer | no | **(PREMIUM)** Maximum concurrency of Elasticsearch bulk requests per indexing operation. This only applies to repository indexing operations. |
+| `elasticsearch_max_bulk_size_mb` | integer | no | **(PREMIUM)** Maximum size of Elasticsearch bulk indexing requests in MB. This only applies to repository indexing operations. |
| `elasticsearch_namespace_ids` | array of integers | no | **(PREMIUM)** The namespaces to index via Elasticsearch if `elasticsearch_limit_indexing` is enabled. |
| `elasticsearch_project_ids` | array of integers | no | **(PREMIUM)** The projects to index via Elasticsearch if `elasticsearch_limit_indexing` is enabled. |
| `elasticsearch_search` | boolean | no | **(PREMIUM)** Enable Elasticsearch search |
-| `elasticsearch_url` | string | no | **(PREMIUM)** The url to use for connecting to Elasticsearch. Use a comma-separated list to support cluster (for example, `http://localhost:9200, http://localhost:9201"`). If your Elasticsearch instance is password protected, pass the `username:password` in the URL (for example, `http://<username>:<password>@<elastic_host>:9200/`). |
+| `elasticsearch_url` | string | no | **(PREMIUM)** The URL to use for connecting to Elasticsearch. Use a comma-separated list to support cluster (for example, `http://localhost:9200, http://localhost:9201"`). If your Elasticsearch instance is password protected, pass the `username:password` in the URL (for example, `http://<username>:<password>@<elastic_host>:9200/`). |
| `email_additional_text` | string | no | **(PREMIUM)** Additional text added to the bottom of every email for legal/auditing/compliance reasons |
| `email_author_in_body` | boolean | no | Some email servers do not support overriding the email sender name. Enable this option to include the name of the author of the issue, merge request or comment in the email body instead. |
| `enabled_git_access_protocol` | string | no | Enabled protocols for Git access. Allowed values are: `ssh`, `http`, and `nil` to allow both protocols. |
@@ -255,7 +262,7 @@ are listed in the descriptions of the relevant settings.
| `grafana_enabled` | boolean | no | Enable Grafana. |
| `grafana_url` | string | no | Grafana URL. |
| `gravatar_enabled` | boolean | no | Enable Gravatar. |
-| `hashed_storage_enabled` | boolean | no | Create new projects using hashed storage paths: Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. (EXPERIMENTAL) |
+| `hashed_storage_enabled` | boolean | no | Create new projects using hashed storage paths: Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. (Always enabled since 13.0, configuration will be removed in 14.0) |
| `help_page_hide_commercial_content` | boolean | no | Hide marketing-related entries from help. |
| `help_page_support_url` | string | no | Alternate support URL for help page and help dropdown. |
| `help_page_text` | string | no | Custom text displayed on the help page. |
@@ -275,14 +282,7 @@ are listed in the descriptions of the relevant settings.
| `max_attachment_size` | integer | no | Limit attachment size in MB |
| `max_pages_size` | integer | no | Maximum size of pages repositories in MB |
| `max_personal_access_token_lifetime` | integer | no | **(ULTIMATE ONLY)** Maximum allowable lifetime for personal access tokens in days |
-| `metrics_enabled` | boolean | no | (**If enabled, requires:** `metrics_host`, `metrics_method_call_threshold`, `metrics_packet_size`, `metrics_pool_size`, `metrics_port`, `metrics_sample_interval` and `metrics_timeout`) Enable influxDB metrics. |
-| `metrics_host` | string | required by: `metrics_enabled` | InfluxDB host. |
-| `metrics_method_call_threshold` | integer | required by: `metrics_enabled` | A method call is only tracked when it takes longer than the given amount of milliseconds. |
-| `metrics_packet_size` | integer | required by: `metrics_enabled` | The amount of data points to send in a single UDP packet. |
-| `metrics_pool_size` | integer | required by: `metrics_enabled` | The amount of InfluxDB connections to keep open. |
-| `metrics_port` | integer | required by: `metrics_enabled` | The UDP port to use for connecting to InfluxDB. |
-| `metrics_sample_interval` | integer | required by: `metrics_enabled` | The sampling interval in seconds. |
-| `metrics_timeout` | integer | required by: `metrics_enabled` | The amount of seconds after which InfluxDB will time out. |
+| `metrics_method_call_threshold` | integer | no | A method call is only tracked when it takes longer than the given amount of milliseconds. |
| `mirror_available` | boolean | no | Allow repository mirroring to configured by project Maintainers. If disabled, only Admins will be able to configure repository mirroring. |
| `mirror_capacity_threshold` | integer | no | **(PREMIUM)** Minimum capacity to be available before scheduling more mirrors preemptively |
| `mirror_max_capacity` | integer | no | **(PREMIUM)** Maximum number of mirrors that can be synchronizing at the same time. |
@@ -324,13 +324,13 @@ are listed in the descriptions of the relevant settings.
| `sign_in_text` | string | no | Text on the login page. |
| `signup_enabled` | boolean | no | Enable registration. Default is `true`. |
| `slack_app_enabled` | boolean | no | **(PREMIUM)** (**If enabled, requires:** `slack_app_id`, `slack_app_secret` and `slack_app_secret`) Enable Slack app. |
-| `slack_app_id` | string | required by: `slack_app_enabled` | **(PREMIUM)** The app id of the Slack-app. |
+| `slack_app_id` | string | required by: `slack_app_enabled` | **(PREMIUM)** The app ID of the Slack-app. |
| `slack_app_secret` | string | required by: `slack_app_enabled` | **(PREMIUM)** The app secret of the Slack-app. |
| `slack_app_verification_token` | string | required by: `slack_app_enabled` | **(PREMIUM)** The verification token of the Slack-app. |
| `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_app_id` | string | no | The Snowplow site name / application id. (for example, `gitlab`) |
+| `snowplow_app_id` | string | no | The Snowplow site name / application ID. (for example, `gitlab`) |
| `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_url` | string | required by: `sourcegraph_enabled` | The Sourcegraph instance URL for integration. |
@@ -357,5 +357,7 @@ are listed in the descriptions of the relevant settings.
| `user_oauth_applications` | boolean | no | Allow users to register any application to use GitLab as an OAuth provider. |
| `user_show_add_ssh_key_message` | boolean | no | When set to `false` disable the "You won't be able to pull or push project code via SSH" warning shown to users with no uploaded SSH key. |
| `version_check_enabled` | boolean | no | Let GitLab inform you when an update is available. |
-| `web_ide_clientside_preview_enabled` | boolean | no | Client side evaluation (allow live previews of JavaScript projects in the Web IDE using CodeSandbox client side evaluation). |
+| `web_ide_clientside_preview_enabled` | boolean | no | Live Preview (allow live previews of JavaScript projects in the Web IDE using CodeSandbox Live Preview). |
| `snippet_size_limit` | integer | no | Max snippet content size in **bytes**. Default: 52428800 Bytes (50MB).|
+| `issues_create_limit` | integer | no | Max number of issue creation requests per minute per user. Default: 300. To disable throttling set to 0.|
+| `raw_blob_request_limit` | integer | no | Max number of requests per minute for each raw path. Default: 300. To disable throttling set to 0.|
diff --git a/doc/api/snippets.md b/doc/api/snippets.md
index 0b41ab557ad..e2e39de412b 100644
--- a/doc/api/snippets.md
+++ b/doc/api/snippets.md
@@ -21,7 +21,7 @@ Valid values for snippet visibility levels are:
Get a list of the current user's snippets.
-```text
+```plaintext
GET /snippets
```
@@ -47,13 +47,13 @@ Example response:
"username": "user0",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80&d=identicon",
- "web_url": "http://localhost:3000/user0"
+ "web_url": "http://example.com/user0"
},
"updated_at": "2018-09-18T01:12:26.383Z",
"created_at": "2018-09-18T01:12:26.383Z",
"project_id": null,
- "web_url": "http://localhost:3000/snippets/42",
- "raw_url": "http://localhost:3000/snippets/42/raw"
+ "web_url": "http://example.com/snippets/42",
+ "raw_url": "http://example.com/snippets/42/raw"
},
{
"id": 41,
@@ -67,13 +67,13 @@ Example response:
"username": "user0",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80&d=identicon",
- "web_url": "http://localhost:3000/user0"
+ "web_url": "http://example.com/user0"
},
"updated_at": "2018-09-18T01:12:26.360Z",
"created_at": "2018-09-18T01:12:26.360Z",
- "project_id": null,
- "web_url": "http://localhost:3000/snippets/41",
- "raw_url": "http://localhost:3000/snippets/41/raw"
+ "project_id": 1,
+ "web_url": "http://example.com/gitlab-org/gitlab-test/snippets/41",
+ "raw_url": "http://example.com/gitlab-org/gitlab-test/snippets/41/raw"
}
]
```
@@ -82,7 +82,7 @@ Example response:
Get a single snippet.
-```text
+```plaintext
GET /snippets/:id
```
@@ -118,7 +118,9 @@ Example response:
"expires_at": null,
"updated_at": "2012-06-28T10:52:04Z",
"created_at": "2012-06-28T10:52:04Z",
+ "project_id": null,
"web_url": "http://example.com/snippets/1",
+ "raw_url": "http://example.com/snippets/1/raw"
}
```
@@ -126,7 +128,7 @@ Example response:
Get a single snippet's raw contents.
-```text
+```plaintext
GET /snippets/:id/raw
```
@@ -144,7 +146,7 @@ curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/ap
Example response:
-```text
+```plaintext
Hello World snippet
```
@@ -155,7 +157,7 @@ Create a new snippet.
NOTE: **Note:**
The user must have permission to create new snippets.
-```text
+```plaintext
POST /snippets
```
@@ -199,7 +201,9 @@ Example response:
"expires_at": null,
"updated_at": "2012-06-28T10:52:04Z",
"created_at": "2012-06-28T10:52:04Z",
+ "project_id": null,
"web_url": "http://example.com/snippets/1",
+ "raw_url": "http://example.com/snippets/1/raw"
}
```
@@ -210,7 +214,7 @@ Update an existing snippet.
NOTE: **Note:**
The user must have permission to change an existing snippet.
-```text
+```plaintext
PUT /snippets/:id
```
@@ -255,7 +259,9 @@ Example response:
"expires_at": null,
"updated_at": "2012-06-28T10:52:04Z",
"created_at": "2012-06-28T10:52:04Z",
+ "project_id": null,
"web_url": "http://example.com/snippets/1",
+ "raw_url": "http://example.com/snippets/1/raw"
}
```
@@ -263,7 +269,7 @@ Example response:
Delete an existing snippet.
-```text
+```plaintext
DELETE /snippets/:id
```
@@ -290,7 +296,7 @@ The following are possible return codes:
List all public snippets.
-```text
+```plaintext
GET /snippets/public
```
@@ -318,15 +324,16 @@ Example response:
"name": "Libby Rolfson",
"state": "active",
"username": "elton_wehner",
- "web_url": "http://localhost:3000/elton_wehner"
+ "web_url": "http://example.com/elton_wehner"
},
"created_at": "2016-11-25T16:53:34.504Z",
"file_name": "oconnerrice.rb",
"id": 49,
- "raw_url": "http://localhost:3000/snippets/49/raw",
"title": "Ratione cupiditate et laborum temporibus.",
"updated_at": "2016-11-25T16:53:34.504Z",
- "web_url": "http://localhost:3000/snippets/49"
+ "project_id": null,
+ "web_url": "http://example.com/snippets/49",
+ "raw_url": "http://example.com/snippets/49/raw"
},
{
"author": {
@@ -335,15 +342,16 @@ Example response:
"name": "Llewellyn Flatley",
"state": "active",
"username": "adaline",
- "web_url": "http://localhost:3000/adaline"
+ "web_url": "http://example.com/adaline"
},
"created_at": "2016-11-25T16:53:34.479Z",
"file_name": "muellershields.rb",
"id": 48,
- "raw_url": "http://localhost:3000/snippets/48/raw",
"title": "Minus similique nesciunt vel fugiat qui ullam sunt.",
"updated_at": "2016-11-25T16:53:34.479Z",
- "web_url": "http://localhost:3000/snippets/48",
+ "project_id": null,
+ "web_url": "http://example.com/snippets/48",
+ "raw_url": "http://example.com/snippets/49/raw",
"visibility": "public"
}
]
@@ -356,7 +364,7 @@ Example response:
NOTE: **Note:**
Available only for administrators.
-```text
+```plaintext
GET /snippets/:id/user_agent_detail
```
diff --git a/doc/api/templates/gitignores.md b/doc/api/templates/gitignores.md
index 3acd666ad66..6e2e3e2d07f 100644
--- a/doc/api/templates/gitignores.md
+++ b/doc/api/templates/gitignores.md
@@ -2,7 +2,7 @@
type: reference
---
-# .gitignore API
+# `.gitignore` API
In GitLab, there is an API endpoint available for `.gitignore`. For more
information on `gitignore`, see the
diff --git a/doc/api/todos.md b/doc/api/todos.md
index 2711766c634..cd6f2468cc6 100644
--- a/doc/api/todos.md
+++ b/doc/api/todos.md
@@ -101,7 +101,8 @@ Example Response:
"target_url": "https://gitlab.example.com/gitlab-org/gitlab-foss/-/merge_requests/7",
"body": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.",
"state": "pending",
- "created_at": "2016-06-17T07:52:35.225Z"
+ "created_at": "2016-06-17T07:52:35.225Z",
+ "updated_at": "2016-06-17T07:52:35.225Z"
},
{
"id": 98,
@@ -174,7 +175,8 @@ Example Response:
"target_url": "https://gitlab.example.com/gitlab-org/gitlab-foss/-/merge_requests/7",
"body": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.",
"state": "pending",
- "created_at": "2016-06-17T07:49:24.624Z"
+ "created_at": "2016-06-17T07:49:24.624Z",
+ "updated_at": "2016-06-17T07:49:24.624Z"
}
]
```
@@ -272,7 +274,8 @@ Example Response:
"target_url": "https://gitlab.example.com/gitlab-org/gitlab-foss/-/merge_requests/7",
"body": "Dolores in voluptatem tenetur praesentium omnis repellendus voluptatem quaerat.",
"state": "done",
- "created_at": "2016-06-17T07:52:35.225Z"
+ "created_at": "2016-06-17T07:52:35.225Z",
+ "updated_at": "2016-06-17T07:52:35.225Z"
}
```
diff --git a/doc/api/users.md b/doc/api/users.md
index 90aafcef035..28d233ce6b3 100644
--- a/doc/api/users.md
+++ b/doc/api/users.md
@@ -611,7 +611,7 @@ GET /users/:id_or_username/status
| Attribute | Type | Required | Description |
| ---------------- | ------ | -------- | ----------- |
-| `id_or_username` | string | yes | The id or username of the user to get a status of |
+| `id_or_username` | string | yes | The ID or username of the user to get a status of |
```shell
curl "https://gitlab.example.com/users/janedoe/status"
@@ -723,7 +723,7 @@ GET /users/:id_or_username/keys
| Attribute | Type | Required | Description |
| ---------------- | ------ | -------- | ----------- |
-| `id_or_username` | string | yes | The id or username of the user to get the SSH keys for. |
+| `id_or_username` | string | yes | The ID or username of the user to get the SSH keys for. |
## Single SSH key
@@ -794,7 +794,7 @@ POST /users/:id/keys
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
- `title` (required) - new SSH Key's title
- `key` (required) - new SSH key
@@ -821,7 +821,7 @@ DELETE /users/:id/keys/:key_id
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
- `key_id` (required) - SSH key ID
## List all GPG keys
@@ -1070,7 +1070,7 @@ GET /users/:id/emails
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
## Single email
@@ -1133,7 +1133,7 @@ POST /users/:id/emails
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
- `email` (required) - email address
- `skip_confirmation` (optional) - Skip confirmation and assume e-mail is verified - true or false (default)
@@ -1160,7 +1160,7 @@ DELETE /users/:id/emails/:email_id
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
- `email_id` (required) - email ID
## Block user
@@ -1173,7 +1173,7 @@ POST /users/:id/block
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
Returns:
@@ -1191,7 +1191,7 @@ POST /users/:id/unblock
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
Will return `201 OK` on success, `404 User Not Found` is user cannot be found or
`403 Forbidden` when trying to unblock a user blocked by LDAP synchronization.
@@ -1208,7 +1208,7 @@ POST /users/:id/deactivate
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
Returns:
@@ -1230,7 +1230,7 @@ POST /users/:id/activate
Parameters:
-- `id` (required) - id of specified user
+- `id` (required) - ID of specified user
Returns:
@@ -1409,6 +1409,7 @@ The activities that update the timestamp are:
- User logging in into GitLab
- User visiting pages related to Dashboards, Projects, Issues, and Merge Requests ([introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/54947) in GitLab 11.8)
- User using the API
+- User using the GraphQL API
By default, it shows the activity for all users in the last 6 months, but this can be
amended by using the `from` parameter.
diff --git a/doc/api/vulnerability_exports.md b/doc/api/vulnerability_exports.md
index f2666783087..2c9ac5d65eb 100644
--- a/doc/api/vulnerability_exports.md
+++ b/doc/api/vulnerability_exports.md
@@ -1,6 +1,6 @@
-# Project Vulnerabilities API **(ULTIMATE)**
+# Vulnerability export API **(ULTIMATE)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/197494) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.10.
+> [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.
CAUTION: **Caution:**
This API is currently in development and is protected by a **disabled**
@@ -17,21 +17,21 @@ across GitLab releases.
Every API call to vulnerability exports must be [authenticated](README.md#authentication).
+## Create a project-level vulnerability export
+
+Creates a new vulnerability export for a project.
+
Vulnerability export permissions inherit permissions from their project. If a project is
private and a user isn't a member of the project to which the vulnerability
belongs, requests to that project return a `404 Not Found` status code.
Vulnerability exports can be only accessed by the export's author.
-## Create vulnerability export
-
-Creates a new vulnerability export.
-
If an authenticated user doesn't have permission to
[create a new vulnerability](../user/permissions.md#project-members-permissions),
this request results in a `403` status code.
```plaintext
-POST /projects/:id/vulnerability_exports
+POST /security/projects/:id/vulnerability_exports
```
| Attribute | Type | Required | Description |
@@ -39,10 +39,10 @@ POST /projects/:id/vulnerability_exports
| `id` | integer or string | yes | The ID or [URL-encoded path](README.md#namespaced-path-encoding) of the project which the authenticated user is a member of |
```shell
-curl --header POST "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/vulnerability_exports
+curl --header POST "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/security/projects/1/vulnerability_exports
```
-The created vulnerability export will be automatically deleted after 1 hour.
+The created vulnerability export is automatically deleted after 1 hour.
Example response:
@@ -51,13 +51,93 @@ Example response:
"id": 2,
"created_at": "2020-03-30T09:35:38.746Z",
"project_id": 1,
+ "group_id": null,
"format": "csv",
"status": "created",
"started_at": null,
"finished_at": null,
"_links": {
- "self": "https://gitlab.example.com/api/v4/projects/1/vulnerability_exports/2",
- "download": "https://gitlab.example.com/api/v4/projects/1/vulnerability_exports/2/download"
+ "self": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2",
+ "download": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2/download"
+ }
+}
+```
+
+## Create a group-level vulnerability export
+
+Creates a new vulnerability export for a group.
+
+Vulnerability export permissions inherit permissions from their group. If a group is
+private and a user isn't a member of the group to which the vulnerability
+belongs, requests to that group return a `404 Not Found` status code.
+Vulnerability exports can be only accessed by the export's author.
+
+If an authenticated user doesn't have permission to
+[create a new vulnerability](../user/permissions.md#group-members-permissions),
+this request results in a `403` status code.
+
+```plaintext
+POST /security/groups/:id/vulnerability_exports
+```
+
+| Attribute | Type | Required | Description |
+| ------------------- | ----------------- | ---------- | -----------------------------------------------------------------------------------------------------------------------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path](README.md#namespaced-path-encoding) of the group which the authenticated user is a member of |
+
+```shell
+curl --header POST "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/security/groups/1/vulnerability_exports
+```
+
+The created vulnerability export is automatically deleted after 1 hour.
+
+Example response:
+
+```json
+{
+ "id": 2,
+ "created_at": "2020-03-30T09:35:38.746Z",
+ "project_id": null,
+ "group_id": 1,
+ "format": "csv",
+ "status": "created",
+ "started_at": null,
+ "finished_at": null,
+ "_links": {
+ "self": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2",
+ "download": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2/download"
+ }
+}
+```
+
+## Create an instance-level vulnerability export
+
+Creates a new vulnerability export for the projects of the user selected in the Security Dashboard.
+
+```plaintext
+POST /security/vulnerability_exports
+```
+
+```shell
+curl --header POST "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/security/vulnerability_exports
+```
+
+The created vulnerability export is automatically deleted after one hour.
+
+Example response:
+
+```json
+{
+ "id": 2,
+ "created_at": "2020-03-30T09:35:38.746Z",
+ "project_id": null,
+ "group_id": null,
+ "format": "csv",
+ "status": "created",
+ "started_at": null,
+ "finished_at": null,
+ "_links": {
+ "self": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2",
+ "download": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2/download"
}
}
```
@@ -67,16 +147,15 @@ Example response:
Gets a single vulnerability export.
```plaintext
-POST /projects/:id/vulnerability_exports/:vulnerability_export_id
+GET /security/vulnerability_exports/:id
```
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `id` | integer or string | yes | The vulnerability's ID |
-| `vulnerability_export_id` | integer or string | yes | The vulnerability export's ID |
+| `id` | integer or string | yes | The vulnerability export's ID |
```shell
-curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/vulnerability_exports/2
+curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/security/vulnerability_exports/2
```
If the vulnerability export isn't finished, the response is `202 Accepted`.
@@ -88,13 +167,14 @@ Example response:
"id": 2,
"created_at": "2020-03-30T09:35:38.746Z",
"project_id": 1,
+ "group_id": null,
"format": "csv",
"status": "finished",
"started_at": "2020-03-30T09:36:54.469Z",
"finished_at": "2020-03-30T09:36:55.008Z",
"_links": {
- "self": "https://gitlab.example.com/api/v4/projects/1/vulnerability_exports/2",
- "download": "https://gitlab.example.com/api/v4/projects/1/vulnerability_exports/2/download"
+ "self": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2",
+ "download": "https://gitlab.example.com/api/v4/security/vulnerability_exports/2/download"
}
}
```
@@ -104,16 +184,15 @@ Example response:
Downloads a single vulnerability export.
```plaintext
-POST /projects/:id/vulnerability_exports/:vulnerability_export_id/download
+GET /security/vulnerability_exports/:id/download
```
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
-| `id` | integer or string | yes | The vulnerability's ID |
-| `vulnerability_export_id` | integer or string | yes | The vulnerability export's ID |
+| `id` | integer or string | yes | The vulnerability export's ID |
```shell
-curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/vulnerability_exports/2/download
+curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/security/vulnerability_exports/2/download
```
The response will be `404 Not Found` if the vulnerability export is not finished yet or was not found.
@@ -121,18 +200,18 @@ The response will be `404 Not Found` if the vulnerability export is not finished
Example response:
```csv
-Scanner Type,Scanner Name,Status,Vulnerability,Details,Additional Info,Severity,CVE
-container_scanning,Clair,confirmed,CVE-2017-16997 in glibc,,CVE-2017-16997 in glibc,critical,CVE-2017-16997
-container_scanning,Clair,detected,CVE-2017-18269 in glibc,,CVE-2017-18269 in glibc,critical,CVE-2017-18269
-container_scanning,Clair,detected,CVE-2018-1000001 in glibc,,CVE-2018-1000001 in glibc,high,CVE-2018-1000001
-container_scanning,Clair,detected,CVE-2016-10228 in glibc,,CVE-2016-10228 in glibc,medium,CVE-2016-10228
-container_scanning,Clair,confirmed,CVE-2010-4052 in glibc,,CVE-2010-4052 in glibc,low,CVE-2010-4052
-container_scanning,Clair,detected,CVE-2018-18520 in elfutils,,CVE-2018-18520 in elfutils,low,CVE-2018-18520
-container_scanning,Clair,detected,CVE-2018-16869 in nettle,,CVE-2018-16869 in nettle,unknown,CVE-2018-16869
-dependency_scanning,Gemnasium,detected,Regular Expression Denial of Service in debug,,Regular Expression Denial of Service in debug,unknown,yarn.lock:debug:gemnasium:37283ed4-0380-40d7-ada7-2d994afcc62a
-dependency_scanning,Gemnasium,detected,Authentication bypass via incorrect DOM traversal and canonicalization in saml2-js,,Authentication bypass via incorrect DOM traversal and canonicalization in saml2-js,unknown,yarn.lock:saml2-js:gemnasium:9952e574-7b5b-46fa-a270-aeb694198a98
-sast,Find Security Bugs,detected,Predictable pseudorandom number generator,,Predictable pseudorandom number generator,medium,818bf5dacb291e15d9e6dc3c5ac32178:PREDICTABLE_RANDOM:src/main/java/com/gitlab/security_products/tests/App.java:47
-sast,Find Security Bugs,detected,Cipher with no integrity,,Cipher with no integrity,medium,e6449b89335daf53c0db4c0219bc1634:CIPHER_INTEGRITY:src/main/java/com/gitlab/security_products/tests/App.java:29
-sast,Find Security Bugs,detected,Predictable pseudorandom number generator,,Predictable pseudorandom number generator,medium,e8ff1d01f74cd372f78da8f5247d3e73:PREDICTABLE_RANDOM:src/main/java/com/gitlab/security_products/tests/App.java:41
-sast,Find Security Bugs,confirmed,ECB mode is insecure 2,,ECB mode is insecure,medium,ea0f905fc76f2739d5f10a1fd1e37a10:ECB_MODE:src/main/java/com/gitlab/security_products/tests/App.java:29
-```
+Group Name,Project Name,Scanner Type,Scanner Name,Status,Vulnerability,Details,Additional Info,Severity,CVE
+Gitlab.org,Defend,container_scanning,Clair,confirmed,CVE-2017-16997 in glibc,,CVE-2017-16997 in glibc,critical,CVE-2017-16997
+Gitlab.org,Defend,container_scanning,Clair,detected,CVE-2017-18269 in glibc,,CVE-2017-18269 in glibc,critical,CVE-2017-18269
+Gitlab.org,Defend,container_scanning,Clair,detected,CVE-2018-1000001 in glibc,,CVE-2018-1000001 in glibc,high,CVE-2018-1000001
+Gitlab.org,Defend,container_scanning,Clair,detected,CVE-2016-10228 in glibc,,CVE-2016-10228 in glibc,medium,CVE-2016-10228
+Gitlab.org,Defend,container_scanning,Clair,confirmed,CVE-2010-4052 in glibc,,CVE-2010-4052 in glibc,low,CVE-2010-4052
+Gitlab.org,Defend,container_scanning,Clair,detected,CVE-2018-18520 in elfutils,,CVE-2018-18520 in elfutils,low,CVE-2018-18520
+Gitlab.org,Defend,container_scanning,Clair,detected,CVE-2018-16869 in nettle,,CVE-2018-16869 in nettle,unknown,CVE-2018-16869
+Gitlab.org,Defend,dependency_scanning,Gemnasium,detected,Regular Expression Denial of Service in debug,,Regular Expression Denial of Service in debug,unknown,yarn.lock:debug:gemnasium:37283ed4-0380-40d7-ada7-2d994afcc62a
+Gitlab.org,Defend,dependency_scanning,Gemnasium,detected,Authentication bypass via incorrect DOM traversal and canonicalization in saml2-js,,Authentication bypass via incorrect DOM traversal and canonicalization in saml2-js,unknown,yarn.lock:saml2-js:gemnasium:9952e574-7b5b-46fa-a270-aeb694198a98
+Gitlab.org,Defend,sast,Find Security Bugs,detected,Predictable pseudorandom number generator,,Predictable pseudorandom number generator,medium,818bf5dacb291e15d9e6dc3c5ac32178:PREDICTABLE_RANDOM:src/main/java/com/gitlab/security_products/tests/App.java:47
+Gitlab.org,Defend,sast,Find Security Bugs,detected,Cipher with no integrity,,Cipher with no integrity,medium,e6449b89335daf53c0db4c0219bc1634:CIPHER_INTEGRITY:src/main/java/com/gitlab/security_products/tests/App.java:29
+Gitlab.org,Defend,sast,Find Security Bugs,detected,Predictable pseudorandom number generator,,Predictable pseudorandom number generator,medium,e8ff1d01f74cd372f78da8f5247d3e73:PREDICTABLE_RANDOM:src/main/java/com/gitlab/security_products/tests/App.java:41
+Gitlab.org,Defend,sast,Find Security Bugs,confirmed,ECB mode is insecure 2,,ECB mode is insecure,medium,ea0f905fc76f2739d5f10a1fd1e37a10:ECB_MODE:src/main/java/com/gitlab/security_products/tests/App.java:29
+Gitlab.org,Defend,```
diff --git a/doc/api/wikis.md b/doc/api/wikis.md
index cdaf95fc291..48b04fefd39 100644
--- a/doc/api/wikis.md
+++ b/doc/api/wikis.md
@@ -1,6 +1,6 @@
# Wikis API
-> [Introduced][ce-13372] in GitLab 10.0.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13372) in GitLab 10.0.
Available only in APIv4.
@@ -153,8 +153,6 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git
On success the HTTP status code is `204` and no JSON response is expected.
-[ce-13372]: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13372
-
## Upload an attachment to the wiki repository
Uploads a file to the attachment folder inside the wiki's repository. The