Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-02-10 21:09:02 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-02-10 21:09:02 +0300
commit577bb49691b11bc8ebae3a4966153ed39af60d87 (patch)
treec34970de0f1fc58463448da0f34be13a2f3f47f9 /doc
parent6cffe9ea21d0974ebd3c544a3b711ffcd35649e2 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r--doc/administration/object_storage.md14
-rw-r--r--doc/administration/operations/extra_sidekiq_processes.md6
-rw-r--r--doc/api/graphql/reference/gitlab_schema.graphql293
-rw-r--r--doc/api/graphql/reference/gitlab_schema.json294
-rw-r--r--doc/api/graphql/reference/index.md250
-rw-r--r--doc/api/repositories.md25
-rw-r--r--doc/architecture/blueprints/graphql_api/index.md183
-rw-r--r--doc/ci/yaml/README.md6
-rw-r--r--doc/development/README.md1
-rw-r--r--doc/development/application_limits.md4
-rw-r--r--doc/development/documentation/index.md130
-rw-r--r--doc/development/fe_guide/dependencies.md67
-rw-r--r--doc/development/new_fe_guide/dependencies.md38
-rw-r--r--doc/development/new_fe_guide/index.md4
-rw-r--r--doc/development/profiling.md2
-rw-r--r--doc/install/installation.md2
-rw-r--r--doc/topics/gitlab_flow.md12
-rw-r--r--doc/user/admin_area/diff_limits.md20
-rw-r--r--doc/user/admin_area/settings/account_and_limit_settings.md4
-rw-r--r--doc/user/admin_area/settings/instance_template_repository.md11
-rw-r--r--doc/user/admin_area/settings/push_event_activities_limit.md10
-rw-r--r--doc/user/analytics/code_review_analytics.md19
-rw-r--r--doc/user/packages/container_registry/index.md2
-rw-r--r--doc/user/project/index.md140
24 files changed, 858 insertions, 679 deletions
diff --git a/doc/administration/object_storage.md b/doc/administration/object_storage.md
index d1b460df273..ecc2c924254 100644
--- a/doc/administration/object_storage.md
+++ b/doc/administration/object_storage.md
@@ -562,8 +562,7 @@ supported by consolidated configuration form, refer to the following guides:
If you're working to [scale out](reference_architectures/index.md) your GitLab implementation,
or add fault tolerance and redundancy, you may be
looking at removing dependencies on block or network file systems.
-See the following additional guides and
-[note that Pages requires disk storage](#gitlab-pages-requires-nfs):
+See the following additional guides:
1. Make sure the [`git` user home directory](https://docs.gitlab.com/omnibus/settings/configuration.html#moving-the-home-directory-for-a-user) is on local disk.
1. Configure [database lookup of SSH keys](operations/fast_ssh_key_lookup.md)
@@ -598,17 +597,6 @@ with the Fog library that GitLab uses. Symptoms include an error in `production.
411 Length Required
```
-### GitLab Pages requires NFS
-
-If you're working to add more GitLab servers for [scaling or fault tolerance](reference_architectures/index.md)
-and one of your requirements is [GitLab Pages](../user/project/pages/index.md) this currently requires
-NFS. There is [work in progress](https://gitlab.com/gitlab-org/gitlab-pages/-/issues/196)
-to remove this dependency. In the future, GitLab Pages may use
-[object storage](https://gitlab.com/gitlab-org/gitlab/-/issues/208135).
-
-The dependency on disk storage also prevents Pages being deployed using the
-[GitLab Helm chart](https://gitlab.com/gitlab-org/charts/gitlab/-/issues/37).
-
### Incremental logging is required for CI to use object storage
If you configure GitLab to use object storage for CI logs and artifacts,
diff --git a/doc/administration/operations/extra_sidekiq_processes.md b/doc/administration/operations/extra_sidekiq_processes.md
index 0157ea8f430..d07afb3bb14 100644
--- a/doc/administration/operations/extra_sidekiq_processes.md
+++ b/doc/administration/operations/extra_sidekiq_processes.md
@@ -27,7 +27,7 @@ can be started.
## Start multiple processes
> - [Introduced](https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/4006) in GitLab 12.10, starting multiple processes with Sidekiq cluster.
-> - [Sidekiq cluster moved](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/181) to GitLab [Free](https://about.gitlab.com/pricing/) in GitLab 12.10.
+> - [Sidekiq cluster moved](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/181) to GitLab Free in 12.10.
> - [Sidekiq cluster became default](https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/4140) in GitLab 13.0.
To start multiple processes:
@@ -112,8 +112,8 @@ you list:
## Queue selector
-> - [Introduced](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/45) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.8.
-> - [Sidekiq cluster including queue selector moved](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/181) to GitLab [Free](https://about.gitlab.com/pricing/) in GitLab 12.10.
+> - [Introduced](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/45) in GitLab 12.8.
+> - [Sidekiq cluster, including queue selector, moved](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/181) to GitLab Free in 12.10.
> - [Renamed from `experimental_queue_selector` to `queue_selector`](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/147) in GitLab 13.6.
In addition to selecting queues by name, as above, the `queue_selector`
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql
index e2f8485ce63..b0851199d23 100644
--- a/doc/api/graphql/reference/gitlab_schema.graphql
+++ b/doc/api/graphql/reference/gitlab_schema.graphql
@@ -1461,12 +1461,12 @@ Represents a project or group board
"""
type Board {
"""
- The board assignee
+ The board assignee.
"""
assignee: User
"""
- Epics associated with board issues
+ Epics associated with board issues.
"""
epics(
"""
@@ -1516,7 +1516,7 @@ type Board {
iteration: Iteration
"""
- Labels of the board
+ Labels of the board.
"""
labels(
"""
@@ -1576,7 +1576,7 @@ type Board {
): BoardListConnection
"""
- The board milestone
+ The board milestone.
"""
milestone: Milestone
@@ -1596,7 +1596,7 @@ type Board {
webUrl: String!
"""
- Weight of the board
+ Weight of the board.
"""
weight: Int
}
@@ -2099,7 +2099,7 @@ type BoardEpic implements CurrentUserTodos & Noteable {
userPermissions: EpicPermissions!
"""
- User preferences for the epic on the issue board
+ User preferences for the epic on the issue board.
"""
userPreferences: BoardEpicUserPreferences
@@ -2154,7 +2154,7 @@ Represents user preferences for a board epic
"""
type BoardEpicUserPreferences {
"""
- Indicates epic should be displayed as collapsed
+ Indicates epic should be displayed as collapsed.
"""
collapsed: Boolean!
}
@@ -2176,22 +2176,22 @@ input BoardIssueInput {
authorUsername: String
"""
- Filter by epic ID. Incompatible with epicWildcardId
+ Filter by epic ID. Incompatible with epicWildcardId.
"""
epicId: EpicID
"""
- Filter by epic ID wildcard. Incompatible with epicId
+ Filter by epic ID wildcard. Incompatible with epicId.
"""
epicWildcardId: EpicWildcardId
"""
- Filter by iteration title
+ Filter by iteration title.
"""
iterationTitle: String
"""
- Filter by iteration ID wildcard
+ Filter by iteration ID wildcard.
"""
iterationWildcardId: IterationWildcardId
@@ -2226,7 +2226,7 @@ input BoardIssueInput {
search: String
"""
- Filter by weight
+ Filter by weight.
"""
weight: String
}
@@ -2236,7 +2236,7 @@ Represents a list for an issue board
"""
type BoardList {
"""
- Assignee in the list
+ Assignee in the list.
"""
assignee: User
@@ -2286,7 +2286,7 @@ type BoardList {
issuesCount: Int
"""
- Iteration of the list
+ Iteration of the list.
"""
iteration: Iteration
@@ -2296,7 +2296,7 @@ type BoardList {
label: Label
"""
- The current limit metric for the list
+ The current limit metric for the list.
"""
limitMetric: ListLimitMetric
@@ -2306,17 +2306,17 @@ type BoardList {
listType: String!
"""
- Maximum number of issues in the list
+ Maximum number of issues in the list.
"""
maxIssueCount: Int
"""
- Maximum weight of issues in the list
+ Maximum weight of issues in the list.
"""
maxIssueWeight: Int
"""
- Milestone of the list
+ Milestone of the list.
"""
milestone: Milestone
@@ -2331,7 +2331,7 @@ type BoardList {
title: String!
"""
- Total weight of all issues in the list
+ Total weight of all issues in the list.
"""
totalWeight: Int
}
@@ -2508,27 +2508,27 @@ Represents the total number of issues and their weights for a particular day
"""
type BurnupChartDailyTotals {
"""
- Number of closed issues as of this day
+ Number of closed issues as of this day.
"""
completedCount: Int!
"""
- Total weight of closed issues as of this day
+ Total weight of closed issues as of this day.
"""
completedWeight: Int!
"""
- Date for burnup totals
+ Date for burnup totals.
"""
date: ISO8601Date!
"""
- Number of issues as of this day
+ Number of issues as of this day.
"""
scopeCount: Int!
"""
- Total weight of issues as of this day
+ Total weight of issues as of this day.
"""
scopeWeight: Int!
}
@@ -3294,27 +3294,27 @@ type CiStageEdge {
type ClusterAgent {
"""
- Timestamp the cluster agent was created
+ Timestamp the cluster agent was created.
"""
createdAt: Time
"""
- ID of the cluster agent
+ ID of the cluster agent.
"""
id: ID!
"""
- Name of the cluster agent
+ Name of the cluster agent.
"""
name: String
"""
- The project this cluster agent is associated with
+ The project this cluster agent is associated with.
"""
project: Project
"""
- Tokens associated with the cluster agent
+ Tokens associated with the cluster agent.
"""
tokens(
"""
@@ -3339,7 +3339,7 @@ type ClusterAgent {
): ClusterAgentTokenConnection
"""
- Timestamp the cluster agent was updated
+ Timestamp the cluster agent was updated.
"""
updatedAt: Time
}
@@ -3416,17 +3416,17 @@ type ClusterAgentEdge {
type ClusterAgentToken {
"""
- Cluster agent this token is associated with
+ Cluster agent this token is associated with.
"""
clusterAgent: ClusterAgent
"""
- Timestamp the token was created
+ Timestamp the token was created.
"""
createdAt: Time
"""
- Global ID of the token
+ Global ID of the token.
"""
id: ClustersAgentTokenID!
}
@@ -3927,22 +3927,22 @@ Represents a ComplianceFramework associated with a Project
"""
type ComplianceFramework {
"""
- Hexadecimal representation of compliance framework's label color
+ Hexadecimal representation of compliance framework's label color.
"""
color: String!
"""
- Description of the compliance framework
+ Description of the compliance framework.
"""
description: String!
"""
- Compliance framework ID
+ Compliance framework ID.
"""
id: ID!
"""
- Name of the compliance framework
+ Name of the compliance framework.
"""
name: String!
@@ -5889,22 +5889,22 @@ Represents a DAST scanner profile
"""
type DastScannerProfile {
"""
- Relative web path to the edit page of a scanner profile
+ Relative web path to the edit page of a scanner profile.
"""
editPath: String
"""
- ID of the DAST scanner profile Deprecated in 13.6: Use `id`.
+ ID of the DAST scanner profile. Deprecated in 13.6: Use `id`.
"""
globalId: DastScannerProfileID! @deprecated(reason: "Use `id`. Deprecated in 13.6.")
"""
- ID of the DAST scanner profile
+ ID of the DAST scanner profile.
"""
id: DastScannerProfileID!
"""
- Name of the DAST scanner profile
+ Name of the DAST scanner profile.
"""
profileName: String
@@ -5919,12 +5919,12 @@ type DastScannerProfile {
showDebugMessages: Boolean!
"""
- The maximum number of minutes allowed for the spider to traverse the site
+ The maximum number of minutes allowed for the spider to traverse the site.
"""
spiderTimeout: Int
"""
- The maximum number of seconds allowed for the site under test to respond to a request
+ The maximum number of seconds allowed for the site under test to respond to a request.
"""
targetTimeout: Int
@@ -6160,27 +6160,27 @@ Represents a DAST Site Profile
"""
type DastSiteProfile {
"""
- Relative web path to the edit page of a site profile
+ Relative web path to the edit page of a site profile.
"""
editPath: String
"""
- ID of the site profile
+ ID of the site profile.
"""
id: DastSiteProfileID!
"""
- Normalized URL of the target to be scanned
+ Normalized URL of the target to be scanned.
"""
normalizedTargetUrl: String
"""
- The name of the site profile
+ The name of the site profile.
"""
profileName: String
"""
- The URL of the target to be scanned
+ The URL of the target to be scanned.
"""
targetUrl: String
@@ -6190,7 +6190,7 @@ type DastSiteProfile {
userPermissions: DastSiteProfilePermissions!
"""
- The current validation status of the site profile
+ The current validation status of the site profile.
"""
validationStatus: DastSiteProfileValidationStatusEnum
}
@@ -6462,17 +6462,17 @@ Represents a DAST Site Validation
"""
type DastSiteValidation {
"""
- Global ID of the site validation
+ Global ID of the site validation.
"""
id: DastSiteValidationID!
"""
- Normalized URL of the target to be validated
+ Normalized URL of the target to be validated.
"""
normalizedTargetUrl: String
"""
- Status of the site validation
+ Status of the site validation.
"""
status: DastSiteProfileValidationStatusEnum!
}
@@ -7936,22 +7936,22 @@ Segment
"""
type DevopsAdoptionSegment {
"""
- Assigned groups
+ Assigned groups.
"""
groups: [Group!]
"""
- ID of the segment
+ ID of the segment.
"""
id: ID!
"""
- The latest adoption metrics for the segment
+ The latest adoption metrics for the segment.
"""
latestSnapshot: DevopsAdoptionSnapshot
"""
- Name of the segment
+ Name of the segment.
"""
name: String!
}
@@ -7996,52 +7996,52 @@ Snapshot
"""
type DevopsAdoptionSnapshot {
"""
- At least one deployment succeeded
+ At least one deployment succeeded.
"""
deploySucceeded: Boolean!
"""
- The end time for the snapshot where the data points were collected
+ The end time for the snapshot where the data points were collected.
"""
endTime: Time!
"""
- At least one issue was opened
+ At least one issue was opened.
"""
issueOpened: Boolean!
"""
- At least one merge request was approved
+ At least one merge request was approved.
"""
mergeRequestApproved: Boolean!
"""
- At least one merge request was opened
+ At least one merge request was opened.
"""
mergeRequestOpened: Boolean!
"""
- At least one pipeline succeeded
+ At least one pipeline succeeded.
"""
pipelineSucceeded: Boolean!
"""
- The time the snapshot was recorded
+ The time the snapshot was recorded.
"""
recordedAt: Time!
"""
- At least one runner was used
+ At least one runner was used.
"""
runnerConfigured: Boolean!
"""
- At least one security scan succeeded
+ At least one security scan succeeded.
"""
securityScanSucceeded: Boolean!
"""
- The start time for the snapshot where the data points were collected
+ The start time for the snapshot where the data points were collected.
"""
startTime: Time!
}
@@ -9337,22 +9337,22 @@ Counts of descendent epics
"""
type EpicDescendantCount {
"""
- Number of closed child epics
+ Number of closed child epics.
"""
closedEpics: Int
"""
- Number of closed epic issues
+ Number of closed epic issues.
"""
closedIssues: Int
"""
- Number of opened child epics
+ Number of opened child epics.
"""
openedEpics: Int
"""
- Number of opened epic issues
+ Number of opened epic issues.
"""
openedIssues: Int
}
@@ -9362,12 +9362,12 @@ Total weight of open and closed descendant issues
"""
type EpicDescendantWeights {
"""
- Total weight of completed (closed) issues in this epic, including epic descendants
+ Total weight of completed (closed) issues in this epic, including epic descendants.
"""
closedIssues: Int
"""
- Total weight of opened issues in this epic, including epic descendants
+ Total weight of opened issues in this epic, including epic descendants.
"""
openedIssues: Int
}
@@ -9392,17 +9392,17 @@ Health status of child issues
"""
type EpicHealthStatus {
"""
- Number of issues at risk
+ Number of issues at risk.
"""
issuesAtRisk: Int
"""
- Number of issues that need attention
+ Number of issues that need attention.
"""
issuesNeedingAttention: Int
"""
- Number of issues on track
+ Number of issues on track.
"""
issuesOnTrack: Int
}
@@ -9577,7 +9577,7 @@ type EpicIssue implements CurrentUserTodos & Noteable {
epic: Epic
"""
- ID of the epic-issue relation
+ ID of the epic-issue relation.
"""
epicIssueId: ID!
@@ -9597,7 +9597,7 @@ type EpicIssue implements CurrentUserTodos & Noteable {
humanTotalTimeSpent: String
"""
- Global ID of the epic-issue relation
+ Global ID of the epic-issue relation.
"""
id: ID
@@ -9717,7 +9717,7 @@ type EpicIssue implements CurrentUserTodos & Noteable {
): String!
"""
- URI path of the epic-issue relation
+ URI path of the epic-issue relation.
"""
relationPath: String
@@ -9852,7 +9852,7 @@ type EpicIssueConnection {
pageInfo: PageInfo!
"""
- Total weight of issues collection
+ Total weight of issues collection.
"""
weight: Int!
}
@@ -10557,12 +10557,12 @@ type GrafanaIntegration {
type Group {
"""
- Size limit for repositories in the namespace in bytes
+ Size limit for repositories in the namespace in bytes.
"""
actualRepositorySizeLimit: Float
"""
- Additional storage purchased for the root namespace in bytes
+ Additional storage purchased for the root namespace in bytes.
"""
additionalPurchasedStorageSize: Float
@@ -10617,7 +10617,7 @@ type Group {
): BoardConnection
"""
- Represents the code coverage activity for this group
+ Represents the code coverage activity for this group.
"""
codeCoverageActivities(
"""
@@ -10718,7 +10718,7 @@ type Group {
containerRepositoriesCount: Int!
"""
- Includes at least one project where the repository size exceeds the limit
+ Includes at least one project where the repository size exceeds the limit.
"""
containsLockedProjects: Boolean!
@@ -10763,7 +10763,7 @@ type Group {
emailsDisabled: Boolean
"""
- Find a single epic
+ Find a single epic.
"""
epic(
"""
@@ -10841,7 +10841,7 @@ type Group {
): Epic
"""
- Find a single epic board
+ Find a single epic board.
"""
epicBoard(
"""
@@ -10851,7 +10851,7 @@ type Group {
): EpicBoard
"""
- Find epic boards
+ Find epic boards.
"""
epicBoards(
"""
@@ -10876,7 +10876,7 @@ type Group {
): EpicBoardConnection
"""
- Find epics
+ Find epics.
"""
epics(
"""
@@ -11034,7 +11034,7 @@ type Group {
id: ID!
"""
- Status of the temporary storage increase
+ Status of the temporary storage increase.
"""
isTemporaryStorageIncreaseEnabled: Boolean!
@@ -11169,7 +11169,7 @@ type Group {
): IssueConnection
"""
- Find iterations
+ Find iterations.
"""
iterations(
"""
@@ -11515,7 +11515,7 @@ type Group {
): ProjectConnection!
"""
- Number of projects in the root namespace where the repository size exceeds the limit
+ Number of projects in the root namespace where the repository size exceeds the limit.
"""
repositorySizeExcessProjectCount: Int!
@@ -11540,12 +11540,12 @@ type Group {
shareWithGroupLock: Boolean
"""
- Group statistics
+ Group statistics.
"""
stats: GroupStats
"""
- Total storage limit of the root namespace in bytes
+ Total storage limit of the root namespace in bytes.
"""
storageSizeLimit: Float
@@ -11555,12 +11555,12 @@ type Group {
subgroupCreationLevel: String
"""
- Date until the temporary storage increase is active
+ Date until the temporary storage increase is active.
"""
temporaryStorageIncreaseEndsOn: Time
"""
- Time logged in issues by group members
+ Time logged in issues by group members.
"""
timelogs(
"""
@@ -11605,12 +11605,12 @@ type Group {
): TimelogConnection!
"""
- Total repository size of all projects in the root namespace in bytes
+ Total repository size of all projects in the root namespace in bytes.
"""
totalRepositorySize: Float
"""
- Total excess repository size of all projects in the root namespace in bytes
+ Total excess repository size of all projects in the root namespace in bytes.
"""
totalRepositorySizeExcess: Float
@@ -11630,7 +11630,7 @@ type Group {
visibility: String
"""
- Vulnerabilities reported on the projects in the group and its subgroups
+ Vulnerabilities reported on the projects in the group and its subgroups.
"""
vulnerabilities(
"""
@@ -11695,7 +11695,7 @@ type Group {
): VulnerabilityConnection
"""
- Number of vulnerabilities per day for the projects in the group and its subgroups
+ Number of vulnerabilities per day for the projects in the group and its subgroups.
"""
vulnerabilitiesCountByDay(
"""
@@ -11731,7 +11731,7 @@ type Group {
"""
Number of vulnerabilities per severity level, per day, for the projects in the
- group and its subgroups Deprecated in 13.3: Use `vulnerabilitiesCountByDay`.
+ group and its subgroups. Deprecated in 13.3: Use `vulnerabilitiesCountByDay`.
"""
vulnerabilitiesCountByDayAndSeverity(
"""
@@ -11766,7 +11766,7 @@ type Group {
): VulnerabilitiesCountByDayAndSeverityConnection @deprecated(reason: "Use `vulnerabilitiesCountByDay`. Deprecated in 13.3.")
"""
- Represents vulnerable project counts for each grade
+ Represents vulnerable project counts for each grade.
"""
vulnerabilityGrades(
"""
@@ -11776,7 +11776,7 @@ type Group {
): [VulnerableProjectsByGrade!]!
"""
- Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups
+ Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups.
"""
vulnerabilityScanners(
"""
@@ -11801,7 +11801,7 @@ type Group {
): VulnerabilityScannerConnection
"""
- Counts for each vulnerability severity in the group and its subgroups
+ Counts for each vulnerability severity in the group and its subgroups.
"""
vulnerabilitySeveritiesCount(
"""
@@ -13058,7 +13058,7 @@ type IssueConnection {
pageInfo: PageInfo!
"""
- Total weight of issues collection
+ Total weight of issues collection.
"""
weight: Int!
}
@@ -14656,12 +14656,12 @@ type MergeRequest implements CurrentUserTodos & Noteable {
allowCollaboration: Boolean
"""
- Number of approvals left
+ Number of approvals left.
"""
approvalsLeft: Int
"""
- Number of approvals required
+ Number of approvals required.
"""
approvalsRequired: Int
@@ -14971,6 +14971,7 @@ type MergeRequest implements CurrentUserTodos & Noteable {
mergeStatus: String
"""
+ Number of merge requests in the merge train.
"""
mergeTrainsCount: Int
@@ -16524,12 +16525,12 @@ enum MutationOperationMode {
type Namespace {
"""
- Size limit for repositories in the namespace in bytes
+ Size limit for repositories in the namespace in bytes.
"""
actualRepositorySizeLimit: Float
"""
- Additional storage purchased for the root namespace in bytes
+ Additional storage purchased for the root namespace in bytes.
"""
additionalPurchasedStorageSize: Float
@@ -16565,7 +16566,7 @@ type Namespace {
): ComplianceFrameworkConnection
"""
- Includes at least one project where the repository size exceeds the limit
+ Includes at least one project where the repository size exceeds the limit.
"""
containsLockedProjects: Boolean!
@@ -16595,7 +16596,7 @@ type Namespace {
id: ID!
"""
- Status of the temporary storage increase
+ Status of the temporary storage increase.
"""
isTemporaryStorageIncreaseEnabled: Boolean!
@@ -16665,7 +16666,7 @@ type Namespace {
): ProjectConnection!
"""
- Number of projects in the root namespace where the repository size exceeds the limit
+ Number of projects in the root namespace where the repository size exceeds the limit.
"""
repositorySizeExcessProjectCount: Int!
@@ -16680,22 +16681,22 @@ type Namespace {
rootStorageStatistics: RootStorageStatistics
"""
- Total storage limit of the root namespace in bytes
+ Total storage limit of the root namespace in bytes.
"""
storageSizeLimit: Float
"""
- Date until the temporary storage increase is active
+ Date until the temporary storage increase is active.
"""
temporaryStorageIncreaseEndsOn: Time
"""
- Total repository size of all projects in the root namespace in bytes
+ Total repository size of all projects in the root namespace in bytes.
"""
totalRepositorySize: Float
"""
- Total excess repository size of all projects in the root namespace in bytes
+ Total excess repository size of all projects in the root namespace in bytes.
"""
totalRepositorySizeExcess: Float
@@ -16807,12 +16808,12 @@ input NegatedBoardIssueInput {
authorUsername: String
"""
- Filter by epic ID. Incompatible with epicWildcardId
+ Filter by epic ID. Incompatible with epicWildcardId.
"""
epicId: EpicID
"""
- Filter by iteration title
+ Filter by iteration title.
"""
iterationTitle: String
@@ -16837,7 +16838,7 @@ input NegatedBoardIssueInput {
releaseTag: String
"""
- Filter by weight
+ Filter by weight.
"""
weight: String
}
@@ -18130,7 +18131,7 @@ type Pipeline {
retryable: Boolean!
"""
- Vulnerability and scanned resource counts for each security scanner of the pipeline
+ Vulnerability and scanned resource counts for each security scanner of the pipeline.
"""
securityReportSummary: SecurityReportSummary
@@ -18437,7 +18438,7 @@ enum PipelineStatusEnum {
type Project {
"""
- Size limit for the repository in bytes
+ Size limit for the repository in bytes.
"""
actualRepositorySizeLimit: Float
@@ -18572,7 +18573,7 @@ type Project {
): AlertManagementIntegrationConnection
"""
- Extract alert fields from payload for custom mapping
+ Extract alert fields from payload for custom mapping.
"""
alertManagementPayloadFields(
"""
@@ -18653,7 +18654,7 @@ type Project {
ciCdSettings: ProjectCiCdSetting
"""
- Find a single cluster agent by name
+ Find a single cluster agent by name.
"""
clusterAgent(
"""
@@ -18663,7 +18664,7 @@ type Project {
): ClusterAgent
"""
- Cluster agents associated with the project
+ Cluster agents associated with the project.
"""
clusterAgents(
"""
@@ -18688,12 +18689,12 @@ type Project {
): ClusterAgentConnection
"""
- Code coverage summary associated with the project
+ Code coverage summary associated with the project.
"""
codeCoverageSummary: CodeCoverageSummary
"""
- Compliance frameworks associated with the project
+ Compliance frameworks associated with the project.
"""
complianceFrameworks(
"""
@@ -18994,7 +18995,7 @@ type Project {
importStatus: String
"""
- Incident Management On-call schedules of the project
+ Incident Management On-call schedules of the project.
"""
incidentManagementOncallSchedules(
"""
@@ -19339,7 +19340,7 @@ type Project {
issuesEnabled: Boolean
"""
- Find iterations
+ Find iterations.
"""
iterations(
"""
@@ -19883,7 +19884,7 @@ type Project {
repository: Repository
"""
- Size of repository that exceeds the limit in bytes
+ Size of repository that exceeds the limit in bytes.
"""
repositorySizeExcess: Float
@@ -19893,7 +19894,7 @@ type Project {
requestAccessEnabled: Boolean
"""
- Find a single requirement
+ Find a single requirement.
"""
requirement(
"""
@@ -19928,12 +19929,12 @@ type Project {
): Requirement
"""
- Number of requirements for the project by their state
+ Number of requirements for the project by their state.
"""
requirementStatesCount: RequirementStatesCount
"""
- Find requirements
+ Find requirements.
"""
requirements(
"""
@@ -19993,12 +19994,12 @@ type Project {
sastCiConfiguration: SastCiConfiguration
"""
- Path to project's security dashboard
+ Path to project's security dashboard.
"""
securityDashboardPath: String
"""
- Information about security analyzers used in the project
+ Information about security analyzers used in the project.
"""
securityScanners: SecurityScanners
@@ -20183,7 +20184,7 @@ type Project {
visibility: String
"""
- Vulnerabilities reported on the project
+ Vulnerabilities reported on the project.
"""
vulnerabilities(
"""
@@ -20248,7 +20249,7 @@ type Project {
): VulnerabilityConnection
"""
- Number of vulnerabilities per day for the project
+ Number of vulnerabilities per day for the project.
"""
vulnerabilitiesCountByDay(
"""
@@ -20283,7 +20284,7 @@ type Project {
): VulnerabilitiesCountByDayConnection
"""
- Vulnerability scanners reported on the project vulnerabilities
+ Vulnerability scanners reported on the project vulnerabilities.
"""
vulnerabilityScanners(
"""
@@ -20308,7 +20309,7 @@ type Project {
): VulnerabilityScannerConnection
"""
- Counts for each vulnerability severity in the project
+ Counts for each vulnerability severity in the project.
"""
vulnerabilitySeveritiesCount(
"""
@@ -21021,7 +21022,7 @@ type Query {
designManagement: DesignManagement!
"""
- Get configured DevOps adoption segments on the instance
+ Get configured DevOps adoption segments on the instance.
"""
devopsAdoptionSegments(
"""
@@ -21056,7 +21057,7 @@ type Query {
): String!
"""
- Find a Geo node
+ Find a Geo node.
"""
geoNode(
"""
@@ -21076,7 +21077,7 @@ type Query {
): Group
"""
- Fields related to Instance Security Dashboard
+ Fields related to Instance Security Dashboard.
"""
instanceSecurityDashboard: InstanceSecurityDashboard
@@ -21131,11 +21132,11 @@ type Query {
): Issue
"""
- Find an iteration
+ Find an iteration.
"""
iteration(
"""
- Find an iteration by its ID
+ Find an iteration by its ID.
"""
id: IterationID!
): Iteration
@@ -21406,7 +21407,7 @@ type Query {
): UserConnection
"""
- Vulnerabilities reported on projects on the current user's instance security dashboard
+ Vulnerabilities reported on projects on the current user's instance security dashboard.
"""
vulnerabilities(
"""
@@ -21471,7 +21472,7 @@ type Query {
): VulnerabilityConnection
"""
- Number of vulnerabilities per day for the projects on the current user's instance security dashboard
+ Number of vulnerabilities per day for the projects on the current user's instance security dashboard.
"""
vulnerabilitiesCountByDay(
"""
@@ -21507,7 +21508,7 @@ type Query {
"""
Number of vulnerabilities per severity level, per day, for the projects on the
- current user's instance security dashboard Deprecated in 13.3: Use
+ current user's instance security dashboard. Deprecated in 13.3: Use
`vulnerabilitiesCountByDay`.
"""
vulnerabilitiesCountByDayAndSeverity(
@@ -21543,11 +21544,11 @@ type Query {
): VulnerabilitiesCountByDayAndSeverityConnection @deprecated(reason: "Use `vulnerabilitiesCountByDay`. Deprecated in 13.3.")
"""
- Find a vulnerability
+ Find a vulnerability.
"""
vulnerability(
"""
- The Global ID of the Vulnerability
+ The Global ID of the Vulnerability.
"""
id: VulnerabilityID!
): Vulnerability
diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json
index 6ff2cab1512..b60d3f92754 100644
--- a/doc/api/graphql/reference/gitlab_schema.json
+++ b/doc/api/graphql/reference/gitlab_schema.json
@@ -3829,7 +3829,7 @@
"fields": [
{
"name": "assignee",
- "description": "The board assignee",
+ "description": "The board assignee.",
"args": [
],
@@ -3843,7 +3843,7 @@
},
{
"name": "epics",
- "description": "Epics associated with board issues",
+ "description": "Epics associated with board issues.",
"args": [
{
"name": "issueFilters",
@@ -3966,7 +3966,7 @@
},
{
"name": "labels",
- "description": "Labels of the board",
+ "description": "Labels of the board.",
"args": [
{
"name": "after",
@@ -4092,7 +4092,7 @@
},
{
"name": "milestone",
- "description": "The board milestone",
+ "description": "The board milestone.",
"args": [
],
@@ -4156,7 +4156,7 @@
},
{
"name": "weight",
- "description": "Weight of the board",
+ "description": "Weight of the board.",
"args": [
],
@@ -5456,7 +5456,7 @@
},
{
"name": "userPreferences",
- "description": "User preferences for the epic on the issue board",
+ "description": "User preferences for the epic on the issue board.",
"args": [
],
@@ -5640,7 +5640,7 @@
"fields": [
{
"name": "collapsed",
- "description": "Indicates epic should be displayed as collapsed",
+ "description": "Indicates epic should be displayed as collapsed.",
"args": [
],
@@ -5750,7 +5750,7 @@
},
{
"name": "epicId",
- "description": "Filter by epic ID. Incompatible with epicWildcardId",
+ "description": "Filter by epic ID. Incompatible with epicWildcardId.",
"type": {
"kind": "SCALAR",
"name": "EpicID",
@@ -5760,7 +5760,7 @@
},
{
"name": "iterationTitle",
- "description": "Filter by iteration title",
+ "description": "Filter by iteration title.",
"type": {
"kind": "SCALAR",
"name": "String",
@@ -5770,7 +5770,7 @@
},
{
"name": "weight",
- "description": "Filter by weight",
+ "description": "Filter by weight.",
"type": {
"kind": "SCALAR",
"name": "String",
@@ -5800,7 +5800,7 @@
},
{
"name": "epicWildcardId",
- "description": "Filter by epic ID wildcard. Incompatible with epicId",
+ "description": "Filter by epic ID wildcard. Incompatible with epicId.",
"type": {
"kind": "ENUM",
"name": "EpicWildcardId",
@@ -5810,7 +5810,7 @@
},
{
"name": "iterationWildcardId",
- "description": "Filter by iteration ID wildcard",
+ "description": "Filter by iteration ID wildcard.",
"type": {
"kind": "ENUM",
"name": "IterationWildcardId",
@@ -5830,7 +5830,7 @@
"fields": [
{
"name": "assignee",
- "description": "Assignee in the list",
+ "description": "Assignee in the list.",
"args": [
],
@@ -5953,7 +5953,7 @@
},
{
"name": "iteration",
- "description": "Iteration of the list",
+ "description": "Iteration of the list.",
"args": [
],
@@ -5981,7 +5981,7 @@
},
{
"name": "limitMetric",
- "description": "The current limit metric for the list",
+ "description": "The current limit metric for the list.",
"args": [
],
@@ -6013,7 +6013,7 @@
},
{
"name": "maxIssueCount",
- "description": "Maximum number of issues in the list",
+ "description": "Maximum number of issues in the list.",
"args": [
],
@@ -6027,7 +6027,7 @@
},
{
"name": "maxIssueWeight",
- "description": "Maximum weight of issues in the list",
+ "description": "Maximum weight of issues in the list.",
"args": [
],
@@ -6041,7 +6041,7 @@
},
{
"name": "milestone",
- "description": "Milestone of the list",
+ "description": "Milestone of the list.",
"args": [
],
@@ -6087,7 +6087,7 @@
},
{
"name": "totalWeight",
- "description": "Total weight of all issues in the list",
+ "description": "Total weight of all issues in the list.",
"args": [
],
@@ -6585,7 +6585,7 @@
"fields": [
{
"name": "completedCount",
- "description": "Number of closed issues as of this day",
+ "description": "Number of closed issues as of this day.",
"args": [
],
@@ -6603,7 +6603,7 @@
},
{
"name": "completedWeight",
- "description": "Total weight of closed issues as of this day",
+ "description": "Total weight of closed issues as of this day.",
"args": [
],
@@ -6621,7 +6621,7 @@
},
{
"name": "date",
- "description": "Date for burnup totals",
+ "description": "Date for burnup totals.",
"args": [
],
@@ -6639,7 +6639,7 @@
},
{
"name": "scopeCount",
- "description": "Number of issues as of this day",
+ "description": "Number of issues as of this day.",
"args": [
],
@@ -6657,7 +6657,7 @@
},
{
"name": "scopeWeight",
- "description": "Total weight of issues as of this day",
+ "description": "Total weight of issues as of this day.",
"args": [
],
@@ -8917,7 +8917,7 @@
"fields": [
{
"name": "createdAt",
- "description": "Timestamp the cluster agent was created",
+ "description": "Timestamp the cluster agent was created.",
"args": [
],
@@ -8931,7 +8931,7 @@
},
{
"name": "id",
- "description": "ID of the cluster agent",
+ "description": "ID of the cluster agent.",
"args": [
],
@@ -8949,7 +8949,7 @@
},
{
"name": "name",
- "description": "Name of the cluster agent",
+ "description": "Name of the cluster agent.",
"args": [
],
@@ -8963,7 +8963,7 @@
},
{
"name": "project",
- "description": "The project this cluster agent is associated with",
+ "description": "The project this cluster agent is associated with.",
"args": [
],
@@ -8977,7 +8977,7 @@
},
{
"name": "tokens",
- "description": "Tokens associated with the cluster agent",
+ "description": "Tokens associated with the cluster agent.",
"args": [
{
"name": "after",
@@ -9030,7 +9030,7 @@
},
{
"name": "updatedAt",
- "description": "Timestamp the cluster agent was updated",
+ "description": "Timestamp the cluster agent was updated.",
"args": [
],
@@ -9275,7 +9275,7 @@
"fields": [
{
"name": "clusterAgent",
- "description": "Cluster agent this token is associated with",
+ "description": "Cluster agent this token is associated with.",
"args": [
],
@@ -9289,7 +9289,7 @@
},
{
"name": "createdAt",
- "description": "Timestamp the token was created",
+ "description": "Timestamp the token was created.",
"args": [
],
@@ -9303,7 +9303,7 @@
},
{
"name": "id",
- "description": "Global ID of the token",
+ "description": "Global ID of the token.",
"args": [
],
@@ -10691,7 +10691,7 @@
"fields": [
{
"name": "color",
- "description": "Hexadecimal representation of compliance framework's label color",
+ "description": "Hexadecimal representation of compliance framework's label color.",
"args": [
],
@@ -10709,7 +10709,7 @@
},
{
"name": "description",
- "description": "Description of the compliance framework",
+ "description": "Description of the compliance framework.",
"args": [
],
@@ -10727,7 +10727,7 @@
},
{
"name": "id",
- "description": "Compliance framework ID",
+ "description": "Compliance framework ID.",
"args": [
],
@@ -10745,7 +10745,7 @@
},
{
"name": "name",
- "description": "Name of the compliance framework",
+ "description": "Name of the compliance framework.",
"args": [
],
@@ -16001,7 +16001,7 @@
"fields": [
{
"name": "editPath",
- "description": "Relative web path to the edit page of a scanner profile",
+ "description": "Relative web path to the edit page of a scanner profile.",
"args": [
],
@@ -16015,7 +16015,7 @@
},
{
"name": "globalId",
- "description": "ID of the DAST scanner profile Deprecated in 13.6: Use `id`.",
+ "description": "ID of the DAST scanner profile. Deprecated in 13.6: Use `id`.",
"args": [
],
@@ -16033,7 +16033,7 @@
},
{
"name": "id",
- "description": "ID of the DAST scanner profile",
+ "description": "ID of the DAST scanner profile.",
"args": [
],
@@ -16051,7 +16051,7 @@
},
{
"name": "profileName",
- "description": "Name of the DAST scanner profile",
+ "description": "Name of the DAST scanner profile.",
"args": [
],
@@ -16097,7 +16097,7 @@
},
{
"name": "spiderTimeout",
- "description": "The maximum number of minutes allowed for the spider to traverse the site",
+ "description": "The maximum number of minutes allowed for the spider to traverse the site.",
"args": [
],
@@ -16111,7 +16111,7 @@
},
{
"name": "targetTimeout",
- "description": "The maximum number of seconds allowed for the site under test to respond to a request",
+ "description": "The maximum number of seconds allowed for the site under test to respond to a request.",
"args": [
],
@@ -16748,7 +16748,7 @@
"fields": [
{
"name": "editPath",
- "description": "Relative web path to the edit page of a site profile",
+ "description": "Relative web path to the edit page of a site profile.",
"args": [
],
@@ -16762,7 +16762,7 @@
},
{
"name": "id",
- "description": "ID of the site profile",
+ "description": "ID of the site profile.",
"args": [
],
@@ -16780,7 +16780,7 @@
},
{
"name": "normalizedTargetUrl",
- "description": "Normalized URL of the target to be scanned",
+ "description": "Normalized URL of the target to be scanned.",
"args": [
],
@@ -16794,7 +16794,7 @@
},
{
"name": "profileName",
- "description": "The name of the site profile",
+ "description": "The name of the site profile.",
"args": [
],
@@ -16808,7 +16808,7 @@
},
{
"name": "targetUrl",
- "description": "The URL of the target to be scanned",
+ "description": "The URL of the target to be scanned.",
"args": [
],
@@ -16840,7 +16840,7 @@
},
{
"name": "validationStatus",
- "description": "The current validation status of the site profile",
+ "description": "The current validation status of the site profile.",
"args": [
],
@@ -17579,7 +17579,7 @@
"fields": [
{
"name": "id",
- "description": "Global ID of the site validation",
+ "description": "Global ID of the site validation.",
"args": [
],
@@ -17597,7 +17597,7 @@
},
{
"name": "normalizedTargetUrl",
- "description": "Normalized URL of the target to be validated",
+ "description": "Normalized URL of the target to be validated.",
"args": [
],
@@ -17611,7 +17611,7 @@
},
{
"name": "status",
- "description": "Status of the site validation",
+ "description": "Status of the site validation.",
"args": [
],
@@ -21682,7 +21682,7 @@
"fields": [
{
"name": "groups",
- "description": "Assigned groups",
+ "description": "Assigned groups.",
"args": [
],
@@ -21704,7 +21704,7 @@
},
{
"name": "id",
- "description": "ID of the segment",
+ "description": "ID of the segment.",
"args": [
],
@@ -21722,7 +21722,7 @@
},
{
"name": "latestSnapshot",
- "description": "The latest adoption metrics for the segment",
+ "description": "The latest adoption metrics for the segment.",
"args": [
],
@@ -21736,7 +21736,7 @@
},
{
"name": "name",
- "description": "Name of the segment",
+ "description": "Name of the segment.",
"args": [
],
@@ -21879,7 +21879,7 @@
"fields": [
{
"name": "deploySucceeded",
- "description": "At least one deployment succeeded",
+ "description": "At least one deployment succeeded.",
"args": [
],
@@ -21897,7 +21897,7 @@
},
{
"name": "endTime",
- "description": "The end time for the snapshot where the data points were collected",
+ "description": "The end time for the snapshot where the data points were collected.",
"args": [
],
@@ -21915,7 +21915,7 @@
},
{
"name": "issueOpened",
- "description": "At least one issue was opened",
+ "description": "At least one issue was opened.",
"args": [
],
@@ -21933,7 +21933,7 @@
},
{
"name": "mergeRequestApproved",
- "description": "At least one merge request was approved",
+ "description": "At least one merge request was approved.",
"args": [
],
@@ -21951,7 +21951,7 @@
},
{
"name": "mergeRequestOpened",
- "description": "At least one merge request was opened",
+ "description": "At least one merge request was opened.",
"args": [
],
@@ -21969,7 +21969,7 @@
},
{
"name": "pipelineSucceeded",
- "description": "At least one pipeline succeeded",
+ "description": "At least one pipeline succeeded.",
"args": [
],
@@ -21987,7 +21987,7 @@
},
{
"name": "recordedAt",
- "description": "The time the snapshot was recorded",
+ "description": "The time the snapshot was recorded.",
"args": [
],
@@ -22005,7 +22005,7 @@
},
{
"name": "runnerConfigured",
- "description": "At least one runner was used",
+ "description": "At least one runner was used.",
"args": [
],
@@ -22023,7 +22023,7 @@
},
{
"name": "securityScanSucceeded",
- "description": "At least one security scan succeeded",
+ "description": "At least one security scan succeeded.",
"args": [
],
@@ -22041,7 +22041,7 @@
},
{
"name": "startTime",
- "description": "The start time for the snapshot where the data points were collected",
+ "description": "The start time for the snapshot where the data points were collected.",
"args": [
],
@@ -25716,7 +25716,7 @@
"fields": [
{
"name": "closedEpics",
- "description": "Number of closed child epics",
+ "description": "Number of closed child epics.",
"args": [
],
@@ -25730,7 +25730,7 @@
},
{
"name": "closedIssues",
- "description": "Number of closed epic issues",
+ "description": "Number of closed epic issues.",
"args": [
],
@@ -25744,7 +25744,7 @@
},
{
"name": "openedEpics",
- "description": "Number of opened child epics",
+ "description": "Number of opened child epics.",
"args": [
],
@@ -25758,7 +25758,7 @@
},
{
"name": "openedIssues",
- "description": "Number of opened epic issues",
+ "description": "Number of opened epic issues.",
"args": [
],
@@ -25785,7 +25785,7 @@
"fields": [
{
"name": "closedIssues",
- "description": "Total weight of completed (closed) issues in this epic, including epic descendants",
+ "description": "Total weight of completed (closed) issues in this epic, including epic descendants.",
"args": [
],
@@ -25799,7 +25799,7 @@
},
{
"name": "openedIssues",
- "description": "Total weight of opened issues in this epic, including epic descendants",
+ "description": "Total weight of opened issues in this epic, including epic descendants.",
"args": [
],
@@ -25871,7 +25871,7 @@
"fields": [
{
"name": "issuesAtRisk",
- "description": "Number of issues at risk",
+ "description": "Number of issues at risk.",
"args": [
],
@@ -25885,7 +25885,7 @@
},
{
"name": "issuesNeedingAttention",
- "description": "Number of issues that need attention",
+ "description": "Number of issues that need attention.",
"args": [
],
@@ -25899,7 +25899,7 @@
},
{
"name": "issuesOnTrack",
- "description": "Number of issues on track",
+ "description": "Number of issues on track.",
"args": [
],
@@ -26365,7 +26365,7 @@
},
{
"name": "epicIssueId",
- "description": "ID of the epic-issue relation",
+ "description": "ID of the epic-issue relation.",
"args": [
],
@@ -26425,7 +26425,7 @@
},
{
"name": "id",
- "description": "Global ID of the epic-issue relation",
+ "description": "Global ID of the epic-issue relation.",
"args": [
],
@@ -26725,7 +26725,7 @@
},
{
"name": "relationPath",
- "description": "URI path of the epic-issue relation",
+ "description": "URI path of the epic-issue relation.",
"args": [
],
@@ -27179,7 +27179,7 @@
},
{
"name": "weight",
- "description": "Total weight of issues collection",
+ "description": "Total weight of issues collection.",
"args": [
],
@@ -29113,7 +29113,7 @@
"fields": [
{
"name": "actualRepositorySizeLimit",
- "description": "Size limit for repositories in the namespace in bytes",
+ "description": "Size limit for repositories in the namespace in bytes.",
"args": [
],
@@ -29127,7 +29127,7 @@
},
{
"name": "additionalPurchasedStorageSize",
- "description": "Additional storage purchased for the root namespace in bytes",
+ "description": "Additional storage purchased for the root namespace in bytes.",
"args": [
],
@@ -29259,7 +29259,7 @@
},
{
"name": "codeCoverageActivities",
- "description": "Represents the code coverage activity for this group",
+ "description": "Represents the code coverage activity for this group.",
"args": [
{
"name": "startDate",
@@ -29480,7 +29480,7 @@
},
{
"name": "containsLockedProjects",
- "description": "Includes at least one project where the repository size exceeds the limit",
+ "description": "Includes at least one project where the repository size exceeds the limit.",
"args": [
],
@@ -29593,7 +29593,7 @@
},
{
"name": "epic",
- "description": "Find a single epic",
+ "description": "Find a single epic.",
"args": [
{
"name": "startDate",
@@ -29762,7 +29762,7 @@
},
{
"name": "epicBoard",
- "description": "Find a single epic board",
+ "description": "Find a single epic board.",
"args": [
{
"name": "id",
@@ -29789,7 +29789,7 @@
},
{
"name": "epicBoards",
- "description": "Find epic boards",
+ "description": "Find epic boards.",
"args": [
{
"name": "after",
@@ -29842,7 +29842,7 @@
},
{
"name": "epics",
- "description": "Find epics",
+ "description": "Find epics.",
"args": [
{
"name": "startDate",
@@ -30214,7 +30214,7 @@
},
{
"name": "isTemporaryStorageIncreaseEnabled",
- "description": "Status of the temporary storage increase",
+ "description": "Status of the temporary storage increase.",
"args": [
],
@@ -30531,7 +30531,7 @@
},
{
"name": "iterations",
- "description": "Find iterations",
+ "description": "Find iterations.",
"args": [
{
"name": "startDate",
@@ -31313,7 +31313,7 @@
},
{
"name": "repositorySizeExcessProjectCount",
- "description": "Number of projects in the root namespace where the repository size exceeds the limit",
+ "description": "Number of projects in the root namespace where the repository size exceeds the limit.",
"args": [
],
@@ -31387,7 +31387,7 @@
},
{
"name": "stats",
- "description": "Group statistics",
+ "description": "Group statistics.",
"args": [
],
@@ -31401,7 +31401,7 @@
},
{
"name": "storageSizeLimit",
- "description": "Total storage limit of the root namespace in bytes",
+ "description": "Total storage limit of the root namespace in bytes.",
"args": [
],
@@ -31429,7 +31429,7 @@
},
{
"name": "temporaryStorageIncreaseEndsOn",
- "description": "Date until the temporary storage increase is active",
+ "description": "Date until the temporary storage increase is active.",
"args": [
],
@@ -31443,7 +31443,7 @@
},
{
"name": "timelogs",
- "description": "Time logged in issues by group members",
+ "description": "Time logged in issues by group members.",
"args": [
{
"name": "startDate",
@@ -31540,7 +31540,7 @@
},
{
"name": "totalRepositorySize",
- "description": "Total repository size of all projects in the root namespace in bytes",
+ "description": "Total repository size of all projects in the root namespace in bytes.",
"args": [
],
@@ -31554,7 +31554,7 @@
},
{
"name": "totalRepositorySizeExcess",
- "description": "Total excess repository size of all projects in the root namespace in bytes",
+ "description": "Total excess repository size of all projects in the root namespace in bytes.",
"args": [
],
@@ -31614,7 +31614,7 @@
},
{
"name": "vulnerabilities",
- "description": "Vulnerabilities reported on the projects in the group and its subgroups",
+ "description": "Vulnerabilities reported on the projects in the group and its subgroups.",
"args": [
{
"name": "projectId",
@@ -31787,7 +31787,7 @@
},
{
"name": "vulnerabilitiesCountByDay",
- "description": "Number of vulnerabilities per day for the projects in the group and its subgroups",
+ "description": "Number of vulnerabilities per day for the projects in the group and its subgroups.",
"args": [
{
"name": "startDate",
@@ -31868,7 +31868,7 @@
},
{
"name": "vulnerabilitiesCountByDayAndSeverity",
- "description": "Number of vulnerabilities per severity level, per day, for the projects in the group and its subgroups Deprecated in 13.3: Use `vulnerabilitiesCountByDay`.",
+ "description": "Number of vulnerabilities per severity level, per day, for the projects in the group and its subgroups. Deprecated in 13.3: Use `vulnerabilitiesCountByDay`.",
"args": [
{
"name": "startDate",
@@ -31949,7 +31949,7 @@
},
{
"name": "vulnerabilityGrades",
- "description": "Represents vulnerable project counts for each grade",
+ "description": "Represents vulnerable project counts for each grade.",
"args": [
{
"name": "includeSubgroups",
@@ -31984,7 +31984,7 @@
},
{
"name": "vulnerabilityScanners",
- "description": "Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups",
+ "description": "Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups.",
"args": [
{
"name": "after",
@@ -32037,7 +32037,7 @@
},
{
"name": "vulnerabilitySeveritiesCount",
- "description": "Counts for each vulnerability severity in the group and its subgroups",
+ "description": "Counts for each vulnerability severity in the group and its subgroups.",
"args": [
{
"name": "projectId",
@@ -35639,7 +35639,7 @@
},
{
"name": "weight",
- "description": "Total weight of issues collection",
+ "description": "Total weight of issues collection.",
"args": [
],
@@ -40106,7 +40106,7 @@
},
{
"name": "approvalsLeft",
- "description": "Number of approvals left",
+ "description": "Number of approvals left.",
"args": [
],
@@ -40120,7 +40120,7 @@
},
{
"name": "approvalsRequired",
- "description": "Number of approvals required",
+ "description": "Number of approvals required.",
"args": [
],
@@ -40941,7 +40941,7 @@
},
{
"name": "mergeTrainsCount",
- "description": "",
+ "description": "Number of merge requests in the merge train.",
"args": [
],
@@ -48754,7 +48754,7 @@
"fields": [
{
"name": "actualRepositorySizeLimit",
- "description": "Size limit for repositories in the namespace in bytes",
+ "description": "Size limit for repositories in the namespace in bytes.",
"args": [
],
@@ -48768,7 +48768,7 @@
},
{
"name": "additionalPurchasedStorageSize",
- "description": "Additional storage purchased for the root namespace in bytes",
+ "description": "Additional storage purchased for the root namespace in bytes.",
"args": [
],
@@ -48845,7 +48845,7 @@
},
{
"name": "containsLockedProjects",
- "description": "Includes at least one project where the repository size exceeds the limit",
+ "description": "Includes at least one project where the repository size exceeds the limit.",
"args": [
],
@@ -48945,7 +48945,7 @@
},
{
"name": "isTemporaryStorageIncreaseEnabled",
- "description": "Status of the temporary storage increase",
+ "description": "Status of the temporary storage increase.",
"args": [
],
@@ -49124,7 +49124,7 @@
},
{
"name": "repositorySizeExcessProjectCount",
- "description": "Number of projects in the root namespace where the repository size exceeds the limit",
+ "description": "Number of projects in the root namespace where the repository size exceeds the limit.",
"args": [
],
@@ -49170,7 +49170,7 @@
},
{
"name": "storageSizeLimit",
- "description": "Total storage limit of the root namespace in bytes",
+ "description": "Total storage limit of the root namespace in bytes.",
"args": [
],
@@ -49184,7 +49184,7 @@
},
{
"name": "temporaryStorageIncreaseEndsOn",
- "description": "Date until the temporary storage increase is active",
+ "description": "Date until the temporary storage increase is active.",
"args": [
],
@@ -49198,7 +49198,7 @@
},
{
"name": "totalRepositorySize",
- "description": "Total repository size of all projects in the root namespace in bytes",
+ "description": "Total repository size of all projects in the root namespace in bytes.",
"args": [
],
@@ -49212,7 +49212,7 @@
},
{
"name": "totalRepositorySizeExcess",
- "description": "Total excess repository size of all projects in the root namespace in bytes",
+ "description": "Total excess repository size of all projects in the root namespace in bytes.",
"args": [
],
@@ -49569,7 +49569,7 @@
},
{
"name": "epicId",
- "description": "Filter by epic ID. Incompatible with epicWildcardId",
+ "description": "Filter by epic ID. Incompatible with epicWildcardId.",
"type": {
"kind": "SCALAR",
"name": "EpicID",
@@ -49579,7 +49579,7 @@
},
{
"name": "iterationTitle",
- "description": "Filter by iteration title",
+ "description": "Filter by iteration title.",
"type": {
"kind": "SCALAR",
"name": "String",
@@ -49589,7 +49589,7 @@
},
{
"name": "weight",
- "description": "Filter by weight",
+ "description": "Filter by weight.",
"type": {
"kind": "SCALAR",
"name": "String",
@@ -53270,7 +53270,7 @@
},
{
"name": "securityReportSummary",
- "description": "Vulnerability and scanned resource counts for each security scanner of the pipeline",
+ "description": "Vulnerability and scanned resource counts for each security scanner of the pipeline.",
"args": [
],
@@ -54344,7 +54344,7 @@
"fields": [
{
"name": "actualRepositorySizeLimit",
- "description": "Size limit for the repository in bytes",
+ "description": "Size limit for the repository in bytes.",
"args": [
],
@@ -54654,7 +54654,7 @@
},
{
"name": "alertManagementPayloadFields",
- "description": "Extract alert fields from payload for custom mapping",
+ "description": "Extract alert fields from payload for custom mapping.",
"args": [
{
"name": "payloadExample",
@@ -54863,7 +54863,7 @@
},
{
"name": "clusterAgent",
- "description": "Find a single cluster agent by name",
+ "description": "Find a single cluster agent by name.",
"args": [
{
"name": "name",
@@ -54890,7 +54890,7 @@
},
{
"name": "clusterAgents",
- "description": "Cluster agents associated with the project",
+ "description": "Cluster agents associated with the project.",
"args": [
{
"name": "after",
@@ -54943,7 +54943,7 @@
},
{
"name": "codeCoverageSummary",
- "description": "Code coverage summary associated with the project",
+ "description": "Code coverage summary associated with the project.",
"args": [
],
@@ -54957,7 +54957,7 @@
},
{
"name": "complianceFrameworks",
- "description": "Compliance frameworks associated with the project",
+ "description": "Compliance frameworks associated with the project.",
"args": [
{
"name": "after",
@@ -55680,7 +55680,7 @@
},
{
"name": "incidentManagementOncallSchedules",
- "description": "Incident Management On-call schedules of the project",
+ "description": "Incident Management On-call schedules of the project.",
"args": [
{
"name": "after",
@@ -56490,7 +56490,7 @@
},
{
"name": "iterations",
- "description": "Find iterations",
+ "description": "Find iterations.",
"args": [
{
"name": "startDate",
@@ -57747,7 +57747,7 @@
},
{
"name": "repositorySizeExcess",
- "description": "Size of repository that exceeds the limit in bytes",
+ "description": "Size of repository that exceeds the limit in bytes.",
"args": [
],
@@ -57775,7 +57775,7 @@
},
{
"name": "requirement",
- "description": "Find a single requirement",
+ "description": "Find a single requirement.",
"args": [
{
"name": "sort",
@@ -57864,7 +57864,7 @@
},
{
"name": "requirementStatesCount",
- "description": "Number of requirements for the project by their state",
+ "description": "Number of requirements for the project by their state.",
"args": [
],
@@ -57878,7 +57878,7 @@
},
{
"name": "requirements",
- "description": "Find requirements",
+ "description": "Find requirements.",
"args": [
{
"name": "sort",
@@ -58021,7 +58021,7 @@
},
{
"name": "securityDashboardPath",
- "description": "Path to project's security dashboard",
+ "description": "Path to project's security dashboard.",
"args": [
],
@@ -58035,7 +58035,7 @@
},
{
"name": "securityScanners",
- "description": "Information about security analyzers used in the project",
+ "description": "Information about security analyzers used in the project.",
"args": [
],
@@ -58504,7 +58504,7 @@
},
{
"name": "vulnerabilities",
- "description": "Vulnerabilities reported on the project",
+ "description": "Vulnerabilities reported on the project.",
"args": [
{
"name": "projectId",
@@ -58677,7 +58677,7 @@
},
{
"name": "vulnerabilitiesCountByDay",
- "description": "Number of vulnerabilities per day for the project",
+ "description": "Number of vulnerabilities per day for the project.",
"args": [
{
"name": "startDate",
@@ -58758,7 +58758,7 @@
},
{
"name": "vulnerabilityScanners",
- "description": "Vulnerability scanners reported on the project vulnerabilities",
+ "description": "Vulnerability scanners reported on the project vulnerabilities.",
"args": [
{
"name": "after",
@@ -58811,7 +58811,7 @@
},
{
"name": "vulnerabilitySeveritiesCount",
- "description": "Counts for each vulnerability severity in the project",
+ "description": "Counts for each vulnerability severity in the project.",
"args": [
{
"name": "projectId",
@@ -61057,7 +61057,7 @@
},
{
"name": "devopsAdoptionSegments",
- "description": "Get configured DevOps adoption segments on the instance",
+ "description": "Get configured DevOps adoption segments on the instance.",
"args": [
{
"name": "after",
@@ -61141,7 +61141,7 @@
},
{
"name": "geoNode",
- "description": "Find a Geo node",
+ "description": "Find a Geo node.",
"args": [
{
"name": "name",
@@ -61191,7 +61191,7 @@
},
{
"name": "instanceSecurityDashboard",
- "description": "Fields related to Instance Security Dashboard",
+ "description": "Fields related to Instance Security Dashboard.",
"args": [
],
@@ -61319,11 +61319,11 @@
},
{
"name": "iteration",
- "description": "Find an iteration",
+ "description": "Find an iteration.",
"args": [
{
"name": "id",
- "description": "Find an iteration by its ID",
+ "description": "Find an iteration by its ID.",
"type": {
"kind": "NON_NULL",
"name": null,
@@ -61966,7 +61966,7 @@
},
{
"name": "vulnerabilities",
- "description": "Vulnerabilities reported on projects on the current user's instance security dashboard",
+ "description": "Vulnerabilities reported on projects on the current user's instance security dashboard.",
"args": [
{
"name": "projectId",
@@ -62139,7 +62139,7 @@
},
{
"name": "vulnerabilitiesCountByDay",
- "description": "Number of vulnerabilities per day for the projects on the current user's instance security dashboard",
+ "description": "Number of vulnerabilities per day for the projects on the current user's instance security dashboard.",
"args": [
{
"name": "startDate",
@@ -62220,7 +62220,7 @@
},
{
"name": "vulnerabilitiesCountByDayAndSeverity",
- "description": "Number of vulnerabilities per severity level, per day, for the projects on the current user's instance security dashboard Deprecated in 13.3: Use `vulnerabilitiesCountByDay`.",
+ "description": "Number of vulnerabilities per severity level, per day, for the projects on the current user's instance security dashboard. Deprecated in 13.3: Use `vulnerabilitiesCountByDay`.",
"args": [
{
"name": "startDate",
@@ -62301,11 +62301,11 @@
},
{
"name": "vulnerability",
- "description": "Find a vulnerability",
+ "description": "Find a vulnerability.",
"args": [
{
"name": "id",
- "description": "The Global ID of the Vulnerability",
+ "description": "The Global ID of the Vulnerability.",
"type": {
"kind": "NON_NULL",
"name": null,
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 963b5e9f091..78c258e581c 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -271,19 +271,19 @@ Represents a project or group board.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `assignee` | User | The board assignee |
-| `epics` | BoardEpicConnection | Epics associated with board issues |
+| `assignee` | User | The board assignee. |
+| `epics` | BoardEpicConnection | Epics associated with board issues. |
| `hideBacklogList` | Boolean | Whether or not backlog list is hidden. |
| `hideClosedList` | Boolean | Whether or not closed list is hidden. |
| `id` | ID! | ID (global ID) of the board. |
| `iteration` | Iteration | The board iteration. |
-| `labels` | LabelConnection | Labels of the board |
+| `labels` | LabelConnection | Labels of the board. |
| `lists` | BoardListConnection | Lists of the board. |
-| `milestone` | Milestone | The board milestone |
+| `milestone` | Milestone | The board milestone. |
| `name` | String | Name of the board. |
| `webPath` | String! | Web path of the board. |
| `webUrl` | String! | Web URL of the board. |
-| `weight` | Int | Weight of the board |
+| `weight` | Int | Weight of the board. |
### BoardEpic
@@ -334,7 +334,7 @@ Represents an epic on an issue board.
| `userDiscussionsCount` | Int! | Number of user discussions in the epic. |
| `userNotesCount` | Int! | Number of user notes of the epic. |
| `userPermissions` | EpicPermissions! | Permissions for the current user on the resource |
-| `userPreferences` | BoardEpicUserPreferences | User preferences for the epic on the issue board |
+| `userPreferences` | BoardEpicUserPreferences | User preferences for the epic on the issue board. |
| `webPath` | String! | Web path of the epic. |
| `webUrl` | String! | Web URL of the epic. |
@@ -344,7 +344,7 @@ Represents user preferences for a board epic.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `collapsed` | Boolean! | Indicates epic should be displayed as collapsed |
+| `collapsed` | Boolean! | Indicates epic should be displayed as collapsed. |
### BoardList
@@ -352,21 +352,21 @@ Represents a list for an issue board.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `assignee` | User | Assignee in the list |
+| `assignee` | User | Assignee in the list. |
| `collapsed` | Boolean | Indicates if list is collapsed for this user. |
| `id` | ID! | ID (global ID) of the list. |
| `issues` | IssueConnection | Board issues. |
| `issuesCount` | Int | Count of issues in the list. |
-| `iteration` | Iteration | Iteration of the list |
+| `iteration` | Iteration | Iteration of the list. |
| `label` | Label | Label of the list. |
-| `limitMetric` | ListLimitMetric | The current limit metric for 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 |
+| `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. |
-| `totalWeight` | Int | Total weight of all issues in the list |
+| `totalWeight` | Int | Total weight of all issues in the list. |
### BoardListCreatePayload
@@ -401,11 +401,11 @@ Represents the total number of issues and their weights for a particular day.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `completedCount` | Int! | Number of closed issues as of this day |
-| `completedWeight` | Int! | Total weight of closed issues as of this day |
-| `date` | ISO8601Date! | Date for burnup totals |
-| `scopeCount` | Int! | Number of issues as of this day |
-| `scopeWeight` | Int! | Total weight of issues as of this day |
+| `completedCount` | Int! | Number of closed issues as of this day. |
+| `completedWeight` | Int! | Total weight of closed issues as of this day. |
+| `date` | ISO8601Date! | Date for burnup totals. |
+| `scopeCount` | Int! | Number of issues as of this day. |
+| `scopeWeight` | Int! | Total weight of issues as of this day. |
### CiApplicationSettings
@@ -521,12 +521,12 @@ Autogenerated return type of CiCdSettingsUpdate.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `createdAt` | Time | Timestamp the cluster agent was created |
-| `id` | ID! | ID of the cluster agent |
-| `name` | String | Name of the cluster agent |
-| `project` | Project | The project this cluster agent is associated with |
-| `tokens` | ClusterAgentTokenConnection | Tokens associated with the cluster agent |
-| `updatedAt` | Time | Timestamp the cluster agent was updated |
+| `createdAt` | Time | Timestamp the cluster agent was created. |
+| `id` | ID! | ID of the cluster agent. |
+| `name` | String | Name of the cluster agent. |
+| `project` | Project | The project this cluster agent is associated with. |
+| `tokens` | ClusterAgentTokenConnection | Tokens associated with the cluster agent. |
+| `updatedAt` | Time | Timestamp the cluster agent was updated. |
### ClusterAgentDeletePayload
@@ -541,9 +541,9 @@ Autogenerated return type of ClusterAgentDelete.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `clusterAgent` | ClusterAgent | Cluster agent this token is associated with |
-| `createdAt` | Time | Timestamp the token was created |
-| `id` | ClustersAgentTokenID! | Global ID of the token |
+| `clusterAgent` | ClusterAgent | Cluster agent this token is associated with. |
+| `createdAt` | Time | Timestamp the token was created. |
+| `id` | ClustersAgentTokenID! | Global ID of the token. |
### ClusterAgentTokenCreatePayload
@@ -623,10 +623,10 @@ Represents a ComplianceFramework associated with a Project.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `color` | String! | Hexadecimal representation of compliance framework's label color |
-| `description` | String! | Description of the compliance framework |
-| `id` | ID! | Compliance framework ID |
-| `name` | String! | Name of the compliance framework |
+| `color` | String! | Hexadecimal representation of compliance framework's label color. |
+| `description` | String! | Description of the compliance framework. |
+| `id` | ID! | Compliance framework ID. |
+| `name` | String! | Name of the compliance framework. |
| `pipelineConfigurationFullPath` | String | Full path of the compliance pipeline configuration stored in a project repository, such as `.gitlab/compliance/soc2/.gitlab-ci.yml`. |
### ComposerMetadata
@@ -947,14 +947,14 @@ Represents a DAST scanner profile.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `editPath` | String | Relative web path to the edit page of a scanner profile |
+| `editPath` | String | Relative web path to the edit page of a scanner profile. |
| `globalId` **{warning-solid}** | DastScannerProfileID! | **Deprecated:** Use `id`. Deprecated in 13.6. |
-| `id` | DastScannerProfileID! | ID of the DAST scanner profile |
-| `profileName` | String | Name of the DAST scanner profile |
+| `id` | DastScannerProfileID! | ID of the DAST scanner profile. |
+| `profileName` | String | Name of the DAST scanner profile. |
| `scanType` | DastScanTypeEnum | Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. |
| `showDebugMessages` | Boolean! | Indicates if debug messages should be included in DAST console output. True to include the debug messages. |
-| `spiderTimeout` | Int | The maximum number of minutes allowed for the spider to traverse the site |
-| `targetTimeout` | Int | The maximum number of seconds allowed for the site under test to respond to a request |
+| `spiderTimeout` | Int | The maximum number of minutes allowed for the spider to traverse the site. |
+| `targetTimeout` | Int | The maximum number of seconds allowed for the site under test to respond to a request. |
| `useAjaxSpider` | Boolean! | Indicates if the AJAX spider should be used to crawl the target site. True to run the AJAX spider in addition to the traditional spider, and false to run only the traditional spider. |
### DastScannerProfileCreatePayload
@@ -993,13 +993,13 @@ Represents a DAST Site Profile.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `editPath` | String | Relative web path to the edit page of a site profile |
-| `id` | DastSiteProfileID! | ID of the site profile |
-| `normalizedTargetUrl` | String | Normalized URL of the target to be scanned |
-| `profileName` | String | The name of the site profile |
-| `targetUrl` | String | The URL of the target to be scanned |
+| `editPath` | String | Relative web path to the edit page of a site profile. |
+| `id` | DastSiteProfileID! | ID of the site profile. |
+| `normalizedTargetUrl` | String | Normalized URL of the target to be scanned. |
+| `profileName` | String | The name of the site profile. |
+| `targetUrl` | String | The URL of the target to be scanned. |
| `userPermissions` | DastSiteProfilePermissions! | Permissions for the current user on the resource |
-| `validationStatus` | DastSiteProfileValidationStatusEnum | The current validation status of the site profile |
+| `validationStatus` | DastSiteProfileValidationStatusEnum | The current validation status of the site profile. |
### DastSiteProfileCreatePayload
@@ -1056,9 +1056,9 @@ Represents a DAST Site Validation.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `id` | DastSiteValidationID! | Global ID of the site validation |
-| `normalizedTargetUrl` | String | Normalized URL of the target to be validated |
-| `status` | DastSiteProfileValidationStatusEnum! | Status of the site validation |
+| `id` | DastSiteValidationID! | Global ID of the site validation. |
+| `normalizedTargetUrl` | String | Normalized URL of the target to be validated. |
+| `status` | DastSiteProfileValidationStatusEnum! | Status of the site validation. |
### DastSiteValidationCreatePayload
@@ -1302,10 +1302,10 @@ Segment.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `groups` | Group! => Array | Assigned groups |
-| `id` | ID! | ID of the segment |
-| `latestSnapshot` | DevopsAdoptionSnapshot | The latest adoption metrics for the segment |
-| `name` | String! | Name of the segment |
+| `groups` | Group! => Array | Assigned groups. |
+| `id` | ID! | ID of the segment. |
+| `latestSnapshot` | DevopsAdoptionSnapshot | The latest adoption metrics for the segment. |
+| `name` | String! | Name of the segment. |
### DevopsAdoptionSnapshot
@@ -1313,16 +1313,16 @@ Snapshot.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `deploySucceeded` | Boolean! | At least one deployment succeeded |
-| `endTime` | Time! | The end time for the snapshot where the data points were collected |
-| `issueOpened` | Boolean! | At least one issue was opened |
-| `mergeRequestApproved` | Boolean! | At least one merge request was approved |
-| `mergeRequestOpened` | Boolean! | At least one merge request was opened |
-| `pipelineSucceeded` | Boolean! | At least one pipeline succeeded |
-| `recordedAt` | Time! | The time the snapshot was recorded |
-| `runnerConfigured` | Boolean! | At least one runner was used |
-| `securityScanSucceeded` | Boolean! | At least one security scan succeeded |
-| `startTime` | Time! | The start time for the snapshot where the data points were collected |
+| `deploySucceeded` | Boolean! | At least one deployment succeeded. |
+| `endTime` | Time! | The end time for the snapshot where the data points were collected. |
+| `issueOpened` | Boolean! | At least one issue was opened. |
+| `mergeRequestApproved` | Boolean! | At least one merge request was approved. |
+| `mergeRequestOpened` | Boolean! | At least one merge request was opened. |
+| `pipelineSucceeded` | Boolean! | At least one pipeline succeeded. |
+| `recordedAt` | Time! | The time the snapshot was recorded. |
+| `runnerConfigured` | Boolean! | At least one runner was used. |
+| `securityScanSucceeded` | Boolean! | At least one security scan succeeded. |
+| `startTime` | Time! | The start time for the snapshot where the data points were collected. |
### DiffPosition
@@ -1523,10 +1523,10 @@ Counts of descendent epics.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `closedEpics` | Int | Number of closed child epics |
-| `closedIssues` | Int | Number of closed epic issues |
-| `openedEpics` | Int | Number of opened child epics |
-| `openedIssues` | Int | Number of opened epic issues |
+| `closedEpics` | Int | Number of closed child epics. |
+| `closedIssues` | Int | Number of closed epic issues. |
+| `openedEpics` | Int | Number of opened child epics. |
+| `openedIssues` | Int | Number of opened epic issues. |
### EpicDescendantWeights
@@ -1534,8 +1534,8 @@ Total weight of open and closed descendant issues.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `closedIssues` | Int | Total weight of completed (closed) issues in this epic, including epic descendants |
-| `openedIssues` | Int | Total weight of opened issues in this epic, including epic descendants |
+| `closedIssues` | Int | Total weight of completed (closed) issues in this epic, including epic descendants. |
+| `openedIssues` | Int | Total weight of opened issues in this epic, including epic descendants. |
### EpicHealthStatus
@@ -1543,9 +1543,9 @@ Health status of child issues.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `issuesAtRisk` | Int | Number of issues at risk |
-| `issuesNeedingAttention` | Int | Number of issues that need attention |
-| `issuesOnTrack` | Int | Number of issues on track |
+| `issuesAtRisk` | Int | Number of issues at risk. |
+| `issuesNeedingAttention` | Int | Number of issues that need attention. |
+| `issuesOnTrack` | Int | Number of issues on track. |
### EpicIssue
@@ -1572,11 +1572,11 @@ Relationship between an epic and an issue.
| `dueDate` | Time | Due date of the issue. |
| `emailsDisabled` | Boolean! | Indicates if a project has email notifications disabled: `true` if email notifications are disabled. |
| `epic` | Epic | Epic to which this issue belongs. |
-| `epicIssueId` | ID! | ID of the epic-issue relation |
+| `epicIssueId` | ID! | ID of the epic-issue relation. |
| `healthStatus` | HealthStatus | Current health status. |
| `humanTimeEstimate` | String | Human-readable time estimate of the issue. |
| `humanTotalTimeSpent` | String | Human-readable total time reported as spent on the issue. |
-| `id` | ID | Global ID of the epic-issue relation |
+| `id` | ID | Global ID of the epic-issue relation. |
| `iid` | ID! | Internal ID of the issue. |
| `iteration` | Iteration | Iteration of the issue. |
| `labels` | LabelConnection | Labels of the issue. |
@@ -1587,7 +1587,7 @@ Relationship between an epic and an issue.
| `notes` | NoteConnection! | All notes on this noteable. |
| `participants` | UserConnection | List of participants in the issue. |
| `reference` | String! | Internal reference of the issue. Returned in shortened format by default. |
-| `relationPath` | String | URI path of the epic-issue relation |
+| `relationPath` | String | URI path of the epic-issue relation. |
| `relativePosition` | Int | Relative position of the issue (used for positioning in epic tree and issue boards). |
| `severity` | IssuableSeverity | Severity level of the incident. |
| `slaDueAt` | Time | Timestamp of when the issue SLA expires. |
@@ -1727,34 +1727,34 @@ Autogenerated return type of GitlabSubscriptionActivate.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `actualRepositorySizeLimit` | Float | Size limit for repositories in the namespace in bytes |
-| `additionalPurchasedStorageSize` | Float | Additional storage purchased for the root namespace in bytes |
+| `actualRepositorySizeLimit` | Float | Size limit for repositories in the namespace in bytes. |
+| `additionalPurchasedStorageSize` | Float | Additional storage purchased for the root namespace in bytes. |
| `autoDevopsEnabled` | Boolean | Indicates whether Auto DevOps is enabled for all projects within this group. |
| `avatarUrl` | String | Avatar URL of the group. |
| `board` | Board | A single board of the group. |
| `boards` | BoardConnection | Boards of the group. |
-| `codeCoverageActivities` | CodeCoverageActivityConnection | Represents the code coverage activity for this group |
+| `codeCoverageActivities` | CodeCoverageActivityConnection | Represents the code coverage activity for this group. |
| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. |
| `containerRepositories` | ContainerRepositoryConnection | Container repositories of the group. |
| `containerRepositoriesCount` | Int! | Number of container repositories in the group. |
-| `containsLockedProjects` | Boolean! | Includes at least one project where the repository size exceeds the limit |
+| `containsLockedProjects` | Boolean! | Includes at least one project where the repository size exceeds the limit. |
| `customEmoji` | CustomEmojiConnection | Custom emoji within this namespace. Available only when feature flag `custom_emoji` is enabled. |
| `description` | String | Description of the namespace. |
| `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` |
| `emailsDisabled` | Boolean | Indicates if a group has email notifications disabled. |
-| `epic` | Epic | Find a single epic |
-| `epicBoard` | EpicBoard | Find a single epic board |
-| `epicBoards` | EpicBoardConnection | Find epic boards |
-| `epics` | EpicConnection | Find epics |
+| `epic` | Epic | Find a single epic. |
+| `epicBoard` | EpicBoard | Find a single epic board. |
+| `epicBoards` | EpicBoardConnection | Find epic boards. |
+| `epics` | EpicConnection | Find epics. |
| `epicsEnabled` | Boolean | Indicates if Epics are enabled for namespace |
| `fullName` | String! | Full name of the namespace. |
| `fullPath` | ID! | Full path of the namespace. |
| `groupMembers` | GroupMemberConnection | A membership of a user within this group. |
| `groupTimelogsEnabled` | Boolean | Indicates if Group timelogs are enabled for namespace |
| `id` | ID! | ID of the namespace. |
-| `isTemporaryStorageIncreaseEnabled` | Boolean! | Status of the temporary storage increase |
+| `isTemporaryStorageIncreaseEnabled` | Boolean! | Status of the temporary storage increase. |
| `issues` | IssueConnection | Issues for projects in this group. |
-| `iterations` | IterationConnection | Find iterations |
+| `iterations` | IterationConnection | Find iterations. |
| `label` | Label | A label available on this group. |
| `labels` | LabelConnection | Labels available on this group. |
| `lfsEnabled` | Boolean | Indicates if Large File Storage (LFS) is enabled for namespace. |
@@ -1767,27 +1767,27 @@ Autogenerated return type of GitlabSubscriptionActivate.
| `path` | String! | Path of the namespace. |
| `projectCreationLevel` | String | The permission level required to create projects in the group. |
| `projects` | ProjectConnection! | Projects within this namespace. |
-| `repositorySizeExcessProjectCount` | Int! | Number of projects in the root namespace where the repository size exceeds the limit |
+| `repositorySizeExcessProjectCount` | Int! | Number of projects in the root namespace where the repository size exceeds the limit. |
| `requestAccessEnabled` | Boolean | Indicates if users can request access to namespace. |
| `requireTwoFactorAuthentication` | Boolean | Indicates if all users in this group are required to set up two-factor authentication. |
| `rootStorageStatistics` | RootStorageStatistics | Aggregated storage statistics of the namespace. Only available for root namespaces. |
| `shareWithGroupLock` | Boolean | Indicates if sharing a project with another group within this group is prevented. |
-| `stats` | GroupStats | Group statistics |
-| `storageSizeLimit` | Float | Total storage limit of the root namespace in bytes |
+| `stats` | GroupStats | Group statistics. |
+| `storageSizeLimit` | Float | Total storage limit of the root namespace in bytes. |
| `subgroupCreationLevel` | String | The permission level required to create subgroups within the group. |
-| `temporaryStorageIncreaseEndsOn` | Time | Date until the temporary storage increase is active |
-| `timelogs` | TimelogConnection! | Time logged in issues by group members |
-| `totalRepositorySize` | Float | Total repository size of all projects in the root namespace in bytes |
-| `totalRepositorySizeExcess` | Float | Total excess repository size of all projects in the root namespace in bytes |
+| `temporaryStorageIncreaseEndsOn` | Time | Date until the temporary storage increase is active. |
+| `timelogs` | TimelogConnection! | Time logged in issues by group members. |
+| `totalRepositorySize` | Float | Total repository size of all projects in the root namespace in bytes. |
+| `totalRepositorySizeExcess` | Float | Total excess repository size of all projects in the root namespace in bytes. |
| `twoFactorGracePeriod` | Int | Time before two-factor authentication is enforced. |
| `userPermissions` | GroupPermissions! | Permissions for the current user on the resource |
| `visibility` | String | Visibility of the namespace. |
-| `vulnerabilities` | VulnerabilityConnection | Vulnerabilities reported on the projects in the group and its subgroups |
-| `vulnerabilitiesCountByDay` | VulnerabilitiesCountByDayConnection | Number of vulnerabilities per day for the projects in the group and its subgroups |
+| `vulnerabilities` | VulnerabilityConnection | Vulnerabilities reported on the projects in the group and its subgroups. |
+| `vulnerabilitiesCountByDay` | VulnerabilitiesCountByDayConnection | Number of vulnerabilities per day for the projects in the group and its subgroups. |
| `vulnerabilitiesCountByDayAndSeverity` **{warning-solid}** | VulnerabilitiesCountByDayAndSeverityConnection | **Deprecated:** Use `vulnerabilitiesCountByDay`. Deprecated in 13.3. |
-| `vulnerabilityGrades` | VulnerableProjectsByGrade! => Array | Represents vulnerable project counts for each grade |
-| `vulnerabilityScanners` | VulnerabilityScannerConnection | Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups |
-| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each vulnerability severity in the group and its subgroups |
+| `vulnerabilityGrades` | VulnerableProjectsByGrade! => Array | Represents vulnerable project counts for each grade. |
+| `vulnerabilityScanners` | VulnerabilityScannerConnection | Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups. |
+| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each vulnerability severity in the group and its subgroups. |
| `webUrl` | String! | Web URL of the group. |
### GroupMember
@@ -2235,8 +2235,8 @@ Autogenerated return type of MarkAsSpamSnippet.
| Field | Type | Description |
| ----- | ---- | ----------- |
| `allowCollaboration` | Boolean | Indicates if members of the target project can push to the fork. |
-| `approvalsLeft` | Int | Number of approvals left |
-| `approvalsRequired` | Int | Number of approvals required |
+| `approvalsLeft` | Int | Number of approvals left. |
+| `approvalsRequired` | Int | Number of approvals required. |
| `approved` | Boolean! | Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured. |
| `approvedBy` | UserConnection | Users who approved the merge request. |
| `assignees` | UserConnection | Assignees of the merge request. |
@@ -2272,7 +2272,7 @@ Autogenerated return type of MarkAsSpamSnippet.
| `mergeError` | String | Error message due to a merge error. |
| `mergeOngoing` | Boolean! | Indicates if a merge is currently occurring. |
| `mergeStatus` | String | Status of the merge request. |
-| `mergeTrainsCount` | Int | |
+| `mergeTrainsCount` | Int | Number of merge requests in the merge train. |
| `mergeUser` | User | User who merged this merge request. |
| `mergeWhenPipelineSucceeds` | Boolean | Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS). |
| `mergeable` | Boolean! | Indicates if the merge request is mergeable. |
@@ -2509,28 +2509,28 @@ Contains statistics about a milestone.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `actualRepositorySizeLimit` | Float | Size limit for repositories in the namespace in bytes |
-| `additionalPurchasedStorageSize` | Float | Additional storage purchased for the root namespace in bytes |
+| `actualRepositorySizeLimit` | Float | Size limit for repositories in the namespace in bytes. |
+| `additionalPurchasedStorageSize` | Float | Additional storage purchased for the root namespace in bytes. |
| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. |
-| `containsLockedProjects` | Boolean! | Includes at least one project where the repository size exceeds the limit |
+| `containsLockedProjects` | Boolean! | Includes at least one project where the repository size exceeds the limit. |
| `description` | String | Description of the namespace. |
| `descriptionHtml` | String | The GitLab Flavored Markdown rendering of `description` |
| `fullName` | String! | Full name of the namespace. |
| `fullPath` | ID! | Full path of the namespace. |
| `id` | ID! | ID of the namespace. |
-| `isTemporaryStorageIncreaseEnabled` | Boolean! | Status of the temporary storage increase |
+| `isTemporaryStorageIncreaseEnabled` | Boolean! | Status of the temporary storage increase. |
| `lfsEnabled` | Boolean | Indicates if Large File Storage (LFS) is enabled for namespace. |
| `name` | String! | Name of the namespace. |
| `packageSettings` | PackageSettings | The package settings for the namespace. |
| `path` | String! | Path of the namespace. |
| `projects` | ProjectConnection! | Projects within this namespace. |
-| `repositorySizeExcessProjectCount` | Int! | Number of projects in the root namespace where the repository size exceeds the limit |
+| `repositorySizeExcessProjectCount` | Int! | Number of projects in the root namespace where the repository size exceeds the limit. |
| `requestAccessEnabled` | Boolean | Indicates if users can request access to namespace. |
| `rootStorageStatistics` | RootStorageStatistics | Aggregated storage statistics of the namespace. Only available for root namespaces. |
-| `storageSizeLimit` | Float | Total storage limit of the root namespace in bytes |
-| `temporaryStorageIncreaseEndsOn` | Time | Date until the temporary storage increase is active |
-| `totalRepositorySize` | Float | Total repository size of all projects in the root namespace in bytes |
-| `totalRepositorySizeExcess` | Float | Total excess repository size of all projects in the root namespace in bytes |
+| `storageSizeLimit` | Float | Total storage limit of the root namespace in bytes. |
+| `temporaryStorageIncreaseEndsOn` | Time | Date until the temporary storage increase is active. |
+| `totalRepositorySize` | Float | Total repository size of all projects in the root namespace in bytes. |
+| `totalRepositorySizeExcess` | Float | Total excess repository size of all projects in the root namespace in bytes. |
| `visibility` | String | Visibility of the namespace. |
### NamespaceIncreaseStorageTemporarilyPayload
@@ -2751,7 +2751,7 @@ Information about pagination in a connection..
| `path` | String | Relative path to the pipeline's page. |
| `project` | Project | Project the pipeline belongs to. |
| `retryable` | Boolean! | Specifies if a pipeline can be retried. |
-| `securityReportSummary` | SecurityReportSummary | Vulnerability and scanned resource counts for each security scanner of the pipeline |
+| `securityReportSummary` | SecurityReportSummary | Vulnerability and scanned resource counts for each security scanner of the pipeline. |
| `sha` | String! | SHA of the pipeline's commit. |
| `sourceJob` | CiJob | Job where pipeline was triggered from. |
| `stages` | CiStageConnection | Stages of the pipeline. |
@@ -2818,12 +2818,12 @@ Autogenerated return type of PipelineRetry.
| Field | Type | Description |
| ----- | ---- | ----------- |
-| `actualRepositorySizeLimit` | Float | Size limit for the repository in bytes |
+| `actualRepositorySizeLimit` | Float | Size limit for the repository in bytes. |
| `alertManagementAlert` | AlertManagementAlert | A single Alert Management alert of the project. |
| `alertManagementAlertStatusCounts` | AlertManagementAlertStatusCountsType | Counts of alerts by status for the project. |
| `alertManagementAlerts` | AlertManagementAlertConnection | Alert Management alerts of the project. |
| `alertManagementIntegrations` | AlertManagementIntegrationConnection | Integrations which can receive alerts for the project. |
-| `alertManagementPayloadFields` | AlertManagementPayloadAlertField! => Array | Extract alert fields from payload for custom mapping |
+| `alertManagementPayloadFields` | AlertManagementPayloadAlertField! => Array | Extract alert fields from payload for custom mapping. |
| `allowMergeOnSkippedPipeline` | Boolean | If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge requests of the project can also be merged with skipped jobs. |
| `apiFuzzingCiConfiguration` | ApiFuzzingCiConfiguration | API fuzzing configuration for the project. Available only when feature flag `api_fuzzing_configuration_ui` is enabled. |
| `archived` | Boolean | Indicates the archived status of the project. |
@@ -2832,10 +2832,10 @@ Autogenerated return type of PipelineRetry.
| `board` | Board | A single board of the project. |
| `boards` | BoardConnection | Boards of the project. |
| `ciCdSettings` | ProjectCiCdSetting | CI/CD settings for the project. |
-| `clusterAgent` | ClusterAgent | Find a single cluster agent by name |
-| `clusterAgents` | ClusterAgentConnection | Cluster agents associated with the project |
-| `codeCoverageSummary` | CodeCoverageSummary | Code coverage summary associated with the project |
-| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks associated with the project |
+| `clusterAgent` | ClusterAgent | Find a single cluster agent by name. |
+| `clusterAgents` | ClusterAgentConnection | Cluster agents associated with the project. |
+| `codeCoverageSummary` | CodeCoverageSummary | Code coverage summary associated with the project. |
+| `complianceFrameworks` | ComplianceFrameworkConnection | Compliance frameworks associated with the project. |
| `containerExpirationPolicy` | ContainerExpirationPolicy | The container expiration policy of the project. |
| `containerRegistryEnabled` | Boolean | Indicates if the project stores Docker container images in a container registry. |
| `containerRepositories` | ContainerRepositoryConnection | Container repositories of the project. |
@@ -2857,12 +2857,12 @@ Autogenerated return type of PipelineRetry.
| `httpUrlToRepo` | String | URL to connect to the project via HTTPS. |
| `id` | ID! | ID of the project. |
| `importStatus` | String | Status of import background job of the project. |
-| `incidentManagementOncallSchedules` | IncidentManagementOncallScheduleConnection | Incident Management On-call schedules of the project |
+| `incidentManagementOncallSchedules` | IncidentManagementOncallScheduleConnection | Incident Management On-call schedules of the project. |
| `issue` | Issue | A single issue of the project. |
| `issueStatusCounts` | IssueStatusCountsType | Counts of issues by status for the project. |
| `issues` | IssueConnection | Issues of the project. |
| `issuesEnabled` | Boolean | Indicates if Issues are enabled for the current user |
-| `iterations` | IterationConnection | Find iterations |
+| `iterations` | IterationConnection | Find iterations. |
| `jiraImportStatus` | String | Status of Jira import background job of the project. |
| `jiraImports` | JiraImportConnection | Jira imports into the project. |
| `jobsEnabled` | Boolean | Indicates if CI/CD pipeline jobs are enabled for the current user. |
@@ -2893,14 +2893,14 @@ Autogenerated return type of PipelineRetry.
| `releases` | ReleaseConnection | Releases of the project. |
| `removeSourceBranchAfterMerge` | Boolean | Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project. |
| `repository` | Repository | Git repository of the project. |
-| `repositorySizeExcess` | Float | Size of repository that exceeds the limit in bytes |
+| `repositorySizeExcess` | Float | Size of repository that exceeds the limit in bytes. |
| `requestAccessEnabled` | Boolean | Indicates if users can request member access to the project. |
-| `requirement` | Requirement | Find a single requirement |
-| `requirementStatesCount` | RequirementStatesCount | Number of requirements for the project by their state |
-| `requirements` | RequirementConnection | Find requirements |
+| `requirement` | Requirement | Find a single requirement. |
+| `requirementStatesCount` | RequirementStatesCount | Number of requirements for the project by their state. |
+| `requirements` | RequirementConnection | Find requirements. |
| `sastCiConfiguration` | SastCiConfiguration | SAST CI configuration for the project. |
-| `securityDashboardPath` | String | Path to project's security dashboard |
-| `securityScanners` | SecurityScanners | Information about security analyzers used in the project |
+| `securityDashboardPath` | String | Path to project's security dashboard. |
+| `securityScanners` | SecurityScanners | Information about security analyzers used in the project. |
| `sentryDetailedError` | SentryDetailedError | Detailed version of a Sentry error on the project. |
| `sentryErrors` | SentryErrorCollection | Paginated collection of Sentry errors on the project. |
| `serviceDeskAddress` | String | E-mail address of the service desk. |
@@ -2919,10 +2919,10 @@ Autogenerated return type of PipelineRetry.
| `terraformStates` | TerraformStateConnection | Terraform states associated with the project. |
| `userPermissions` | ProjectPermissions! | Permissions for the current user on the resource |
| `visibility` | String | Visibility of the project. |
-| `vulnerabilities` | VulnerabilityConnection | Vulnerabilities reported on the project |
-| `vulnerabilitiesCountByDay` | VulnerabilitiesCountByDayConnection | Number of vulnerabilities per day for the project |
-| `vulnerabilityScanners` | VulnerabilityScannerConnection | Vulnerability scanners reported on the project vulnerabilities |
-| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each vulnerability severity in the project |
+| `vulnerabilities` | VulnerabilityConnection | Vulnerabilities reported on the project. |
+| `vulnerabilitiesCountByDay` | VulnerabilitiesCountByDayConnection | Number of vulnerabilities per day for the project. |
+| `vulnerabilityScanners` | VulnerabilityScannerConnection | Vulnerability scanners reported on the project vulnerabilities. |
+| `vulnerabilitySeveritiesCount` | VulnerabilitySeveritiesCount | Counts for each vulnerability severity in the project. |
| `webUrl` | String | Web URL of the project. |
| `wikiEnabled` | Boolean | Indicates if Wikis are enabled for the current user |
diff --git a/doc/api/repositories.md b/doc/api/repositories.md
index 25237c33383..11ef06c0f29 100644
--- a/doc/api/repositories.md
+++ b/doc/api/repositories.md
@@ -309,7 +309,7 @@ Supported attributes:
| Attribute | Type | Required | Description |
| :-------- | :------- | :--------- | :---------- |
| `version` | string | yes | The version to generate the changelog for. The format must follow [semantic versioning](https://semver.org/). |
-| `from` | string | yes | The start of the range of commits (as a SHA) to use for generating the changelog. This commit itself isn't included in the list. |
+| `from` | string | no | The start of the range of commits (as a SHA) to use for generating the changelog. This commit itself isn't included in the list. |
| `to` | string | yes | The end of the range of commits (as a SHA) to use for the changelog. This commit _is_ included in the list. |
| `date` | datetime | no | The date and time of the release, defaults to the current time. |
| `branch` | string | no | The branch to commit the changelog changes to, defaults to the project's default branch. |
@@ -317,6 +317,29 @@ Supported attributes:
| `file` | string | no | The file to commit the changes to, defaults to `CHANGELOG.md`. |
| `message` | string | no | The commit message to produce when committing the changes, defaults to `Add changelog for version X` where X is the value of the `version` argument. |
+If the `from` attribute is unspecified, GitLab uses the Git tag of the last
+version that came before the version specified in the `version` attribute. For
+this to work, your project must create Git tags for versions using the
+following format:
+
+```plaintext
+vX.Y.Z
+```
+
+Where `X.Y.Z` is a version that follows semantic versioning. For example,
+consider a project with the following tags:
+
+- v1.0.0
+- v1.1.0
+- v2.0.0
+
+If the `version` attribute is `2.1.0`, GitLab uses tag v2.0.0. And when the
+version is `1.1.1`, or `1.2.0`, GitLab uses tag v1.1.0.
+
+If `from` is unspecified and no tag to use is found, the API produces an error.
+To solve such an error, you must explicitly specify a value for the `from`
+attribute.
+
### How it works
Changelogs are generated based on commit titles. Commits are only included if
diff --git a/doc/architecture/blueprints/graphql_api/index.md b/doc/architecture/blueprints/graphql_api/index.md
new file mode 100644
index 00000000000..7798d9da587
--- /dev/null
+++ b/doc/architecture/blueprints/graphql_api/index.md
@@ -0,0 +1,183 @@
+---
+stage: none
+group: unassigned
+comments: false
+description: 'GraphQL API architecture foundation'
+---
+
+# GraphQL API
+
+[GraphQL](https://graphql.org/) is a data query and manipulation language for
+APIs, and a runtime for fulfilling queries with existing data.
+
+At GitLab we want to adopt GraphQL to make it easier for the wider community to
+interact with GitLab in a reliable way, but also to advance our own product by
+modeling communication between backend and frontend components using GraphQL.
+
+We've recently increased the pace of the adoption by defining quarterly OKRs
+related to GraphQL migration. This resulted in us spending more time on the
+GraphQL development and helped to surface the need of improving tooling we use
+to extend the new API.
+
+This document describes the work that is needed to build a stable foundation that
+will support our development efforts and a large-scale usage of the [GraphQL
+API](https://docs.gitlab.com/ee/api/graphql/index.html).
+
+## Summary
+
+The GraphQL initiative at GitLab [started around three years ago](https://gitlab.com/gitlab-org/gitlab/-/commit/9c6c17cbcdb8bf8185fc1b873dcfd08f723e4df5).
+Most of the work around the GraphQL ecosystem has been done by volunteers that are
+[GraphQL experts](https://gitlab.com/groups/gitlab-org/graphql-experts/-/group_members?with_inherited_permissions=exclude).
+
+The [retrospective on our progress](https://gitlab.com/gitlab-org/gitlab/-/issues/235659)
+surfaced a few opportunities to streamline our GraphQL development efforts and
+to reduce the risk of performance degradations and possible outages that may
+be related to the gaps in the essential mechanisms needed to make the GraphQL
+API observable and operable at scale.
+
+Amongst small improvements to the GraphQL engine itself we want to build a
+comprehensive monitoring dashboard, that will enable team members to make sense
+of what is happening inside our GraphQL API. We want to make it possible to define
+SLOs, triage breached SLIs and to be able to zoom into relevant details using
+Grafana and Elastic. We want to see historical data and predict future usage.
+
+It is an opportunity to learn from our experience in evolving the REST API, for
+the scale, and to apply this knowledge onto the GraphQL development efforts. We
+can do that by building query-to-feature correlation mechanisms, adding
+scalable state synchronization support and aligning GraphQL with other
+architectural initiatives being executed in parallel, like [the support for
+direct uploads](https://gitlab.com/gitlab-org/gitlab/-/issues/280819).
+
+GraphQL should be secure by default. We can avoid common security mistakes by
+building mechanisms that will help us to enforce [OWASP GraphQL
+recommendations](https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html)
+that are relevant to us.
+
+Understanding what are the needs of the wider community will also allow us to
+plan deprecation policies better and to design parity between GraphQL and REST
+API that suits their needs.
+
+## Challenges
+
+### Make sense of what is happening in GraphQL
+
+Being able to see how GraphQL performs in a production environment is a
+prerequisite for improving performance and reliability of that service.
+
+We do not yet have tools that would make it possible for us to answer a
+question of how GraphQL performs and what the bottlenecks we should optimize
+are. This, combined with a pace of GraphQL adoption and the scale in which we
+expect it operate, imposes a risk of an increased rate of production incidents
+what will be difficult to resolve.
+
+We want to build a comprehensive Grafana dashboard that will focus on
+delivering insights of how GraphQL endpoint performs, while still empowering
+team members with capability of zooming in into details. We want to improve
+logging to make it possible to better correlate GraphQL queries with feature
+using Elastic and to index them in a way that performance problems can be
+detected early.
+
+- Build a comprehensive Grafana dashboard for GraphQL
+- Build a GraphQL query-to-feature correlation mechanisms
+- Improve logging GraphQL queries in Elastic
+- Redesign error handling on frontend to surface warnings
+
+### Manage volatile GraphQL data structures
+
+Our GraphQL API will evolve with time. GraphQL has been designed to make such
+evolution easier. GraphQL APIs are easier to extend because of how composable
+GraphQL is. On the other hand this is also a reason why versioning of GraphQL
+APIs is considered unnecessary. Instead of versioning the API we want to mark
+some fields as deprecated, but we need to have a way to understand what is the
+usage of deprecated fields, types and a way to visualize it in a way that is
+easy to understand. We might want to detect usage of deprecated fields and
+notify users that we plan to remove them.
+
+- Define a data-informed deprecation policy that will serve our users better
+- Build a dashboard showing usage frequency of deprecated GraphQL fields
+- Build mechanisms required to send deprecated fields usage in usage ping
+
+### Ensure consistency with the rest of the codebase
+
+GraphQL is not the only thing we work on, but it cuts across the entire
+application. It is being used to expose data collected and processed in almost
+every part of our product. It makes it tightly coupled with our monolithic
+codebase.
+
+We need to ensure that how we use GraphQL is consistent with other mechanisms
+we've designed to improve performance and reliability of GitLab.
+
+We have extensive experience with evolving our REST API. We want to apply
+this knowledge onto GraphQL and make it performant and secure by default.
+
+- Design direct uploads for GraphQL
+- Build GraphQL query depth and complexity histograms
+- Visualize the amount of GraphQL queries reaching limits
+- Add support for GraphQL etags for existing features
+
+### Design GraphQL interoperability with REST API
+
+We do not plan to deprecate our REST API. It is a simple way to interact with
+GitLab, and GraphQL might never become a full replacement of a traditional REST
+API. The two APIs will need to coexist together. We will need to remove
+duplication between them to make their codebases maintainable. This symbiosis,
+however, is not only a technical challenge we need to resolve on the backend.
+Users might want to use the two APIs interchangeably or even at the same time.
+Making it interoperable by exposing a common scheme for resource identifiers is
+a prerequisite for interoperability.
+
+- Make GraphQL and REST API interoperable
+- Design common resource identifiers for both APIs
+
+### Design scalable state synchronization mechanisms
+
+One of the most important goals related to GraphQL adoption at GitLab is using
+it to model interactions between GitLab backend and frontend components. This
+is an ongoing process that has already surfaced the need of building better
+state synchronization mechanisms and hooking into existing ones.
+
+- Design a scalable state synchronization mechanism
+- Evaluate state synchronization through pub/sub and websockets
+- Build a generic support for GraphQL feature correlation and feature etags
+- Redesign frontend code responsible for managing shared global state
+
+## Iterations
+
+1. [Build comprehensive Grafana dashboard for GraphQL](https://gitlab.com/groups/gitlab-com/-/epics/1343)
+1. [Improve logging of GraphQL requests in Elastic](https://gitlab.com/groups/gitlab-org/-/epics/4646)
+1. [Build a scalable state synchronization for GraphQL](https://gitlab.com/groups/gitlab-org/-/epics/5319)
+1. [Build GraphQL feature-to-query correlation mechanisms](https://gitlab.com/groups/gitlab-org/-/epics/5320)
+1. [Design a better data-informed deprecation policy](https://gitlab.com/groups/gitlab-org/-/epics/5321)
+1. [Add support for direct uploads for GraphQL](https://gitlab.com/gitlab-org/gitlab/-/issues/280819)
+1. [Review GraphQL design choices related to security](https://gitlab.com/gitlab-org/security/gitlab/-/issues/339)
+
+## Status
+
+Current status: in progress.
+
+## Who
+
+Proposal:
+
+<!-- vale gitlab.Spelling = NO -->
+
+| Role | Who
+|------------------------------|-------------------------|
+| Author | Grzegorz Bizon |
+| Architecture Evolution Coach | Kamil Trzciński |
+| Engineering Leader | Darva Satcher |
+| Product Manager | Patrick Deuley |
+| Domain Expert / GraphQL | Charlie Ablett |
+| Domain Expert / GraphQL | Alex Kalderimis |
+| Domain Expert / GraphQL | Natalia Tepluhina |
+| Domain Expert / Scalability | Bob Van Landuyt |
+
+DRIs:
+
+| Role | Who
+|------------------------------|------------------------|
+| Leadership | Darva Satcher |
+| Product | Patrick Deuley |
+| Engineering | |
+
+<!-- vale gitlab.Spelling = YES -->
diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md
index 06443d377b9..2ef33c189b6 100644
--- a/doc/ci/yaml/README.md
+++ b/doc/ci/yaml/README.md
@@ -2024,8 +2024,10 @@ This example creates four paths of execution:
- For GitLab.com, the limit is 50. For more information, see our
[infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7541).
- For self-managed instances, the limit is: 50. This limit [can be changed](#changing-the-needs-job-limit).
-- If `needs:` refers to a job that is marked as `parallel:`.
- the current job depends on all parallel jobs being created.
+- If `needs:` refers to a job that uses the [`parallel`](#parallel) keyword,
+ it depends on all jobs created in parallel, not just one job. It also downloads
+ artifacts from all the parallel jobs by default. If the artifacts have the same
+ name, they overwrite each other and only the last one downloaded is saved.
- `needs:` is similar to `dependencies:` in that it must use jobs from prior stages,
meaning it's impossible to create circular dependencies. Depending on jobs in the
current stage is not possible either, but support [is planned](https://gitlab.com/gitlab-org/gitlab/-/issues/30632).
diff --git a/doc/development/README.md b/doc/development/README.md
index 5db4c5438c4..3d5335feb11 100644
--- a/doc/development/README.md
+++ b/doc/development/README.md
@@ -121,6 +121,7 @@ In these cases, use the following workflow:
- [User Experience (UX)](https://about.gitlab.com/handbook/engineering/ux/)
- [Security](https://about.gitlab.com/handbook/engineering/security/)
- [Quality](https://about.gitlab.com/handbook/engineering/quality/)
+ - [Engineering Productivity](https://about.gitlab.com/handbook/engineering/quality/engineering-productivity-team/)
- [Infrastructure](https://about.gitlab.com/handbook/engineering/infrastructure/)
- [Technical Writing](https://about.gitlab.com/handbook/engineering/ux/technical-writing/)
diff --git a/doc/development/application_limits.md b/doc/development/application_limits.md
index c661ff3f617..3608636dd55 100644
--- a/doc/development/application_limits.md
+++ b/doc/development/application_limits.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Enablement
+group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
diff --git a/doc/development/documentation/index.md b/doc/development/documentation/index.md
index 6b30a6dab5d..53e7ba35831 100644
--- a/doc/development/documentation/index.md
+++ b/doc/development/documentation/index.md
@@ -161,95 +161,69 @@ Nanoc layout), which is displayed at the top of the page if defined:
## Move or rename a page
-Moving or renaming a document is the same as changing its location.
-Be sure to assign a technical writer to any MR that renames or moves a page. Technical
-Writers can help with any questions and can review your change.
+Moving or renaming a document is the same as changing its location. Be sure to
+assign a technical writer to any merge request that renames or moves a page.
+Technical Writers can help with any questions and can review your change.
-When moving or renaming a page, you must redirect browsers to the new page. This
-ensures users find the new page, and have the opportunity to update their bookmarks.
+When moving or renaming a page, you must redirect browsers to the new page.
+This ensures users find the new page, and have the opportunity to update their
+bookmarks.
There are two types of redirects:
-- Redirect files added into the docs themselves, for users who view the docs in `/help`
- on self-managed instances. For example, [`/help` on GitLab.com](https://gitlab.com/help).
-- Redirects in a [`_redirects`](../../user/project/pages/redirects.md) file, for users
- who view the docs on <https://docs.gitlab.com>.
+- Redirect codes added into the documentation files themselves, for users who
+ view the docs in `/help` on self-managed instances. For example,
+ [`/help` on GitLab.com](https://gitlab.com/help).
+- [GitLab Pages redirects](../../user/project/pages/redirects.md),
+ for users who view the docs on [`docs.gitlab.com`](https://docs.gitlab.com).
+
+The Technical Writing team manages the [process](https://gitlab.com/gitlab-org/technical-writing/-/blob/master/.gitlab/issue_templates/tw-monthly-tasks.md)
+to regularly update the [`redirects.yaml`](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/master/content/_data/redirects.yaml)
+file.
To add a redirect:
-1. In an MR in one of the internal docs projects (`gitlab`, `gitlab-runner`, `omnibus-gitlab`
- or `charts`):
- 1. Move or rename the doc, but do not delete the old doc.
- 1. In the old doc, add the redirect code for `/help`. Use the following template exactly,
- and only change the links and date. Use relative paths and `.md` for a redirect
- to another docs page. Use the full URL to redirect to a different project or site:
-
- ```markdown
- ---
- redirect_to: '../path/to/file/index.md'
- ---
-
- This document was moved to [another location](../path/to/file/index.md).
-
- <!-- This redirect file can be deleted after <YYYY-MM-DD>. -->
- <!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page -->
- ```
-
- Redirect files linking to docs in any of the 4 internal docs projects can be
- removed after 3 months. Redirect files linking to external sites can be removed
- after 1 year.
-
- 1. If the document being moved has any Disqus comments on it, follow the steps
- described in [Redirections for pages with Disqus comments](#redirections-for-pages-with-disqus-comments).
- 1. If a documentation page you're removing includes images that aren't used
- with any other documentation pages, be sure to use your MR to delete
- those images from the repository.
- 1. Assign the MR to a technical writer for review and merge.
-1. If the redirect is to one of the 4 internal docs projects (not an external URL),
- create an MR in [`gitlab-docs`](https://gitlab.com/gitlab-org/gitlab-docs):
- 1. Update [`content/_data/redirects.yaml`](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/master/content/_data/redirects.yaml)
- with one redirect entry for each renamed or moved file. This code works for
- <https://docs.gitlab.com> links only. Keep them alphabetically sorted:
-
- ```yaml
- - from: /ee/path/to/old_file.html
- to: /ee/path/to/new_file.html
- remove_date: YYYY-MM-DD
- ```
-
- The path must start with the internal project directory `/ee`,
- `/runner`, `/omnibus` or `/charts`, and end with either `.html` or `/`
- for a clean URL.
-
- If the `from:` redirect is an `index.html` file, add a duplicate entry for
- the `/` URL (without `index.html). For example:
-
- ```yaml
- - from: /ee/user/project/operations/index.html
- to: /ee/operations/index.html
- remove_date: 2021-11-01
- - from: /ee/user/project/operations/
- to: /ee/operations/index.html
- remove_date: 2021-11-01
- ```
-
- The `remove_date` should be one year after the redirect is submitted.
-
- 1. Run the Rake task in the `gitlab-docs` project to populate the `_redirects` file:
-
- ```shell
- bundle exec rake redirects
- ```
-
- 1. Add both `content/_redirects` and `content/_data/redirects.yaml` to your MR.
-1. Search for links to the old file. You must find and update all links to the old file:
+1. Create a merge request in one of the internal docs projects (`gitlab`,
+ `gitlab-runner`, `omnibus-gitlab`, or `charts`), depending on the location of
+ the file that's being moved, renamed, or removed.
+1. To move or rename the documentation file, create a new file with the new
+ name or location, but don't delete the existing documentation file.
+1. In the original documentation file, add the redirect code for
+ `/help`. Use the following template exactly, and change only the links and
+ date. Use relative paths and `.md` for a redirect to another documentation
+ page. Use the full URL (with `https://`) to redirect to a different project or
+ site:
+
+ ```markdown
+ ---
+ redirect_to: '../path/to/file/index.md'
+ ---
+
+ This document was moved to [another location](../path/to/file/index.md).
+
+ <!-- This redirect file can be deleted after <YYYY-MM-DD>. -->
+ <!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page -->
+ ```
+
+ Redirect files linking to docs in any of the internal documentations projects
+ are removed after three months. Redirect files linking to external sites are
+ removed after one year.
+
+1. If the documentation page being moved has any Disqus comments, follow the steps
+ described in [Redirections for pages with Disqus comments](#redirections-for-pages-with-disqus-comments).
+1. If a documentation page you're removing includes images that aren't used
+ with any other documentation pages, be sure to use your merge request to delete
+ those images from the repository.
+1. Assign the merge request to a technical writer for review and merge.
+1. Search for links to the original documentation file. You must find and update all
+ links that point to the original documentation file:
- In <https://gitlab.com/gitlab-com/www-gitlab-com>, search for full URLs:
`grep -r "docs.gitlab.com/ee/path/to/file.html" .`
- In <https://gitlab.com/gitlab-org/gitlab-docs/-/tree/master/content/_data>,
search the navigation bar configuration files for the path with `.html`:
`grep -r "path/to/file.html" .`
- - In any of the 4 internal projects. This includes searching for links in the docs
+ - In any of the four internal projects. This includes searching for links in the docs
and codebase. Search for all variations, including full URL and just the path.
In macOS for example, go to the root directory of the `gitlab` project and run:
@@ -260,8 +234,8 @@ To add a redirect:
grep -r "path/to/file" .
```
- You may need to try variations of relative links as well, such as `../path/to/file`
- or even `../file` to find every case.
+ You may need to try variations of relative links, such as `../path/to/file` or
+ `../file` to find every case.
### Redirections for pages with Disqus comments
diff --git a/doc/development/fe_guide/dependencies.md b/doc/development/fe_guide/dependencies.md
index b036819cde1..8fe03544f85 100644
--- a/doc/development/fe_guide/dependencies.md
+++ b/doc/development/fe_guide/dependencies.md
@@ -6,28 +6,75 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Frontend dependencies
-## Package manager
+We use [yarn@1](https://classic.yarnpkg.com/lang/en/) to manage frontend dependencies.
-We use [Yarn](https://yarnpkg.com/) to manage frontend dependencies. There are a few exceptions, stored in `vendor/assets/`.
+There are a few exceptions in the GitLab repository, stored in `vendor/assets/`.
-## Updating dependencies
+## What are production and development dependencies?
+
+These dependencies are defined in two groups within `package.json`, `dependencies` and `devDependencies`.
+For our purposes, we consider anything that is required to compile our production assets a "production" dependency.
+That is, anything required to run the `webpack` script with `NODE_ENV=production`.
+Tools like `eslint`, `jest`, and various plugins and tools used in development are considered `devDependencies`.
+This distinction is used by omnibus to determine which dependencies it requires when building GitLab.
-### Renovate GitLab Bot
+Exceptions are made for some tools that we require in the
+`compile-production-assets` CI job such as `webpack-bundle-analyzer` to analyze our
+production assets post-compile.
+
+## Updating dependencies
We use the [Renovate GitLab Bot](https://gitlab.com/gitlab-org/frontend/renovate-gitlab-bot) to
-automatically create merge requests for updating dependencies of several projects. You can find the
-up-to-date list of projects managed by the renovate bot in the project’s README. Some key dependencies
-updated using renovate are:
+automatically create merge requests for updating dependencies of several projects.
+You can find the up-to-date list of projects managed by the renovate bot in the project’s README.
+
+Some key dependencies updated using renovate are:
- [`@gitlab/ui`](https://gitlab.com/gitlab-org/gitlab-ui)
- [`@gitlab/svgs`](https://gitlab.com/gitlab-org/gitlab-svgs)
- [`@gitlab/eslint-plugin`](https://gitlab.com/gitlab-org/frontend/eslint-plugin)
+- And any other package in the `@gitlab/` scope
+
+We have the goal of updating [_all_ dependencies with renovate](https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/21).
+
+Updating dependencies automatically has several benefits, have a look at this [example MR](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53613).
+
+- MRs will be created automatically when new versions are released
+- MRs can easily be rebased and updated with just checking a checkbox in the MR description
+- MRs contain changelog summaries and links to compare the different package versions
+- MRs can be assigned to people directly responsible for the dependencies
+
+### Community contributions updating dependencies
+
+It is okay to reject Community Contributions that solely bump dependencies.
+Simple dependency updates are better done automatically for the reasons provided above.
+If a community contribution needs to be rebased, runs into conflicts, or goes stale, the effort required
+to instruct the contributor to correct it often outweighs the benefits.
+
+If a dependency update is accompanied with significant migration efforts, due to major version updates,
+a community contribution is acceptable.
+
+Here is a message you can use to explain to community contributors as to why we reject simple updates:
+
+```markdown
+Hello CONTRIBUTOR!
+
+Thank you very much for this contribution. It seems like you are doing a "simple" dependency update.
+
+If a dependency update is as simple as increasing the version number, we'd like a Bot to do this to save you and ourselves some time.
+
+This has certain benefits as outlined in our <a href="https://docs.gitlab.com/ee/development/fe_guide/dependencies.html#updating-dependencies">Frontend development guidelines</a>.
+
+You might find that we do not currently update DEPENDENCY automatically, but we are planning to do so in [the near future](https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/21).
+
+Thank you for understanding, I will close this Merge Request.
+/close
+```
### Blocked dependencies
-We discourage installing some dependencies in [GitLab repository](https://gitlab.com/gitlab-org/gitlab)
-because they can create conflicts in the dependency tree. Blocked dependencies are declared in the
-`blockDependencies` property of the GitLab [`package.json` file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/package.json).
+We discourage installing some dependencies in [GitLab repository](https://gitlab.com/gitlab-org/gitlab) because they can create conflicts in the dependency tree.
+Blocked dependencies are declared in the `blockDependencies` property of the GitLab [`package.json`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/package.json).
## Dependency notes
diff --git a/doc/development/new_fe_guide/dependencies.md b/doc/development/new_fe_guide/dependencies.md
index 6db3b401025..b58319c15ca 100644
--- a/doc/development/new_fe_guide/dependencies.md
+++ b/doc/development/new_fe_guide/dependencies.md
@@ -1,38 +1,8 @@
---
-stage: none
-group: unassigned
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
+redirect_to: '../fe_guide/dependencies.md'
---
-# Dependencies
+This document was moved to [another location](../fe_guide/dependencies.md).
-## Adding Dependencies
-
-GitLab uses `yarn` to manage dependencies. These dependencies are defined in
-two groups within `package.json`, `dependencies` and `devDependencies`. For
-our purposes, we consider anything that is required to compile our production
-assets a "production" dependency. That is, anything required to run the
-`webpack` script with `NODE_ENV=production`. Tools like `eslint`, `karma`, and
-various plugins and tools used in development are considered `devDependencies`.
-This distinction is used by omnibus to determine which dependencies it requires
-when building GitLab.
-
-Exceptions are made for some tools that we require in the
-`gitlab:assets:compile` CI job such as `webpack-bundle-analyzer` to analyze our
-production assets post-compile.
-
-To add or upgrade a dependency, run:
-
-```shell
-yarn add <your dependency here>
-```
-
-This may introduce duplicate dependencies. To de-duplicate `yarn.lock`, run:
-
-```shell
-node_modules/.bin/yarn-deduplicate --list --strategy fewer yarn.lock && yarn install
-```
-
----
-
-> TODO: Add Dependencies
+<!-- This redirect file can be deleted after <2021-05-14>. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page -->
diff --git a/doc/development/new_fe_guide/index.md b/doc/development/new_fe_guide/index.md
index a62ea53de9f..4d4098844b2 100644
--- a/doc/development/new_fe_guide/index.md
+++ b/doc/development/new_fe_guide/index.md
@@ -13,10 +13,6 @@ This is a living document, and we welcome contributions, feedback, and suggestio
Guidance on topics related to development.
-## [Dependencies](dependencies.md)
-
-Learn about all the dependencies that make up our frontend, including some of our own custom built libraries.
-
## [Modules](modules/index.md)
Learn about all the internal JavaScript modules that make up our frontend.
diff --git a/doc/development/profiling.md b/doc/development/profiling.md
index 5714d25cedd..5c5ad5f9c39 100644
--- a/doc/development/profiling.md
+++ b/doc/development/profiling.md
@@ -106,6 +106,8 @@ environment variable `ENABLE_SHERLOCK` to a non empty value. For example:
ENABLE_SHERLOCK=1 bundle exec rails s
```
+Sherlock is also [available though the GitLab GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/sherlock.md).
+
Recorded transactions can be found by navigating to `/sherlock/transactions`.
## Bullet
diff --git a/doc/install/installation.md b/doc/install/installation.md
index 86f8476a786..df8b578e375 100644
--- a/doc/install/installation.md
+++ b/doc/install/installation.md
@@ -110,7 +110,7 @@ Install the required packages (needed to compile Ruby and native extensions to R
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libre2-dev \
libreadline-dev libncurses5-dev libffi-dev curl openssh-server checkinstall libxml2-dev \
libxslt-dev libcurl4-openssl-dev libicu-dev logrotate rsync python-docutils pkg-config cmake \
- runit
+ runit-systemd
```
Ubuntu 14.04 (Trusty Tahr) doesn't have the `libre2-dev` package available, but
diff --git a/doc/topics/gitlab_flow.md b/doc/topics/gitlab_flow.md
index 0e200eff3c1..d02573a0e06 100644
--- a/doc/topics/gitlab_flow.md
+++ b/doc/topics/gitlab_flow.md
@@ -311,6 +311,18 @@ The words "change," "improve," "fix," and "refactor" don't add much information
For example, "Improve XML generation" could be better written as "Properly escape special characters in XML generation."
For more information about formatting commit messages, please see this excellent [blog post by Tim Pope](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
+To add more context to a commit message, consider adding information regarding the
+origin of the change. For example, the URL of a GitLab issue, or a Jira issue number,
+containing more information for users who need in-depth context about the change.
+
+For example:
+
+```plaintext
+Properly escape special characters in XML generation.
+
+Issue: gitlab.com/gitlab-org/gitlab/-/issues/1
+```
+
## Testing before merging
![Merge requests showing the test states: red, yellow, and green](img/gitlab_flow_ci_mr.png)
diff --git a/doc/user/admin_area/diff_limits.md b/doc/user/admin_area/diff_limits.md
index d5327aeffd8..83b1869c7f2 100644
--- a/doc/user/admin_area/diff_limits.md
+++ b/doc/user/admin_area/diff_limits.md
@@ -13,25 +13,25 @@ For details about diff files, [View changes between files](../project/merge_requ
## Maximum diff patch size
-Diff files which exceed this value will be presented as 'too large' and won't
-be expandable. Instead of an expandable view, a link to the blob view will be
+Diff files which exceed this value are presented as 'too large' and cannot
+be expandable. Instead of an expandable view, a link to the blob view is
shown.
-Patches greater than 10% of this size will be automatically collapsed, and a
-link to expand the diff will be presented.
+Patches greater than 10% of this size are automatically collapsed, and a
+link to expand the diff is presented.
+This affects merge requests and branch comparison views.
-NOTE:
-Merge requests and branch comparison views will be affected.
-
-WARNING:
-This setting is experimental. An increased maximum will increase resource
-consumption of your instance. Keep this in mind when adjusting the maximum.
+To set the maximum diff patch size:
1. Go to **Admin Area > Settings > General**.
1. Expand **Diff limits**.
1. Enter a value for **Maximum diff patch size**, measured in bytes.
1. Click on **Save changes**.
+WARNING:
+This setting is experimental. An increased maximum increases resource
+consumption of your instance. Keep this in mind when adjusting the maximum.
+
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
diff --git a/doc/user/admin_area/settings/account_and_limit_settings.md b/doc/user/admin_area/settings/account_and_limit_settings.md
index 0c991aa52df..641e3f9f104 100644
--- a/doc/user/admin_area/settings/account_and_limit_settings.md
+++ b/doc/user/admin_area/settings/account_and_limit_settings.md
@@ -172,9 +172,9 @@ To set a limit on how long personal access tokens are valid:
1. Fill in the **Maximum allowable lifetime for personal access tokens (days)** field.
1. Click **Save changes**.
-Once a lifetime for personal access tokens is set, GitLab will:
+Once a lifetime for personal access tokens is set, GitLab:
-- Apply the lifetime for new personal access tokens, and require users to set an expiration date
+- Applies the lifetime for new personal access tokens, and require users to set an expiration date
and a date no later than the allowed lifetime.
- After three hours, revoke old tokens with no expiration date or with a lifetime longer than the
allowed lifetime. Three hours is given to allow administrators to change the allowed lifetime,
diff --git a/doc/user/admin_area/settings/instance_template_repository.md b/doc/user/admin_area/settings/instance_template_repository.md
index 6d633cfbffd..7630f0c2fbd 100644
--- a/doc/user/admin_area/settings/instance_template_repository.md
+++ b/doc/user/admin_area/settings/instance_template_repository.md
@@ -22,10 +22,9 @@ select the project to serve as the custom template repository.
![File templates in the Admin Area](img/file_template_admin_area.png)
-Once a project has been selected, you can add custom templates to the repository,
-and they will appear in the appropriate places in the
-[frontend](../../project/repository/web_editor.md#template-dropdowns) and
-[API](../../../api/settings.md).
+After that, you can add custom templates to the selected repository and use them for the entire instance.
+They will be available on the [Web Editor's dropdown](../../project/repository/web_editor.md#template-dropdowns)
+and through the [API settings](../../../api/settings.md).
Templates must be added to a specific subdirectory in the repository,
corresponding to the kind of template. The following types of custom templates
@@ -61,9 +60,7 @@ extension and not be empty. So, the hierarchy should look like this:
|-- another_metrics-dashboard.yml
```
-Once this is established, the list of custom templates will be included when
-creating a new file and the template type is selected. These will appear at the
-top of the list.
+Your custom templates will be displayed on the dropdown menu when a new file is added through the GitLab UI:
![Custom template dropdown menu](img/file_template_user_dropdown.png)
diff --git a/doc/user/admin_area/settings/push_event_activities_limit.md b/doc/user/admin_area/settings/push_event_activities_limit.md
index c109429216a..1d6424face0 100644
--- a/doc/user/admin_area/settings/push_event_activities_limit.md
+++ b/doc/user/admin_area/settings/push_event_activities_limit.md
@@ -9,17 +9,17 @@ type: reference
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/31007) in GitLab 12.4.
-This allows you to set the number of changes (branches or tags) in a single push
-to determine whether individual push events or bulk push event will be created.
-Bulk push events will be created if it surpasses that value.
+Set the number of branches or tags to limit the number of single push events
+allowed at once. If the number of events is greater than this, GitLab creates
+bulk push event instead.
For example, if 4 branches are pushed and the limit is currently set to 3,
you'll see the following in the activity feed:
![Bulk push event](img/bulk_push_event_v12_4.png)
-With this feature, when a single push includes a lot of changes (e.g. 1,000
-branches), only 1 bulk push event will be created instead of creating 1,000 push
+With this feature, when a single push includes a lot of changes (for example, 1,000
+branches), only 1 bulk push event is created instead of 1,000 push
events. This helps in maintaining good system performance and preventing spam on
the activity feed.
diff --git a/doc/user/analytics/code_review_analytics.md b/doc/user/analytics/code_review_analytics.md
index 8d0d6eb1628..19016c3aa26 100644
--- a/doc/user/analytics/code_review_analytics.md
+++ b/doc/user/analytics/code_review_analytics.md
@@ -8,21 +8,21 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Code Review Analytics **(PREMIUM)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/38062) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.7.
-> - Moved to [GitLab Premium](https://about.gitlab.com/pricing/) due to Starter/Bronze being [discontinued](https://about.gitlab.com/blog/2021/01/26/new-gitlab-product-subscription-model/) in 13.9.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/38062) in GitLab 12.7.
+> - Moved to GitLab Premium in 13.9.
-Code Review Analytics makes it easy to view the longest-running reviews among open merge requests and
-enables you to:
+Use Code Review Analytics to view the longest-running reviews among open merge
+requests, and:
-1. Take action on individual merge requests.
-1. Reduce overall cycle time.
+- Take action on individual merge requests.
+- Reduce overall cycle time.
NOTE:
Initially, no data appears. Data is populated as users comment on open merge requests.
## Overview
-Code Review Analytics displays a table of open merge requests that have at least one non-author comment. The review time is measured from the time the first non-author comment was submitted.
+Code Review Analytics is available to users with Reporter access and above, and displays a table of open merge requests that have at least one non-author comment. The review time is measured from the time the first non-author comment was submitted.
To access Code Review Analytics, from your project's menu, go to **Project Analytics > Code Review**.
@@ -54,8 +54,3 @@ For example:
- Lots of comments or commits? Maybe the code is too complex.
- A particular author is involved? Maybe more training is required.
- Few comments and approvers? Maybe your team is understaffed.
-
-## Permissions
-
-- On [Starter or Bronze tier](https://about.gitlab.com/pricing/) and above.
-- By users with Reporter access and above.
diff --git a/doc/user/packages/container_registry/index.md b/doc/user/packages/container_registry/index.md
index c169fd478fd..74218fc8c13 100644
--- a/doc/user/packages/container_registry/index.md
+++ b/doc/user/packages/container_registry/index.md
@@ -581,7 +581,7 @@ Here are examples of regex patterns you may want to use:
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/288812) in GitLab 13.9.
> - It's [deployed behind a feature flag](../../feature_flags.md), disabled by default.
-> - It's disabled on GitLab.com.
+> - It's enabled on GitLab.com.
> - It's not recommended for production use.
> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-cleanup-policy-limits).
diff --git a/doc/user/project/index.md b/doc/user/project/index.md
index 6230a992dbb..90875f064aa 100644
--- a/doc/user/project/index.md
+++ b/doc/user/project/index.md
@@ -7,13 +7,13 @@ type: reference
# Projects **(FREE)**
-In GitLab, you can create projects for hosting
-your codebase, use it as an issue tracker, collaborate on code, and continuously
-build, test, and deploy your app with built-in GitLab CI/CD.
+In GitLab, you can create projects to host
+your codebase. You can also use projects to track issues, plan work,
+collaborate on code, and continuously build, test, and use
+built-in CI/CD to deploy your app.
-Your projects can be [available](../../public_access/public_access.md)
-publicly, internally, or privately, at your choice. GitLab does not limit
-the number of private projects you create.
+Projects can be available [publicly, internally, or privately](../../public_access/public_access.md).
+GitLab does not limit the number of private projects you can create.
## Project features
@@ -21,46 +21,43 @@ Projects include the following [features](https://about.gitlab.com/features/):
**Repositories:**
-- [Issue tracker](issues/index.md): Discuss implementations with your team in issues
- - [Issue Boards](issue_board.md): Organize and prioritize your workflow
- - [Multiple Issue Boards](issue_board.md#multiple-issue-boards): Allow your teams to create their own workflows (Issue Boards) for the same project
-- [Repositories](repository/index.md): Host your code in a fully
- integrated platform
- - [Branches](repository/branches/index.md): use Git branching strategies to
- collaborate on code
+- [Issue tracker](issues/index.md): Discuss implementations with your team.
+ - [Issue Boards](issue_board.md): Organize and prioritize your workflow.
+ - [Multiple Issue Boards](issue_board.md#multiple-issue-boards): Create team-specific workflows (Issue Boards) for a project.
+- [Repositories](repository/index.md): Host your code in a fully-integrated platform.
+ - [Branches](repository/branches/index.md): Use Git branching strategies to
+ collaborate on code.
- [Protected branches](protected_branches.md): Prevent collaborators
- from messing with history or pushing code without review
- - [Protected tags](protected_tags.md): Control over who has
- permission to create tags, and prevent accidental update or deletion
+ from changing history or pushing code without review.
+ - [Protected tags](protected_tags.md): Control who has
+ permission to create tags and prevent accidental updates or deletions.
- [Repository mirroring](repository/repository_mirroring.md)
- - [Signing commits](repository/gpg_signed_commits/index.md): use GPG to sign your commits
- - [Deploy tokens](deploy_tokens/index.md): Manage project-based deploy tokens that allow permanent access to the repository and Container Registry.
+ - [Signing commits](repository/gpg_signed_commits/index.md): Use GNU Privacy Guard (GPG) to sign your commits.
+ - [Deploy tokens](deploy_tokens/index.md): Manage access to the repository and Container Registry.
- [Web IDE](web_ide/index.md)
- [CVE ID Requests](../application_security/cve_id_request.md): Request a CVE identifier to track a
vulnerability in your project.
**Issues and merge requests:**
-- [Issue tracker](issues/index.md): Discuss implementations with your team in issues
- - [Issue Boards](issue_board.md): Organize and prioritize your workflow
- - [Multiple Issue Boards](issue_board.md#multiple-issue-boards): Allow your teams to create their own workflows (Issue Boards) for the same project
-- [Merge Requests](merge_requests/index.md): Apply your branching
- strategy and get reviewed by your team
+- [Issue tracker](issues/index.md): Discuss implementations with your team.
+ - [Issue Boards](issue_board.md): Organize and prioritize your workflow.
+ - [Multiple Issue Boards](issue_board.md#multiple-issue-boards): Create team-specific workflows (Issue Boards) for a project.
+- [Merge Requests](merge_requests/index.md): Apply a branching
+ strategy and get reviewed by your team.
- [Merge Request Approvals](merge_requests/merge_request_approvals.md): Ask for approval before
- implementing a change
- - [Fix merge conflicts from the UI](merge_requests/resolve_conflicts.md):
- Your Git diff tool right from the GitLab UI
- - [Review Apps](../../ci/review_apps/index.md): Live preview the results
- of the changes proposed in a merge request in a per-branch basis
-- [Labels](labels.md): Organize issues and merge requests by labels
-- [Time Tracking](time_tracking.md): Track estimate time
- and time spent on
- the conclusion of an issue or merge request
-- [Milestones](milestones/index.md): Work towards a target date
+ implementing a change.
+ - [Fix merge conflicts from the UI](merge_requests/resolve_conflicts.md): View Git diffs from the GitLab UI.
+ - [Review Apps](../../ci/review_apps/index.md): By branch, preview the results
+ of the changes proposed in a merge request.
+- [Labels](labels.md): Organize issues and merge requests by labels.
+- [Time Tracking](time_tracking.md): Track time estimated and
+ spent on issues and merge requests.
+- [Milestones](milestones/index.md): Work toward a target date.
- [Description templates](description_templates.md): Define context-specific
- templates for issue and merge request description fields for your project
-- [Slash commands (quick actions)](quick_actions.md): Textual shortcuts for
- common actions on issues or merge requests
+ templates for issue and merge request description fields.
+- [Slash commands (quick actions)](quick_actions.md): Create text shortcuts for
+ common actions.
- [Autocomplete characters](autocomplete_characters.md): Autocomplete
references to users, groups, issues, merge requests, and other GitLab
elements.
@@ -68,51 +65,49 @@ Projects include the following [features](https://about.gitlab.com/features/):
**GitLab CI/CD:**
-- [GitLab CI/CD](../../ci/README.md): the GitLab built-in [Continuous Integration, Delivery, and Deployment](https://about.gitlab.com/blog/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/) tool
+- [GitLab CI/CD](../../ci/README.md): Use the built-in [Continuous Integration, Delivery, and Deployment](https://about.gitlab.com/blog/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/) tool.
- [Container Registry](../packages/container_registry/index.md): Build and push Docker
- images out-of-the-box
+ images.
- [Auto Deploy](../../topics/autodevops/stages.md#auto-deploy): Configure GitLab CI/CD
- to automatically set up your app's deployment
+ to automatically set up your app's deployment.
- [Enable and disable GitLab CI/CD](../../ci/enable_or_disable_ci.md)
- [Pipelines](../../ci/pipelines/index.md): Configure and visualize
- your GitLab CI/CD pipelines from the UI
+ your GitLab CI/CD pipelines from the UI.
- [Scheduled Pipelines](../../ci/pipelines/schedules.md): Schedule a pipeline
- to start at a chosen time
+ to start at a chosen time.
- [Pipeline Graphs](../../ci/pipelines/index.md#visualize-pipelines): View your
- entire pipeline from the UI
+ pipeline from the UI.
- [Job artifacts](../../ci/pipelines/job_artifacts.md): Define,
- browse, and download job artifacts
- - [Pipeline settings](../../ci/pipelines/settings.md): Set up Git strategy (choose the default way your repository is fetched from GitLab in a job),
- timeout (defines the maximum amount of time in minutes that a job is able run), custom path for `.gitlab-ci.yml`, test coverage parsing, pipeline's visibility, and much more
- - [Kubernetes cluster integration](clusters/index.md): Connecting your GitLab project
- with a Kubernetes cluster
- - [Feature Flags](../../operations/feature_flags.md): Feature flags allow you to ship a project in
- different flavors by dynamically toggling certain functionality **(PREMIUM)**
+ browse, and download job artifacts.
+ - [Pipeline settings](../../ci/pipelines/settings.md): Set up Git strategy (how jobs fetch your repository),
+ timeout (the maximum amount of time a job can run), custom path for `.gitlab-ci.yml`, test coverage parsing, pipeline visibility, and more.
+ - [Kubernetes cluster integration](clusters/index.md): Connect your GitLab project
+ with a Kubernetes cluster.
+ - [Feature Flags](../../operations/feature_flags.md): Ship different features
+ by dynamically toggling functionality. **(PREMIUM)**
- [GitLab Pages](pages/index.md): Build, test, and deploy your static
- website with GitLab Pages
+ website.
**Other features:**
-- [Wiki](wiki/index.md): document your GitLab project in an integrated Wiki.
-- [Snippets](../snippets.md): store, share and collaborate on code snippets.
-- [Value Stream Analytics](../analytics/value_stream_analytics.md): review your development lifecycle.
-- [Insights](insights/index.md): configure the Insights that matter for your projects. **(ULTIMATE)**
-- [Security Dashboard](../application_security/security_dashboard/index.md): Security Dashboard. **(ULTIMATE)**
-- [Syntax highlighting](highlighting.md): an alternative to customize
- your code blocks, overriding the GitLab default choice of language.
-- [Badges](badges.md): badges for the project overview.
-- [Releases](releases/index.md): a way to track deliverables in your project as snapshot in time of
- the source, build output, other metadata, and other artifacts
+- [Wiki](wiki/index.md): Document your GitLab project in an integrated Wiki.
+- [Snippets](../snippets.md): Store, share and collaborate on code snippets.
+- [Value Stream Analytics](../analytics/value_stream_analytics.md): Review your development lifecycle.
+- [Insights](insights/index.md): Configure the insights that matter for your projects. **(ULTIMATE)**
+- [Security Dashboard](../application_security/security_dashboard/index.md) **(ULTIMATE)**
+- [Syntax highlighting](highlighting.md): Customize
+ your code blocks, overriding the default language choice.
+- [Badges](badges.md): Add an image to the project overview.
+- [Releases](releases/index.md): Take a snapshot of
+ the source, build output, metadata, and artifacts
associated with a released version of your code.
-- [Conan packages](../packages/conan_repository/index.md): your private Conan repository in GitLab.
-- [Maven packages](../packages/maven_repository/index.md): your private Maven repository in GitLab.
-- [NPM packages](../packages/npm_registry/index.md): your private NPM package registry in GitLab.
-- [Code owners](code_owners.md): specify code owners for certain files
-- [License Compliance](../compliance/license_compliance/index.md): approve and deny licenses for projects. **(ULTIMATE)**
-- [Dependency List](../application_security/dependency_list/index.md): view project dependencies. **(ULTIMATE)**
-- [Requirements](requirements/index.md): Requirements allow you to create criteria to check your products against. **(ULTIMATE)**
-- [Static Site Editor](static_site_editor/index.md): quickly edit content on static websites without prior knowledge of the codebase or Git commands.
-- [Code Intelligence](code_intelligence.md): code navigation features.
+- [Package Registry](../packages/package_registry/index.md): Publish and install packages.
+- [Code owners](code_owners.md): Specify code owners for specific files.
+- [License Compliance](../compliance/license_compliance/index.md): Approve and deny licenses for projects. **(ULTIMATE)**
+- [Dependency List](../application_security/dependency_list/index.md): View project dependencies. **(ULTIMATE)**
+- [Requirements](requirements/index.md): Create criteria to check your products against. **(ULTIMATE)**
+- [Static Site Editor](static_site_editor/index.md): Edit content on static websites without prior knowledge of the codebase or Git commands.
+- [Code Intelligence](code_intelligence.md): Navigate code.
## Project integrations
@@ -129,13 +124,6 @@ Kubernetes, Slack, and a lot more.
- [Export a project from GitLab](settings/import_export.md#exporting-a-project-and-its-data)
- [Importing and exporting projects between GitLab instances](settings/import_export.md)
-## CI/CD for external repositories **(PREMIUM)**
-
-Instead of importing a repository directly to GitLab, you can connect your repository
-as a CI/CD project.
-
-Read through the documentation on [CI/CD for external repositories](../../ci/ci_cd_for_external_repos/index.md).
-
## GitLab Workflow - VS Code extension
To avoid switching from the GitLab UI and VS Code while working in GitLab repositories, you can integrate