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
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-12-12 06:16:05 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-12-12 06:16:05 +0300
commitfdc2b6184d20e767f089557f3cdc68837a6aacfb (patch)
tree14b1005ac9138e65cdd716b2c7eb1084c970b1f1
parent101d32c3b8d57c73088f1103f87899b0b20531eb (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.rubocop_todo/layout/argument_alignment.yml1
-rw-r--r--.rubocop_todo/layout/line_length.yml1
-rw-r--r--.rubocop_todo/rspec/context_wording.yml1
-rw-r--r--.rubocop_todo/rspec/named_subject.yml1
-rw-r--r--.rubocop_todo/rspec/scattered_let.yml1
-rw-r--r--.rubocop_todo/style/if_unless_modifier.yml1
-rw-r--r--.rubocop_todo/style/numeric_literal_prefix.yml2
-rw-r--r--.rubocop_todo/style/open_struct_use.yml1
-rw-r--r--app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue2
-rw-r--r--app/models/diff_note.rb2
-rw-r--r--app/models/merge_request_diff.rb5
-rw-r--r--app/views/admin/application_settings/_git_lfs_limits.html.haml2
-rw-r--r--app/views/admin/application_settings/_import_export_limits.html.haml2
-rw-r--r--app/views/admin/application_settings/_issue_limits.html.haml2
-rw-r--r--app/views/admin/application_settings/_network_rate_limits.html.haml4
-rw-r--r--app/views/admin/application_settings/_note_limits.html.haml2
-rw-r--r--app/views/admin/application_settings/_pipeline_limits.html.haml2
-rw-r--r--app/views/admin/application_settings/_projects_api_limits.html.haml2
-rw-r--r--app/views/admin/application_settings/_search_limits.html.haml2
-rw-r--r--app/views/admin/application_settings/_users_api_limits.html.haml2
-rw-r--r--app/views/admin/deploy_keys/new.html.haml2
-rw-r--r--app/views/admin/topics/_form.html.haml2
-rw-r--r--config/feature_flags/development/collapse_generated_diff_files.yml8
-rw-r--r--db/docs/analytics_devops_adoption_snapshots.yml4
-rw-r--r--db/docs/packages_tags.yml4
-rw-r--r--db/migrate/20230222161954_add_text_limit_to_custom_jira_regex_fields.rb2
-rw-r--r--db/migrate/20231123035033_add_generated_to_merge_request_context_commit_diff_files.rb11
-rw-r--r--db/schema_migrations/202311230350331
-rw-r--r--db/structure.sql3
-rw-r--r--doc/api/graphql/getting_started.md2
-rw-r--r--doc/api/graphql/index.md124
-rw-r--r--doc/api/graphql/reference/index.md556
-rw-r--r--doc/ci/resource_groups/index.md2
-rw-r--r--doc/ci/testing/code_quality.md2
-rw-r--r--doc/development/api_graphql_styleguide.md22
-rw-r--r--doc/development/fe_guide/index.md2
-rw-r--r--doc/development/fe_guide/migrating_from_vuex.md2
-rw-r--r--doc/security/user_file_uploads.md2
-rw-r--r--lib/gitlab/git/diff.rb24
-rw-r--r--lib/gitlab/git/diff_collection.rb6
-rw-r--r--qa/qa/page/project/monitor/alerts/show.rb4
-rw-r--r--spec/lib/gitlab/database/sharding_key_spec.rb65
-rw-r--r--spec/lib/gitlab/git/diff_collection_spec.rb69
-rw-r--r--spec/lib/gitlab/git/diff_spec.rb6
-rw-r--r--spec/models/merge_request_diff_spec.rb60
-rw-r--r--spec/support/rspec_order_todo.yml1
-rw-r--r--tooling/graphql/docs/helper.rb2
-rw-r--r--tooling/graphql/docs/templates/default.md.haml2
48 files changed, 613 insertions, 415 deletions
diff --git a/.rubocop_todo/layout/argument_alignment.yml b/.rubocop_todo/layout/argument_alignment.yml
index 55d6c9799bb..97da3fca535 100644
--- a/.rubocop_todo/layout/argument_alignment.yml
+++ b/.rubocop_todo/layout/argument_alignment.yml
@@ -949,7 +949,6 @@ Layout/ArgumentAlignment:
- 'ee/spec/lib/gitlab/data_builder/vulnerability_spec.rb'
- 'ee/spec/lib/gitlab/elastic/indexer_spec.rb'
- 'ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb'
- - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/lib/gitlab/geo_spec.rb'
- 'ee/spec/lib/gitlab/git_access_spec.rb'
- 'ee/spec/lib/gitlab/git_access_wiki_spec.rb'
diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml
index d44131e2fd4..6c52e174a28 100644
--- a/.rubocop_todo/layout/line_length.yml
+++ b/.rubocop_todo/layout/line_length.yml
@@ -1664,7 +1664,6 @@ Layout/LineLength:
- 'ee/spec/lib/gitlab/geo/log_cursor/lease_spec.rb'
- 'ee/spec/lib/gitlab/geo/oauth/login_state_spec.rb'
- 'ee/spec/lib/gitlab/geo/oauth/logout_token_spec.rb'
- - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/lib/gitlab/geo_spec.rb'
- 'ee/spec/lib/gitlab/git_access_spec.rb'
- 'ee/spec/lib/gitlab/git_access_wiki_spec.rb'
diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml
index b87720fa9cd..e2df251aa7e 100644
--- a/.rubocop_todo/rspec/context_wording.yml
+++ b/.rubocop_todo/rspec/context_wording.yml
@@ -368,7 +368,6 @@ RSpec/ContextWording:
- 'ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb'
- 'ee/spec/lib/gitlab/geo/log_helpers_spec.rb'
- 'ee/spec/lib/gitlab/geo/oauth/session_spec.rb'
- - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/lib/gitlab/geo/replicator_spec.rb'
- 'ee/spec/lib/gitlab/geo/signed_data_spec.rb'
- 'ee/spec/lib/gitlab/git_access_spec.rb'
diff --git a/.rubocop_todo/rspec/named_subject.yml b/.rubocop_todo/rspec/named_subject.yml
index 152d2068e0c..752c32b9d6a 100644
--- a/.rubocop_todo/rspec/named_subject.yml
+++ b/.rubocop_todo/rspec/named_subject.yml
@@ -436,7 +436,6 @@ RSpec/NamedSubject:
- 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_attachments_event_spec.rb'
- 'ee/spec/lib/gitlab/geo/oauth/session_spec.rb'
- 'ee/spec/lib/gitlab/geo/registry_batcher_spec.rb'
- - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/lib/gitlab/geo/replication/blob_retriever_spec.rb'
- 'ee/spec/lib/gitlab/geo/replicator_spec.rb'
- 'ee/spec/lib/gitlab/geo/signed_data_spec.rb'
diff --git a/.rubocop_todo/rspec/scattered_let.yml b/.rubocop_todo/rspec/scattered_let.yml
index 627ab6870b8..00d8fd127ae 100644
--- a/.rubocop_todo/rspec/scattered_let.yml
+++ b/.rubocop_todo/rspec/scattered_let.yml
@@ -15,7 +15,6 @@ RSpec/ScatteredLet:
- 'ee/spec/lib/gitlab/code_owners/loader_spec.rb'
- 'ee/spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb'
- 'ee/spec/lib/gitlab/elastic/bulk_indexer_spec.rb'
- - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/lib/gitlab/git_access_spec.rb'
- 'ee/spec/lib/gitlab/insights/reducers/count_per_label_reducer_spec.rb'
- 'ee/spec/lib/gitlab/insights/reducers/label_count_per_period_reducer_spec.rb'
diff --git a/.rubocop_todo/style/if_unless_modifier.yml b/.rubocop_todo/style/if_unless_modifier.yml
index 5c4f93e0d55..985655536bc 100644
--- a/.rubocop_todo/style/if_unless_modifier.yml
+++ b/.rubocop_todo/style/if_unless_modifier.yml
@@ -623,7 +623,6 @@ Style/IfUnlessModifier:
- 'ee/spec/helpers/ee/users/callouts_helper_spec.rb'
- 'ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb'
- 'ee/spec/lib/gitlab/elastic/search_results_spec.rb'
- - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/models/concerns/elastic/note_spec.rb'
- 'ee/spec/models/geo_node_status_spec.rb'
- 'ee/spec/models/push_rule_spec.rb'
diff --git a/.rubocop_todo/style/numeric_literal_prefix.yml b/.rubocop_todo/style/numeric_literal_prefix.yml
index 4d810dc95f0..0004b0da84b 100644
--- a/.rubocop_todo/style/numeric_literal_prefix.yml
+++ b/.rubocop_todo/style/numeric_literal_prefix.yml
@@ -9,7 +9,6 @@ Style/NumericLiteralPrefix:
- 'ee/lib/ee/gitlab/background_migration/backfill_project_statistics_container_repository_size.rb'
- 'ee/lib/gitlab/geo/replication/blob_downloader.rb'
- 'ee/spec/lib/bulk_imports/groups/pipelines/iterations_pipeline_spec.rb'
- - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/models/analytics/devops_adoption/snapshot_spec.rb'
- 'ee/spec/models/ci/minutes/usage_spec.rb'
- 'ee/spec/models/ee/group_spec.rb'
@@ -30,6 +29,7 @@ Style/NumericLiteralPrefix:
- 'spec/lib/gitlab/database/background_migration/batched_job_spec.rb'
- 'spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb'
- 'spec/lib/gitlab/git/diff_spec.rb'
+ - 'spec/lib/gitlab/git/diff_collection_spec.rb'
- 'spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb'
- 'spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb'
- 'spec/lib/gitlab/gitaly_client/diff_spec.rb'
diff --git a/.rubocop_todo/style/open_struct_use.yml b/.rubocop_todo/style/open_struct_use.yml
index c21b63bc22b..4b2eedd833a 100644
--- a/.rubocop_todo/style/open_struct_use.yml
+++ b/.rubocop_todo/style/open_struct_use.yml
@@ -6,6 +6,7 @@ Style/OpenStructUse:
- 'ee/spec/helpers/ee/blob_helper_spec.rb'
- 'ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb'
- 'spec/helpers/profiles_helper_spec.rb'
+ - 'spec/lib/gitlab/git/diff_collection_spec.rb'
- 'spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb'
- 'spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb'
- 'spec/support/helpers/repo_helpers.rb'
diff --git a/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue b/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue
index 93581dbbd40..655a16dea01 100644
--- a/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue
+++ b/app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue
@@ -36,7 +36,7 @@ export default {
<li
:id="noteAnchorId"
class="timeline-entry note system-note note-wrapper gl-p-0!"
- data-qa-selector="alert_system_note_container"
+ data-testid="alert-system-note-container"
>
<div class="gl-display-inline-flex gl-align-items-center gl-relative">
<div
diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb
index 33dd7308e14..1de302761bd 100644
--- a/app/models/diff_note.rb
+++ b/app/models/diff_note.rb
@@ -53,7 +53,7 @@ class DiffNote < Note
end
creation_params = diff_file.diff.to_hash
- .except(:too_large)
+ .except(:too_large, :generated)
.merge(diff: diff_file.diff_hunk(diff_line))
create_note_diff_file(creation_params)
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb
index 000fb9117af..0b183131a47 100644
--- a/app/models/merge_request_diff.rb
+++ b/app/models/merge_request_diff.rb
@@ -805,7 +805,10 @@ class MergeRequestDiff < ApplicationRecord
if compare.commits.empty?
new_attributes[:state] = :empty
else
- diff_collection = compare.diffs(Commit.max_diff_options)
+ options = Commit.max_diff_options
+ options[:generated_files] = compare.generated_files if Feature.enabled?(:collapse_generated_diff_files, project)
+
+ diff_collection = compare.diffs(options)
new_attributes[:real_size] = diff_collection.real_size
if diff_collection.any?
diff --git a/app/views/admin/application_settings/_git_lfs_limits.html.haml b/app/views/admin/application_settings/_git_lfs_limits.html.haml
index 638984ae97a..bac781675e2 100644
--- a/app/views/admin/application_settings/_git_lfs_limits.html.haml
+++ b/app/views/admin/application_settings/_git_lfs_limits.html.haml
@@ -15,4 +15,4 @@
= f.label :throttle_authenticated_git_lfs_period_in_seconds, _('Authenticated Git LFS rate limit period in seconds'), class: 'gl-font-weight-bold'
= f.number_field :throttle_authenticated_git_lfs_period_in_seconds, class: 'form-control gl-form-input'
- = f.submit _('Save changes'), pajamas_button: true, data: { qa_selector: 'save_changes_button' }
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_import_export_limits.html.haml b/app/views/admin/application_settings/_import_export_limits.html.haml
index 269a1497324..9e6f4bbd6a0 100644
--- a/app/views/admin/application_settings/_import_export_limits.html.haml
+++ b/app/views/admin/application_settings/_import_export_limits.html.haml
@@ -34,4 +34,4 @@
= f.label :group_download_export_limit, _('Maximum group export download requests per minute'), class: 'label-bold'
= f.number_field :group_download_export_limit, class: 'form-control gl-form-input'
- = f.submit _('Save changes'), data: { qa_selector: 'save_changes_button' }, pajamas_button: true
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_issue_limits.html.haml b/app/views/admin/application_settings/_issue_limits.html.haml
index 147aab443b2..e78c0209737 100644
--- a/app/views/admin/application_settings/_issue_limits.html.haml
+++ b/app/views/admin/application_settings/_issue_limits.html.haml
@@ -6,4 +6,4 @@
= f.label :issues_create_limit, _('Maximum number of requests per minute')
= f.number_field :issues_create_limit, class: 'form-control gl-form-input'
- = f.submit _('Save changes'), data: { qa_selector: 'save_changes_button' }, pajamas_button: true
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_network_rate_limits.html.haml b/app/views/admin/application_settings/_network_rate_limits.html.haml
index 300180f7b9a..1a45cbd33cf 100644
--- a/app/views/admin/application_settings/_network_rate_limits.html.haml
+++ b/app/views/admin/application_settings/_network_rate_limits.html.haml
@@ -8,7 +8,6 @@
.form-group
= f.gitlab_ui_checkbox_component :"throttle_unauthenticated_#{setting_fragment}_enabled",
_('Enable unauthenticated API request rate limit'),
- checkbox_options: { data: { qa_selector: "throttle_unauthenticated_#{setting_fragment}_checkbox" } },
label_options: { class: 'label-bold' }
.form-group
= f.label :"throttle_unauthenticated_#{setting_fragment}_requests_per_period", _('Maximum unauthenticated API requests per rate limit period per IP'), class: 'label-bold'
@@ -21,7 +20,6 @@
.form-group
= f.gitlab_ui_checkbox_component :"throttle_authenticated_#{setting_fragment}_enabled",
_('Enable authenticated API request rate limit'),
- checkbox_options: { data: { qa_selector: "throttle_authenticated_#{setting_fragment}_checkbox" } },
label_options: { class: 'label-bold' }
.form-group
= f.label :"throttle_authenticated_#{setting_fragment}_requests_per_period", _('Maximum authenticated API requests per rate limit period per user'), class: 'label-bold'
@@ -30,4 +28,4 @@
= f.label :"throttle_authenticated_#{setting_fragment}_period_in_seconds", _('Authenticated API rate limit period in seconds'), class: 'label-bold'
= f.number_field :"throttle_authenticated_#{setting_fragment}_period_in_seconds", class: 'form-control gl-form-input'
- = f.submit _('Save changes'), pajamas_button: true, data: { qa_selector: 'save_changes_button' }
+ = f.submit _('Save changes'), pajamas_button: true, data: { testid: 'save_changes_button' }
diff --git a/app/views/admin/application_settings/_note_limits.html.haml b/app/views/admin/application_settings/_note_limits.html.haml
index 99cf0ebc669..ed56f35dee4 100644
--- a/app/views/admin/application_settings/_note_limits.html.haml
+++ b/app/views/admin/application_settings/_note_limits.html.haml
@@ -12,4 +12,4 @@
= _('List of users who are allowed to exceed the rate limit. Example: username1, username2')
- = f.submit _('Save changes'), data: { qa_selector: 'save_changes_button' }, pajamas_button: true
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_pipeline_limits.html.haml b/app/views/admin/application_settings/_pipeline_limits.html.haml
index b7dffe63777..15942c980c2 100644
--- a/app/views/admin/application_settings/_pipeline_limits.html.haml
+++ b/app/views/admin/application_settings/_pipeline_limits.html.haml
@@ -6,4 +6,4 @@
= f.label :pipeline_limit_per_project_user_sha, _('Maximum number of requests per minute')
= f.number_field :pipeline_limit_per_project_user_sha, class: 'form-control gl-form-input'
- = f.submit _('Save changes'), data: { qa_selector: 'save_changes_button' }, pajamas_button: true
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_projects_api_limits.html.haml b/app/views/admin/application_settings/_projects_api_limits.html.haml
index c9eff76916a..a937a528e80 100644
--- a/app/views/admin/application_settings/_projects_api_limits.html.haml
+++ b/app/views/admin/application_settings/_projects_api_limits.html.haml
@@ -18,4 +18,4 @@
.form-text.gl-text-gray-600
= _("Set to 0 to disable the limit.")
- = f.submit _('Save changes'), data: { qa_selector: 'save_changes_button' }, pajamas_button: true
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_search_limits.html.haml b/app/views/admin/application_settings/_search_limits.html.haml
index b318f7e5a20..98ce675937b 100644
--- a/app/views/admin/application_settings/_search_limits.html.haml
+++ b/app/views/admin/application_settings/_search_limits.html.haml
@@ -19,4 +19,4 @@
= _('List of users who are allowed to exceed the rate limit. Example: username1, username2')
- = f.submit _('Save changes'), data: { qa_selector: 'save_changes_button' }, pajamas_button: true
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/application_settings/_users_api_limits.html.haml b/app/views/admin/application_settings/_users_api_limits.html.haml
index ca6f1113c4a..7dad581f885 100644
--- a/app/views/admin/application_settings/_users_api_limits.html.haml
+++ b/app/views/admin/application_settings/_users_api_limits.html.haml
@@ -11,4 +11,4 @@
.form-text.text-muted{ id: 'users-api-limit-users-allowlist-field-description' }
= _('List of users who are allowed to exceed the rate limit. Example: username1, username2')
- = f.submit _('Save changes'), data: { qa_selector: 'save_changes_button' }, pajamas_button: true
+ = f.submit _('Save changes'), pajamas_button: true
diff --git a/app/views/admin/deploy_keys/new.html.haml b/app/views/admin/deploy_keys/new.html.haml
index 3d73b255a5e..ef314bf7d6a 100644
--- a/app/views/admin/deploy_keys/new.html.haml
+++ b/app/views/admin/deploy_keys/new.html.haml
@@ -4,6 +4,6 @@
= gitlab_ui_form_for [:admin, @deploy_key], html: { class: 'deploy-key-form' } do |f|
= render partial: 'shared/deploy_keys/form', locals: { form: f, deploy_key: @deploy_key }
.gl-display-flex.gl-mt-6.gl-gap-3
- = f.submit 'Create', data: { qa_selector: "add_deploy_key_button" }, pajamas_button: true
+ = f.submit 'Create', pajamas_button: true
= render Pajamas::ButtonComponent.new(href: admin_deploy_keys_path) do
= _('Cancel')
diff --git a/app/views/admin/topics/_form.html.haml b/app/views/admin/topics/_form.html.haml
index c61be1182e0..85d374d7404 100644
--- a/app/views/admin/topics/_form.html.haml
+++ b/app/views/admin/topics/_form.html.haml
@@ -45,7 +45,7 @@
- else
.form-actions
- = f.submit _('Save changes'), pajamas_button: true, data: { qa_selector: 'save_changes_button' }
+ = f.submit _('Save changes'), pajamas_button: true
= render Pajamas::ButtonComponent.new(href: admin_topics_path) do
= _('Cancel')
diff --git a/config/feature_flags/development/collapse_generated_diff_files.yml b/config/feature_flags/development/collapse_generated_diff_files.yml
new file mode 100644
index 00000000000..5d5cf5d98a0
--- /dev/null
+++ b/config/feature_flags/development/collapse_generated_diff_files.yml
@@ -0,0 +1,8 @@
+---
+name: collapse_generated_diff_files
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138013
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432670
+milestone: '16.7'
+type: development
+group: group::code review
+default_enabled: false
diff --git a/db/docs/analytics_devops_adoption_snapshots.yml b/db/docs/analytics_devops_adoption_snapshots.yml
index 378b83cc22f..e8bdb5f32c8 100644
--- a/db/docs/analytics_devops_adoption_snapshots.yml
+++ b/db/docs/analytics_devops_adoption_snapshots.yml
@@ -7,4 +7,6 @@ feature_categories:
description: Contains periodical DevOps Adoption data points.
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47388
milestone: '13.7'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ namespace_id: namespaces
diff --git a/db/docs/packages_tags.yml b/db/docs/packages_tags.yml
index dcd1eccd35c..11bc0d68662 100644
--- a/db/docs/packages_tags.yml
+++ b/db/docs/packages_tags.yml
@@ -7,4 +7,6 @@ feature_categories:
description: Package identifier tags for supported package types. See https://docs.gitlab.com/ee/user/packages/npm_registry/#add-npm-distribution-tags for an example.
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20636
milestone: '12.7'
-gitlab_schema: gitlab_main
+gitlab_schema: gitlab_main_cell
+sharding_key:
+ project_id: projects
diff --git a/db/migrate/20230222161954_add_text_limit_to_custom_jira_regex_fields.rb b/db/migrate/20230222161954_add_text_limit_to_custom_jira_regex_fields.rb
index 625655fda9d..20991e4dffd 100644
--- a/db/migrate/20230222161954_add_text_limit_to_custom_jira_regex_fields.rb
+++ b/db/migrate/20230222161954_add_text_limit_to_custom_jira_regex_fields.rb
@@ -10,6 +10,6 @@ class AddTextLimitToCustomJiraRegexFields < Gitlab::Database::Migration[2.1]
def down
remove_text_limit :jira_tracker_data, :jira_issue_regex
- remove_text_limit :jira_tracker_data, :jira_issue_regex
+ remove_text_limit :jira_tracker_data, :jira_issue_prefix
end
end
diff --git a/db/migrate/20231123035033_add_generated_to_merge_request_context_commit_diff_files.rb b/db/migrate/20231123035033_add_generated_to_merge_request_context_commit_diff_files.rb
new file mode 100644
index 00000000000..7e97a582116
--- /dev/null
+++ b/db/migrate/20231123035033_add_generated_to_merge_request_context_commit_diff_files.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class AddGeneratedToMergeRequestContextCommitDiffFiles < Gitlab::Database::Migration[2.2]
+ milestone '16.7'
+
+ enable_lock_retries!
+
+ def change
+ add_column :merge_request_context_commit_diff_files, :generated, :boolean
+ end
+end
diff --git a/db/schema_migrations/20231123035033 b/db/schema_migrations/20231123035033
new file mode 100644
index 00000000000..e38c7d8d2c3
--- /dev/null
+++ b/db/schema_migrations/20231123035033
@@ -0,0 +1 @@
+a12e860dae13871a03c348f9acd2c653e91e2da454d40a4ae0b98167065be696 \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index a8cd3824d84..1a964aa2c04 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -18767,7 +18767,8 @@ CREATE TABLE merge_request_context_commit_diff_files (
old_path text NOT NULL,
diff text,
"binary" boolean,
- merge_request_context_commit_id bigint NOT NULL
+ merge_request_context_commit_id bigint NOT NULL,
+ generated boolean
);
CREATE TABLE merge_request_context_commits (
diff --git a/doc/api/graphql/getting_started.md b/doc/api/graphql/getting_started.md
index 3c938d0a4fd..cf756027e01 100644
--- a/doc/api/graphql/getting_started.md
+++ b/doc/api/graphql/getting_started.md
@@ -343,7 +343,7 @@ More about introspection:
### Query complexity
-The calculated [complexity score and limit](index.md#max-query-complexity) for a query can be revealed to clients by
+The calculated [complexity score and limit](index.md#maximum-query-complexity) for a query can be revealed to clients by
querying for `queryComplexity`.
```graphql
diff --git a/doc/api/graphql/index.md b/doc/api/graphql/index.md
index 5ac64708385..37bd9fc38ed 100644
--- a/doc/api/graphql/index.md
+++ b/doc/api/graphql/index.md
@@ -6,8 +6,6 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# GraphQL API **(FREE ALL)**
-> Enabled and [made generally available](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/30444) in GitLab 12.1. [Feature flag `graphql`](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/30444) removed.
-
[GraphQL](https://graphql.org/) is a query language for APIs. You can use it to
request the exact data you need, and therefore limit the number of requests you need.
@@ -15,38 +13,22 @@ GraphQL data is arranged in types, so your client can use
[client-side GraphQL libraries](https://graphql.org/code/#graphql-clients)
to consume the API and avoid manual parsing.
-There are no fixed endpoints and no data model, so you can add
-to the API without creating [breaking changes](../../development/deprecation_guidelines/index.md).
-This enables us to have a [versionless API](https://graphql.org/learn/best-practices/#versioning).
-
-## Vision
-
-We want the GraphQL API to be the **primary** means of interacting
-programmatically with GitLab. To achieve this, it needs full coverage - anything
-possible in the REST API should also be possible in the GraphQL API.
+The GraphQL API is [versionless](https://graphql.org/learn/best-practices/#versioning).
-To help us meet this vision, the frontend should use GraphQL in preference to
-the REST API for new features.
-
-There are no plans to deprecate the REST API. To reduce the technical burden of
-supporting two APIs in parallel, they should share implementations as much as
-possible.
-
-## Work with GraphQL
+## Getting started
If you're new to the GitLab GraphQL API, see [Get started with GitLab GraphQL API](getting_started.md).
You can view the available resources in the [GraphQL API reference](reference/index.md).
-The reference is automatically generated from the GitLab GraphQL schema and
-written to a Markdown file.
The GitLab GraphQL API endpoint is located at `/api/graphql`.
-### GraphiQL
+### Interactive GraphQL explorer
+
+Explore the GraphQL API using the interactive GraphQL explorer, either:
-Explore the GraphQL API using the interactive [GraphiQL explorer](https://gitlab.com/-/graphql-explorer),
-or on your self-managed GitLab instance on
-`https://<your-gitlab-site.com>/-/graphql-explorer`.
+- [On GitLab.com](https://gitlab.com/-/graphql-explorer).
+- On your self-managed GitLab instance on `https://<your-gitlab-site.com>/-/graphql-explorer`.
For more information, see [GraphiQL](getting_started.md#graphiql).
@@ -72,33 +54,44 @@ Global IDs are a convention used for caching and fetching in some client-side li
GitLab Global IDs are subject to change. If changed, the use of the old Global ID as an argument is deprecated and supported according to the [deprecation and breaking change](#breaking-changes) process.
You should not expect that a cached Global ID will be valid beyond the time of a GitLab GraphQL deprecation cycle.
+## Available top-level queries
+
+The top-level entry points for all queries are defined in the [`Query` type](reference/index.md#query-type) in the
+GraphQL reference.
+
+### Multiplex queries
+
+GitLab supports batching queries into a single request. For more information, see
+[Multiplex](https://graphql-ruby.org/queries/multiplex.html).
+
## Breaking changes
-The GitLab GraphQL API is [versionless](https://graphql.org/learn/best-practices/#versioning) and changes to the API are primarily backward-compatible.
+The GitLab GraphQL API is [versionless](https://graphql.org/learn/best-practices/#versioning) and changes to the API are
+primarily backward-compatible.
However, GitLab sometimes changes the GraphQL API in a way that is not backward-compatible. These changes are considered breaking changes, and
can include removing or renaming fields, arguments, or other parts of the schema.
When creating a breaking change, GitLab follows a [deprecation and removal process](#deprecation-and-removal-process).
-To avoid having a breaking change affect your integrations, you should
-familiarize yourself with the [deprecation and removal process](#deprecation-and-removal-process) and
-frequently [verify your API calls against the future breaking-change schema](#verify-against-the-future-breaking-change-schema).
+To avoid having a breaking change affect your integrations, you should:
+
+- Familiarize yourself with the [deprecation and removal process](#deprecation-and-removal-process).
+- Frequently [verify your API calls against the future breaking-change schema](#verify-against-the-future-breaking-change-schema).
For more information, see [Deprecating GitLab features](../../development/deprecation_guidelines/index.md).
### Breaking change exemptions
-Schema items
-[marked as alpha](../../development/api_graphql_styleguide.md#mark-schema-items-as-alpha)
-are exempt from the deprecation process, and can be removed or changed at any
+Schema items labeled as Experiments in the [GraphQL API reference](reference/index.md)
+are exempt from the deprecation process. These items can be removed or changed at any
time without notice.
Fields behind a feature flag and disabled by default do not follow the
-deprecation and removal process, and can be removed at any time without notice.
+deprecation and removal process. These fields can be removed at any time without notice.
WARNING:
GitLab makes all attempts to follow the [deprecation and removal process](#deprecation-and-removal-process).
-On rare occasions, GitLab might make immediate breaking changes to the GraphQL
+GitLab might make immediate breaking changes to the GraphQL
API to patch critical security or performance concerns if the deprecation
process would pose significant risk.
@@ -111,8 +104,8 @@ This way, you can verify API calls ahead of a [breaking-change release](#depreca
before the items are actually removed from the schema.
To make these calls, add a
-`remove_deprecated=true` query parameter to the GitLab GraphQL API endpoint (for example,
-`https://gitlab.com/api/graphql?remove_deprecated=true` for GitLab SaaS GraphQL).
+`remove_deprecated=true` query parameter to the GraphQL API endpoint. For example,
+`https://gitlab.com/api/graphql?remove_deprecated=true` for GraphQL on GitLab.com.
### Deprecation and removal process
@@ -134,10 +127,8 @@ Items are marked as deprecated in:
The deprecation message provides an alternative for the deprecated schema item,
if applicable.
-NOTE:
-If you use the GraphQL API, we recommend you remove the deprecated schema from your GraphQL
-API calls as soon as possible to avoid experiencing breaking changes.
-You should [verify your API calls against the schema without the deprecated schema items](#verify-against-the-future-breaking-change-schema).
+To avoid experiencing breaking changes, you should remove the deprecated schema from your GraphQL API calls as soon as
+possible. You should [verify your API calls against the schema without the deprecated schema items](#verify-against-the-future-breaking-change-schema).
#### Deprecation example
@@ -145,7 +136,7 @@ The following fields are deprecated in different minor releases, but both
removed in GitLab 14.0:
| Field deprecated in | Reason |
-| ------------------- | --- |
+|:--------------------|:-------|
| 12.7 | GitLab traditionally has 12 minor releases per major release. To ensure the field is available for 6 more releases, it is removed in the 14.0 major release (and not 13.0). |
| 13.6 | The removal in 14.0 allows for 6 months of availability. |
@@ -153,50 +144,21 @@ removed in GitLab 14.0:
View the [list of items removed](removed_items.md) in previous releases.
-## Available queries
-
-The GraphQL API includes the following queries at the root level:
-
-Query | Description
---------------|------------
-`project` | Project information and many of its associations, such as issues and merge requests.
-`group` | Basic group information and epics.
-`user` | Information about a particular user.
-`namespace` | The namespace and the `projects` in it.
-`currentUser` | Information about the authenticated user.
-`users` | Information about a collection of users.
-`metaData` | Metadata about GitLab and the GraphQL API.
-`snippets` | Snippets visible to the authenticated user.
-
-New associations and root level objects are regularly added.
-See the [GraphQL API Reference](reference/index.md) for up-to-date information.
-
-Root-level queries are defined in
-[`app/graphql/types/query_type.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/graphql/types/query_type.rb).
-
-### Multiplex queries
-
-GitLab supports batching queries into a single request using
-[`@apollo/client/link/batch-http`](https://www.apollographql.com/docs/react/api/link/apollo-link-batch-http/). More
-information about multiplexed queries is also available for
-[GraphQL Ruby](https://graphql-ruby.org/queries/multiplex.html), the
-library GitLab uses on the backend.
-
## Limits
The following limits apply to the GitLab GraphQL API.
-Limit | Default
----------------------|---------------------------------------------------------------------
-Max page size | 100 records (nodes) per page. Applies to most connections in the API. Particular connections may have different max page size limits that are higher or lower.
-[Max query complexity](#max-query-complexity) | `200` for unauthenticated requests and `250` for authenticated requests.
-Request timeout | 30 seconds.
-Max query size | 10,000 characters per query or mutation. If this limit is reached, use [variables](https://graphql.org/learn/queries/#variables) and [fragments](https://graphql.org/learn/queries/#fragments) to reduce the query or mutation size. Remove white spaces as last resort.
+| Limit | Default |
+|:------------------------------------------------------|:--------|
+| Maximum page size | 100 records (nodes) per page. Applies to most connections in the API. Particular connections may have different max page size limits that are higher or lower. |
+| [Maximum query complexity](#maximum-query-complexity) | 200 for unauthenticated requests and 250 for authenticated requests. |
+| Request timeout | 30 seconds. |
+| Maximum query size | 10,000 characters per query or mutation. If this limit is reached, use [variables](https://graphql.org/learn/queries/#variables) and [fragments](https://graphql.org/learn/queries/#fragments) to reduce the query or mutation size. Remove white spaces as last resort. |
-### Max query complexity
+### Maximum query complexity
The GitLab GraphQL API scores the _complexity_ of a query. Generally, larger
-queries have a higher complexity score. This limit is designed to protect
+queries have a higher complexity score. This limit is designed to protecting
the API from performing queries that could negatively impact its overall performance.
You can [query](getting_started.md#query-complexity) the complexity score of a query
@@ -209,14 +171,8 @@ In general, each field in a query adds `1` to the complexity score, although
this can be higher or lower for particular fields. Sometimes, adding
certain arguments may also increase the complexity of a query.
-NOTE:
-The complexity limits may be revised in future, and additionally, the complexity
-of a query may be altered.
-
## Resolve mutations detected as spam
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/327360) in GitLab 13.11.
-
GraphQL mutations can be detected as spam. If a mutation is detected as spam and:
- A CAPTCHA service is not configured, a
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index f8157c132ee..e053f0f5a60 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -14,7 +14,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
This documentation is self-generated based on GitLab current GraphQL schema.
-The API can be explored interactively using the [GraphiQL IDE](../index.md#graphiql).
+The API can be explored using the [interactive GraphQL explorer](../index.md#interactive-graphql-explorer).
Each table below documents a GraphQL type. Types match loosely to models, but not all
fields and methods on a model are available via GraphQL.
@@ -64,7 +64,7 @@ Returns [`LabelConnection`](#labelconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -101,7 +101,7 @@ Returns [`AiMessageConnection!`](#aimessageconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -118,7 +118,7 @@ Returns [`AuditEventDefinitionConnection!`](#auditeventdefinitionconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.auditEventsInstanceAmazonS3Configurations`
@@ -128,7 +128,7 @@ Returns [`InstanceAmazonS3ConfigurationTypeConnection`](#instanceamazons3configu
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.boardList`
@@ -178,7 +178,7 @@ Returns [`CiCatalogResourceConnection`](#cicatalogresourceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -214,7 +214,7 @@ Returns [`CiMinutesNamespaceMonthlyUsageConnection`](#ciminutesnamespacemonthlyu
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -261,7 +261,7 @@ Returns [`CiInstanceVariableConnection`](#ciinstancevariableconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -307,7 +307,7 @@ Returns [`DevopsAdoptionEnabledNamespaceConnection`](#devopsadoptionenablednames
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -404,7 +404,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -420,7 +420,7 @@ Returns [`InstanceExternalAuditEventDestinationConnection`](#instanceexternalaud
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.instanceGoogleCloudLoggingConfigurations`
@@ -430,7 +430,7 @@ Returns [`InstanceGoogleCloudLoggingConfigurationTypeConnection`](#instancegoogl
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.instanceSecurityDashboard`
@@ -462,7 +462,7 @@ Returns [`IssueConnection`](#issueconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -527,7 +527,7 @@ Returns [`CiJobConnection`](#cijobconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -545,7 +545,7 @@ Returns [`LicenseHistoryEntryConnection`](#licensehistoryentryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.memberRole`
@@ -575,7 +575,7 @@ Returns [`CustomizablePermissionConnection`](#customizablepermissionconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.mergeRequest`
@@ -699,7 +699,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -745,7 +745,7 @@ Returns [`RunnerPlatformConnection`](#runnerplatformconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.runnerSetup`
@@ -774,7 +774,7 @@ Returns [`CiRunnerConnection`](#cirunnerconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -803,7 +803,7 @@ Returns [`AddOnUserConnection`](#addonuserconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -820,7 +820,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -841,7 +841,7 @@ Returns [`SubscriptionFutureEntryConnection`](#subscriptionfutureentryconnection
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
### `Query.syntheticNote`
@@ -868,7 +868,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -903,7 +903,7 @@ Returns [`TopicConnection`](#topicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -919,7 +919,7 @@ Returns [`UsageTrendsMeasurementConnection`](#usagetrendsmeasurementconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -950,7 +950,7 @@ Returns [`UserCoreConnection`](#usercoreconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -970,7 +970,7 @@ Returns [`VulnerabilityConnection`](#vulnerabilityconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -1000,7 +1000,7 @@ Returns [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnec
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -1049,7 +1049,7 @@ Returns [`WorkItemConnection`](#workitemconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -1086,7 +1086,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
#### Arguments
@@ -13913,7 +13913,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14073,7 +14073,7 @@ Returns [`UserAddOnAssignmentConnection`](#useraddonassignmentconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14089,7 +14089,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14125,7 +14125,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14161,7 +14161,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14178,7 +14178,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14226,7 +14226,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14244,7 +14244,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14260,7 +14260,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14283,7 +14283,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14308,7 +14308,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14417,7 +14417,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14433,7 +14433,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14757,7 +14757,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14793,7 +14793,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14829,7 +14829,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14858,7 +14858,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14906,7 +14906,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14924,7 +14924,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14940,7 +14940,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14963,7 +14963,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -14988,7 +14988,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15112,7 +15112,7 @@ Returns [`BoardEpicConnection`](#boardepicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15128,7 +15128,7 @@ Returns [`BoardListConnection`](#boardlistconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15211,7 +15211,7 @@ Returns [`EpicConnection`](#epicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15248,7 +15248,7 @@ Returns [`EpicConnection`](#epicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15285,7 +15285,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15301,7 +15301,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15365,7 +15365,7 @@ Returns [`IssueConnection`](#issueconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15478,7 +15478,7 @@ Returns [`CiCatalogResourceVersionConnection`](#cicatalogresourceversionconnecti
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15936,7 +15936,7 @@ Returns [`CiJobConnection`](#cijobconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -15952,7 +15952,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16269,7 +16269,7 @@ Returns [`PipelineConnection`](#pipelineconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16605,7 +16605,7 @@ Returns [`ContainerRepositoryTagConnection`](#containerrepositorytagconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16783,7 +16783,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16819,7 +16819,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16855,7 +16855,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16872,7 +16872,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16920,7 +16920,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16938,7 +16938,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16954,7 +16954,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -16977,7 +16977,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17002,7 +17002,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17586,7 +17586,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17602,7 +17602,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17618,7 +17618,7 @@ Returns [`DesignVersionConnection!`](#designversionconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17695,7 +17695,7 @@ Returns [`DesignConnection!`](#designconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17726,7 +17726,7 @@ Returns [`DesignVersionConnection!`](#designversionconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17825,7 +17825,7 @@ Returns [`DesignAtVersionConnection!`](#designatversionconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -17891,7 +17891,7 @@ Returns [`DevopsAdoptionSnapshotConnection`](#devopsadoptionsnapshotconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18121,7 +18121,7 @@ Returns [`DeploymentConnection`](#deploymentconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18225,7 +18225,7 @@ Returns [`EpicConnection`](#epicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18262,7 +18262,7 @@ Returns [`EpicConnection`](#epicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18299,7 +18299,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18315,7 +18315,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18362,7 +18362,7 @@ Returns [`EpicListConnection`](#epiclistconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18498,7 +18498,7 @@ Returns [`AlertManagementAlertConnection`](#alertmanagementalertconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18519,7 +18519,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18535,7 +18535,7 @@ Returns [`IssuableResourceLinkConnection`](#issuableresourcelinkconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18551,7 +18551,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18598,7 +18598,7 @@ Returns [`EpicConnection`](#epicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18828,7 +18828,7 @@ Returns [`CiSecureFileRegistryConnection`](#cisecurefileregistryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18847,7 +18847,7 @@ Returns [`ContainerRepositoryRegistryConnection`](#containerrepositoryregistryco
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18870,7 +18870,7 @@ Returns [`DependencyProxyBlobRegistryConnection`](#dependencyproxyblobregistryco
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18889,7 +18889,7 @@ Returns [`DependencyProxyManifestRegistryConnection`](#dependencyproxymanifestre
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18912,7 +18912,7 @@ Returns [`DesignManagementRepositoryRegistryConnection`](#designmanagementreposi
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18931,7 +18931,7 @@ Returns [`GroupWikiRepositoryRegistryConnection`](#groupwikirepositoryregistryco
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18950,7 +18950,7 @@ Returns [`JobArtifactRegistryConnection`](#jobartifactregistryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18969,7 +18969,7 @@ Returns [`LfsObjectRegistryConnection`](#lfsobjectregistryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -18988,7 +18988,7 @@ Returns [`MergeRequestDiffRegistryConnection`](#mergerequestdiffregistryconnecti
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19007,7 +19007,7 @@ Returns [`PackageFileRegistryConnection`](#packagefileregistryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19026,7 +19026,7 @@ Returns [`PagesDeploymentRegistryConnection`](#pagesdeploymentregistryconnection
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19045,7 +19045,7 @@ Returns [`PipelineArtifactRegistryConnection`](#pipelineartifactregistryconnecti
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19064,7 +19064,7 @@ Returns [`ProjectRepositoryRegistryConnection`](#projectrepositoryregistryconnec
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19083,7 +19083,7 @@ Returns [`ProjectWikiRepositoryRegistryConnection`](#projectwikirepositoryregist
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19102,7 +19102,7 @@ Returns [`SnippetRepositoryRegistryConnection`](#snippetrepositoryregistryconnec
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19121,7 +19121,7 @@ Returns [`TerraformStateVersionRegistryConnection`](#terraformstateversionregist
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19140,7 +19140,7 @@ Returns [`UploadRegistryConnection`](#uploadregistryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19277,7 +19277,7 @@ Returns [`AchievementConnection`](#achievementconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19297,7 +19297,7 @@ Returns [`AddOnUserConnection`](#addonuserconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19362,7 +19362,7 @@ Returns [`BoardConnection`](#boardconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19378,7 +19378,7 @@ Returns [`CiGroupVariableConnection`](#cigroupvariableconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19394,7 +19394,7 @@ Returns [`ClusterAgentConnection`](#clusteragentconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19412,7 +19412,7 @@ Returns [`CodeCoverageActivityConnection`](#codecoverageactivityconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19428,7 +19428,7 @@ Returns [`ComplianceFrameworkConnection`](#complianceframeworkconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19457,7 +19457,7 @@ Returns [`CustomerRelationsContactConnection`](#customerrelationscontactconnecti
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19476,7 +19476,7 @@ Returns [`ContainerRepositoryConnection`](#containerrepositoryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19493,7 +19493,7 @@ Returns [`ContributionAnalyticsContributionConnection`](#contributionanalyticsco
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19514,7 +19514,7 @@ Returns [`CustomEmojiConnection`](#customemojiconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19534,7 +19534,7 @@ Returns [`CustomizableDashboardVisualizationConnection`](#customizabledashboardv
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19554,7 +19554,7 @@ Returns [`CustomizableDashboardConnection`](#customizabledashboardconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19584,7 +19584,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19602,7 +19602,7 @@ Returns [`DoraPerformanceScoreCountConnection`](#doraperformancescorecountconnec
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19618,7 +19618,7 @@ Returns [`CiGroupEnvironmentScopeConnection`](#cigroupenvironmentscopeconnection
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19680,7 +19680,7 @@ Returns [`EpicConnection`](#epicconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19733,7 +19733,7 @@ Returns [`GroupMemberConnection`](#groupmemberconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19752,7 +19752,7 @@ Returns [`IssueConnection`](#issueconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19807,7 +19807,7 @@ Returns [`IterationCadenceConnection`](#iterationcadenceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19828,7 +19828,7 @@ Returns [`IterationConnection`](#iterationconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19865,7 +19865,7 @@ Returns [`LabelConnection`](#labelconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19888,7 +19888,7 @@ Returns [`MemberRoleConnection`](#memberroleconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19904,7 +19904,7 @@ Returns [`ComplianceViolationConnection`](#complianceviolationconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19921,7 +19921,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19956,7 +19956,7 @@ Returns [`MilestoneConnection`](#milestoneconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -19993,7 +19993,7 @@ Returns [`CustomerRelationsOrganizationConnection`](#customerrelationsorganizati
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20012,7 +20012,7 @@ Returns [`PackageConnection`](#packageconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20033,7 +20033,7 @@ Returns [`ComplianceStandardsAdherenceConnection`](#compliancestandardsadherence
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20049,7 +20049,7 @@ Returns [`ProjectConnection!`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20075,7 +20075,7 @@ Returns [`ReleaseConnection`](#releaseconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20091,7 +20091,7 @@ Returns [`CiRunnerConnection`](#cirunnerconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20117,7 +20117,7 @@ Returns [`ScanExecutionPolicyConnection`](#scanexecutionpolicyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20134,7 +20134,7 @@ Returns [`ScanResultPolicyConnection`](#scanresultpolicyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20150,7 +20150,7 @@ Returns [`TimelogConnection!`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20190,7 +20190,7 @@ Returns [`VulnerabilityConnection`](#vulnerabilityconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20220,7 +20220,7 @@ Returns [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnec
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20315,7 +20315,7 @@ Returns [`WorkItemTypeConnection`](#workitemtypeconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20335,7 +20335,7 @@ Returns [`WorkItemConnection`](#workitemconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20633,7 +20633,7 @@ Returns [`IncidentManagementOncallShiftConnection`](#incidentmanagementoncallshi
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20762,7 +20762,7 @@ Returns [`ClusterAgentConnection`](#clusteragentconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20780,7 +20780,7 @@ Returns [`ProjectConnection!`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20923,7 +20923,7 @@ Returns [`AlertManagementAlertConnection`](#alertmanagementalertconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20944,7 +20944,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20960,7 +20960,7 @@ Returns [`IssuableResourceLinkConnection`](#issuableresourcelinkconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -20976,7 +20976,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21127,7 +21127,7 @@ Returns [`JiraProjectConnection`](#jiraprojectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21485,7 +21485,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21529,7 +21529,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21545,7 +21545,7 @@ Returns [`PipelineConnection`](#pipelineconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21642,7 +21642,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21678,7 +21678,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21714,7 +21714,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21731,7 +21731,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21779,7 +21779,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21797,7 +21797,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21813,7 +21813,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21836,7 +21836,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21861,7 +21861,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21930,7 +21930,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -21966,7 +21966,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22002,7 +22002,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22019,7 +22019,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22067,7 +22067,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22085,7 +22085,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22101,7 +22101,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22124,7 +22124,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22149,7 +22149,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22281,7 +22281,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22317,7 +22317,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22353,7 +22353,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22370,7 +22370,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22418,7 +22418,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22436,7 +22436,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22452,7 +22452,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22475,7 +22475,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22500,7 +22500,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22605,7 +22605,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22641,7 +22641,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22677,7 +22677,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22694,7 +22694,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22742,7 +22742,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22760,7 +22760,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22776,7 +22776,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22799,7 +22799,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -22824,7 +22824,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23020,7 +23020,7 @@ Returns [`AchievementConnection`](#achievementconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23040,7 +23040,7 @@ Returns [`AddOnUserConnection`](#addonuserconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23069,7 +23069,7 @@ Returns [`ComplianceFrameworkConnection`](#complianceframeworkconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23085,7 +23085,7 @@ Returns [`ProjectConnection!`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23111,7 +23111,7 @@ Returns [`ScanExecutionPolicyConnection`](#scanexecutionpolicyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23128,7 +23128,7 @@ Returns [`ScanResultPolicyConnection`](#scanresultpolicyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23318,7 +23318,7 @@ Returns [`GroupConnection!`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23831,7 +23831,7 @@ Returns [`CiJobConnection`](#cijobconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -23863,7 +23863,7 @@ Returns [`PipelineSecurityReportFindingConnection`](#pipelinesecurityreportfindi
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24249,7 +24249,7 @@ Returns [`AlertManagementAlertConnection`](#alertmanagementalertconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24270,7 +24270,7 @@ Returns [`AlertManagementHttpIntegrationConnection`](#alertmanagementhttpintegra
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24286,7 +24286,7 @@ Returns [`AlertManagementIntegrationConnection`](#alertmanagementintegrationconn
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24338,7 +24338,7 @@ Returns [`BoardConnection`](#boardconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24382,7 +24382,7 @@ Returns [`CiProjectVariableConnection`](#ciprojectvariableconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24413,7 +24413,7 @@ Returns [`ClusterAgentConnection`](#clusteragentconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24447,7 +24447,7 @@ Returns [`ContainerRepositoryConnection`](#containerrepositoryconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24468,7 +24468,7 @@ Returns [`CustomizableDashboardVisualizationConnection`](#customizabledashboardv
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24488,7 +24488,7 @@ Returns [`CustomizableDashboardConnection`](#customizabledashboardconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24518,7 +24518,7 @@ Returns [`DastProfileConnection`](#dastprofileconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24546,7 +24546,7 @@ Returns [`DastSiteValidationConnection`](#dastsitevalidationconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24580,7 +24580,7 @@ Returns [`DependencyConnection`](#dependencyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24625,7 +24625,7 @@ Returns [`EnvironmentConnection`](#environmentconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24660,7 +24660,7 @@ Returns [`NamespaceConnection`](#namespaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24692,7 +24692,7 @@ Returns [`EscalationPolicyTypeConnection`](#escalationpolicytypeconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24721,7 +24721,7 @@ Returns [`IncidentManagementOncallScheduleConnection`](#incidentmanagementoncall
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24750,7 +24750,7 @@ Returns [`TimelineEventTypeConnection`](#timelineeventtypeconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24766,7 +24766,7 @@ Returns [`InheritedCiVariableConnection`](#inheritedcivariableconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24881,7 +24881,7 @@ Returns [`IssueConnection`](#issueconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24936,7 +24936,7 @@ Returns [`IterationCadenceConnection`](#iterationcadenceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24957,7 +24957,7 @@ Returns [`IterationConnection`](#iterationconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -24994,7 +24994,7 @@ Returns [`CiJobConnection`](#cijobconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25023,7 +25023,7 @@ Returns [`LabelConnection`](#labelconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25044,7 +25044,7 @@ Returns [`MemberRoleConnection`](#memberroleconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25072,7 +25072,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25106,7 +25106,7 @@ Returns [`MilestoneConnection`](#milestoneconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25129,7 +25129,7 @@ Returns [`NestedEnvironmentConnection`](#nestedenvironmentconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25152,7 +25152,7 @@ Returns [`NetworkPolicyConnection`](#networkpolicyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25168,7 +25168,7 @@ Returns [`PackageConnection`](#packageconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25216,7 +25216,7 @@ Returns [`PipelineScheduleConnection`](#pipelinescheduleconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25233,7 +25233,7 @@ Returns [`PipelineConnection`](#pipelineconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25272,7 +25272,7 @@ Returns [`MemberInterfaceConnection`](#memberinterfaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25302,7 +25302,7 @@ Returns [`ReleaseConnection`](#releaseconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25338,7 +25338,7 @@ Returns [`RequirementConnection`](#requirementconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25362,7 +25362,7 @@ Returns [`CiRunnerConnection`](#cirunnerconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25387,7 +25387,7 @@ Returns [`ScanExecutionPolicyConnection`](#scanexecutionpolicyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25404,7 +25404,7 @@ Returns [`ScanResultPolicyConnection`](#scanresultpolicyconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25461,7 +25461,7 @@ Returns [`ServiceConnection`](#serviceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25478,7 +25478,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25507,7 +25507,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25534,7 +25534,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25550,7 +25550,7 @@ Returns [`VulnerabilityConnection`](#vulnerabilityconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25580,7 +25580,7 @@ Returns [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnec
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25646,7 +25646,7 @@ Returns [`WorkItemTypeConnection`](#workitemtypeconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -25666,7 +25666,7 @@ Returns [`WorkItemConnection`](#workitemconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -26290,7 +26290,7 @@ Returns [`RepositoryBlobConnection`](#repositoryblobconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -26334,7 +26334,7 @@ Returns [`TreeConnection`](#treeconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -26501,7 +26501,7 @@ Returns [`TestReportConnection`](#testreportconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -26896,7 +26896,7 @@ Returns [`SentryErrorConnection`](#sentryerrorconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -26999,7 +26999,7 @@ Returns [`SnippetBlobConnection`](#snippetblobconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27015,7 +27015,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27660,7 +27660,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27696,7 +27696,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27732,7 +27732,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27749,7 +27749,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27797,7 +27797,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27815,7 +27815,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27831,7 +27831,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27854,7 +27854,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -27879,7 +27879,7 @@ Returns [`WorkspaceConnection`](#workspaceconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -28076,7 +28076,7 @@ Returns [`VulnerabilityIssueLinkConnection!`](#vulnerabilityissuelinkconnection)
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -28092,7 +28092,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -28805,7 +28805,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -28947,7 +28947,7 @@ Returns [`LinkedWorkItemTypeConnection`](#linkedworkitemtypeconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -28986,7 +28986,7 @@ Returns [`DiscussionConnection`](#discussionconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
###### Arguments
@@ -33029,7 +33029,7 @@ Returns [`TodoConnection!`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33191,7 +33191,7 @@ Returns [`NoteConnection!`](#noteconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33372,7 +33372,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33408,7 +33408,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33444,7 +33444,7 @@ Returns [`GroupConnection`](#groupconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33461,7 +33461,7 @@ Returns [`MergeRequestConnection`](#mergerequestconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33509,7 +33509,7 @@ Returns [`SnippetConnection`](#snippetconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33527,7 +33527,7 @@ Returns [`ProjectConnection`](#projectconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33543,7 +33543,7 @@ Returns [`TimelogConnection`](#timelogconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
@@ -33566,7 +33566,7 @@ Returns [`TodoConnection`](#todoconnection).
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
-`before: String`, `after: String`, `first: Int`, `last: Int`.
+`before: String`, `after: String`, `first: Int`, and `last: Int`.
####### Arguments
diff --git a/doc/ci/resource_groups/index.md b/doc/ci/resource_groups/index.md
index 9c0f7f229cd..aca272dddee 100644
--- a/doc/ci/resource_groups/index.md
+++ b/doc/ci/resource_groups/index.md
@@ -277,7 +277,7 @@ To get job information from the GraphQL API:
1. Go to the pipeline details page.
1. Select the **Jobs** tab and find the ID of the stuck job.
-1. Go to [GraphiQL explorer](../../api/graphql/index.md#graphiql).
+1. Go to the [interactive GraphQL explorer](../../api/graphql/index.md#interactive-graphql-explorer).
1. Run the following query:
```graphql
diff --git a/doc/ci/testing/code_quality.md b/doc/ci/testing/code_quality.md
index 795431a61a2..4155666ca24 100644
--- a/doc/ci/testing/code_quality.md
+++ b/doc/ci/testing/code_quality.md
@@ -720,7 +720,7 @@ To gain insight into the errors, you can execute a GraphQL query using the follo
1. Go to the pipeline details page.
1. Append `.json` to the URL.
1. Copy the `iid` of the pipeline.
-1. Go to [GraphiQL explorer](../../api/graphql/index.md#graphiql).
+1. Go to the [interactive GraphQL explorer](../../api/graphql/index.md#interactive-graphql-explorer).
1. Run the following query:
```graphql
diff --git a/doc/development/api_graphql_styleguide.md b/doc/development/api_graphql_styleguide.md
index 4cee0ac57df..f6d39ff954b 100644
--- a/doc/development/api_graphql_styleguide.md
+++ b/doc/development/api_graphql_styleguide.md
@@ -8,6 +8,20 @@ info: Any user with at least the Maintainer role can merge updates to this conte
This document outlines the style guide for the GitLab [GraphQL API](../api/graphql/index.md).
+## Vision
+
+We want the GraphQL API to be the **primary** means of interacting
+programmatically with GitLab. To achieve this, it needs full coverage - anything
+possible in the REST API should also be possible in the GraphQL API.
+
+To help us meet this vision, the frontend should use GraphQL in preference to
+the REST API for new features.
+The GraphQL API is [versionless](https://graphql.org/learn/best-practices/#versioning).
+
+There are no plans to deprecate the REST API. To reduce the technical burden of
+supporting two APIs in parallel, they should share implementations as much as
+possible.
+
## How GitLab implements GraphQL
<!-- vale gitlab.Spelling = NO -->
@@ -78,7 +92,7 @@ a connection.
### Max complexity
-Complexity is explained [on our client-facing API page](../api/graphql/index.md#max-query-complexity).
+Complexity is explained [on our client-facing API page](../api/graphql/index.md#maximum-query-complexity).
Fields default to adding `1` to a query's complexity score, but developers can
[specify a custom complexity](#field-complexity) when defining a field.
@@ -477,7 +491,7 @@ field :tags,
### Field complexity
The GitLab GraphQL API uses a _complexity_ score to limit performing overly complex queries.
-Complexity is described in [our client documentation](../api/graphql/index.md#max-query-complexity) on the topic.
+Complexity is described in [our client documentation](../api/graphql/index.md#maximum-query-complexity) on the topic.
Complexity limits are defined in [`app/graphql/gitlab_schema.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/graphql/gitlab_schema.rb).
@@ -864,8 +878,8 @@ mount_mutation Mutations::Ci::JobArtifact::BulkDestroy, alpha: { milestone: '15.
Alpha GraphQL items is a custom GitLab feature that leverages GraphQL deprecations. An Alpha item
appears as deprecated in the GraphQL schema. Like all deprecated schema items, you can test an
-Alpha field in [GraphiQL](../api/graphql/index.md#graphiql). However, be aware that the GraphiQL
-autocomplete editor doesn't suggest deprecated fields.
+Alpha field in the [interactive GraphQL explorer](../api/graphql/index.md#interactive-graphql-explorer) (GraphiQL).
+However, be aware that the GraphiQL autocomplete editor doesn't suggest deprecated fields.
The item shows as Alpha in our generated GraphQL documentation and its GraphQL schema description.
diff --git a/doc/development/fe_guide/index.md b/doc/development/fe_guide/index.md
index fc42e02dfeb..3c7c000dbe6 100644
--- a/doc/development/fe_guide/index.md
+++ b/doc/development/fe_guide/index.md
@@ -24,7 +24,7 @@ When it comes to CSS, we use a utils-based CSS approach. GitLab has its own CSS
We also use [SCSS](https://sass-lang.com) and plain JavaScript with
modern ECMAScript standards supported through [Babel](https://babeljs.io/) and ES module support through [webpack](https://webpack.js.org/).
-When making API calls, we use [GraphQL](graphql.md) as [the first choice](../../api/graphql/index.md#vision). There are still instances where GitLab REST API is used such as when creating new simple HAML pages or in legacy part of the codebase, but we should always default to GraphQL when possible.
+When making API calls, we use [GraphQL](graphql.md) as [the first choice](../api_graphql_styleguide.md#vision). There are still instances where GitLab REST API is used such as when creating new simple HAML pages or in legacy part of the codebase, but we should always default to GraphQL when possible.
We use [Apollo](https://www.apollographql.com/) as our global state manager and [GraphQL client](graphql.md).
[VueX](vuex.md) is still in use across the codebase, but it is no longer the recommended global state manager.
diff --git a/doc/development/fe_guide/migrating_from_vuex.md b/doc/development/fe_guide/migrating_from_vuex.md
index 347902feafa..45a1ea0b7ee 100644
--- a/doc/development/fe_guide/migrating_from_vuex.md
+++ b/doc/development/fe_guide/migrating_from_vuex.md
@@ -8,7 +8,7 @@ info: Any user with at least the Maintainer role can merge updates to this conte
## Why?
-We have defined [GraphQL as our primary API](../../api/graphql/index.md#vision) for all user-facing features,
+We have defined the [GraphQL API](../../api/graphql/index.md) as [the primary API](../api_graphql_styleguide.md#vision) for all user-facing features,
so we can safely assume that whenever GraphQL is present, so will the Apollo Client.
We [do not want to use Vuex with Apollo](graphql.md#using-with-vuex), so the VueX stores count
will naturally decline over time as we move from the REST API to GraphQL.
diff --git a/doc/security/user_file_uploads.md b/doc/security/user_file_uploads.md
index fe8fb11fe65..e73bdf4ced2 100644
--- a/doc/security/user_file_uploads.md
+++ b/doc/security/user_file_uploads.md
@@ -60,7 +60,7 @@ You cannot select this option for public projects.
You should delete an uploaded file when that file contains sensitive or confidential information. When you have deleted that file, users cannot access the file and the direct URL returns a 404 error.
-Project Owners and Maintainers can use the [interactive GraphiQL explorer](../api/graphql/index.md#graphiql) to access a [GraphQL endpoint](../api/graphql/reference/index.md#mutationuploaddelete) and delete an uploaded file.
+Project Owners and Maintainers can use the [interactive GraphQL explorer](../api/graphql/index.md#interactive-graphql-explorer) to access a [GraphQL endpoint](../api/graphql/reference/index.md#mutationuploaddelete) and delete an uploaded file.
For example:
diff --git a/lib/gitlab/git/diff.rb b/lib/gitlab/git/diff.rb
index 743bac62764..42f8488fec5 100644
--- a/lib/gitlab/git/diff.rb
+++ b/lib/gitlab/git/diff.rb
@@ -10,7 +10,7 @@ module Gitlab
attr_accessor :old_path, :new_path, :a_mode, :b_mode, :diff
# Stats properties
- attr_accessor :new_file, :renamed_file, :deleted_file
+ attr_accessor :new_file, :renamed_file, :deleted_file, :generated
alias_method :new_file?, :new_file
alias_method :deleted_file?, :deleted_file
@@ -20,6 +20,7 @@ module Gitlab
attr_writer :too_large
alias_method :expanded?, :expanded
+ alias_method :generated?, :generated
# The default maximum content size to display a diff patch.
#
@@ -31,7 +32,18 @@ module Gitlab
# persisting limits over that.
MAX_PATCH_BYTES_UPPER_BOUND = 500.kilobytes
- SERIALIZE_KEYS = %i[diff new_path old_path a_mode b_mode new_file renamed_file deleted_file too_large].freeze
+ SERIALIZE_KEYS = %i[
+ diff
+ new_path
+ old_path
+ a_mode
+ b_mode
+ new_file
+ renamed_file
+ deleted_file
+ too_large
+ generated
+ ].freeze
BINARY_NOTICE_PATTERN = %r{Binary files (.*) and (.*) differ}
@@ -79,9 +91,12 @@ module Gitlab
# If false, patch raw data will not be included in the diff after
# `max_files`, `max_lines` or any of the limits in `limits` are
# exceeded
+ # :generated_files ::
+ # If the list of generated files is given, those files will be marked
+ # as generated.
def filter_diff_options(options, default_options = {})
allowed_options = [:ignore_whitespace_change, :max_files, :max_lines,
- :limits, :expanded, :collect_all_paths]
+ :limits, :expanded, :collect_all_paths, :generated_files]
if default_options
actual_defaults = default_options.dup
@@ -144,8 +159,9 @@ module Gitlab
text.start_with?(BINARY_NOTICE_PATTERN)
end
end
- def initialize(raw_diff, expanded: true, replace_invalid_utf8_chars: true)
+ def initialize(raw_diff, expanded: true, replace_invalid_utf8_chars: true, generated: nil)
@expanded = expanded
+ @generated = generated
case raw_diff
when Hash
diff --git a/lib/gitlab/git/diff_collection.rb b/lib/gitlab/git/diff_collection.rb
index c021268a62a..ae2b9d5339c 100644
--- a/lib/gitlab/git/diff_collection.rb
+++ b/lib/gitlab/git/diff_collection.rb
@@ -35,6 +35,7 @@ module Gitlab
def initialize(iterator, options = {})
@iterator = iterator
+ @generated_files = options.fetch(:generated_files, nil)
@limits = self.class.limits(options)
@enforce_limits = !!options.fetch(:limits, true)
@expanded = !!options.fetch(:expanded, true)
@@ -164,7 +165,10 @@ module Gitlab
i = @array.length
@iterator.each do |raw|
- diff = Gitlab::Git::Diff.new(raw, expanded: expand_diff?)
+ options = { expanded: expand_diff? }
+ options[:generated] = @generated_files.include?(raw.from_path) if @generated_files
+
+ diff = Gitlab::Git::Diff.new(raw, **options)
if raw.overflow_marker
@overflow = true
diff --git a/qa/qa/page/project/monitor/alerts/show.rb b/qa/qa/page/project/monitor/alerts/show.rb
index 1f3c52d8988..b1866c6d366 100644
--- a/qa/qa/page/project/monitor/alerts/show.rb
+++ b/qa/qa/page/project/monitor/alerts/show.rb
@@ -7,7 +7,7 @@ module QA
module Alerts
class Show < Page::Base
view 'app/assets/javascripts/vue_shared/alert_details/components/system_notes/system_note.vue' do
- element :alert_system_note_container
+ element 'alert-system-note-container'
end
def go_to_activity_feed_tab
@@ -15,7 +15,7 @@ module QA
end
def has_system_note?(text)
- has_element?(:alert_system_note_container, text: text)
+ has_element?('alert-system-note-container', text: text)
end
end
end
diff --git a/spec/lib/gitlab/database/sharding_key_spec.rb b/spec/lib/gitlab/database/sharding_key_spec.rb
index ca01c7b8d36..c2e6f90f492 100644
--- a/spec/lib/gitlab/database/sharding_key_spec.rb
+++ b/spec/lib/gitlab/database/sharding_key_spec.rb
@@ -12,6 +12,15 @@ RSpec.describe 'new tables missing sharding_key', feature_category: :cell do
]
end
+ # Specific tables can be temporarily exempt from this requirement. You must add an issue link in a comment next to
+ # the table name to remove this once a decision has been made.
+ let(:allowed_to_be_missing_not_null) do
+ [
+ 'labels.project_id', # https://gitlab.com/gitlab-org/gitlab/-/issues/434356
+ 'labels.group_id' # https://gitlab.com/gitlab-org/gitlab/-/issues/434356
+ ]
+ end
+
let(:starting_from_milestone) { 16.6 }
let(:allowed_sharding_key_referenced_tables) { %w[projects namespaces organizations] }
@@ -33,6 +42,26 @@ RSpec.describe 'new tables missing sharding_key', feature_category: :cell do
end
end
+ it 'ensures all sharding_key columns are not nullable or have a not null check constraint',
+ :aggregate_failures do
+ all_tables_to_sharding_key.each do |table_name, sharding_key|
+ sharding_key.each do |column_name, _|
+ not_nullable = not_nullable?(table_name, column_name)
+ has_null_check_constraint = has_null_check_constraint?(table_name, column_name)
+
+ if allowed_to_be_missing_not_null.include?("#{table_name}.#{column_name}")
+ expect(not_nullable || has_null_check_constraint).to eq(false),
+ "You must remove `#{table_name}.#{column_name}` from allowed_to_be_missing_not_null" \
+ "since it now has a valid constraint."
+ else
+ expect(not_nullable || has_null_check_constraint).to eq(true),
+ "Missing a not null constraint for `#{table_name}.#{column_name}` . " \
+ "All sharding keys must be not nullable or have a NOT NULL check constraint"
+ end
+ end
+ end
+ end
+
it 'only allows `allowed_to_be_missing_sharding_key` to include tables that are missing a sharding_key',
:aggregate_failures do
allowed_to_be_missing_sharding_key.each do |exempted_table|
@@ -73,6 +102,42 @@ RSpec.describe 'new tables missing sharding_key', feature_category: :cell do
end
end
+ def not_nullable?(table_name, column_name)
+ sql = <<~SQL
+ SELECT 1
+ FROM information_schema.columns
+ WHERE table_schema = 'public' AND
+ table_name = '#{table_name}' AND
+ column_name = '#{column_name}' AND
+ is_nullable = 'NO'
+ SQL
+
+ result = ApplicationRecord.connection.execute(sql)
+
+ result.count > 0
+ end
+
+ def has_null_check_constraint?(table_name, column_name)
+ # This is a heuristic query to look for all check constraints on the table and see if any of them contain a clause
+ # column IS NOT NULL. This is to match tables that will have multiple sharding keys where either of them can be not
+ # null. Such cases may look like:
+ # (project_id IS NOT NULL) OR (group_id IS NOT NULL)
+ # It's possible that this will sometimes incorrectly find a check constraint that isn't exactly as strict as we want
+ # but it should be pretty unlikely.
+ sql = <<~SQL
+ SELECT 1
+ FROM pg_constraint
+ INNER JOIN pg_class ON pg_constraint.conrelid = pg_class.oid
+ WHERE pg_class.relname = '#{table_name}'
+ AND contype = 'c'
+ AND pg_get_constraintdef(pg_constraint.oid) ILIKE '%#{column_name} IS NOT NULL%'
+ SQL
+
+ result = ApplicationRecord.connection.execute(sql)
+
+ result.count > 0
+ end
+
def column_exists?(table_name, column_name)
sql = <<~SQL
SELECT 1
diff --git a/spec/lib/gitlab/git/diff_collection_spec.rb b/spec/lib/gitlab/git/diff_collection_spec.rb
index 72ddd0759ec..4ab4d047522 100644
--- a/spec/lib/gitlab/git/diff_collection_spec.rb
+++ b/spec/lib/gitlab/git/diff_collection_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::Git::DiffCollection do
+RSpec.describe Gitlab::Git::DiffCollection, feature_category: :source_code_management do
before do
stub_const('MutatingConstantIterator', Class.new)
@@ -531,6 +531,73 @@ RSpec.describe Gitlab::Git::DiffCollection do
end
describe '#each' do
+ context 'with Gitlab::GitalyClient::DiffStitcher' do
+ let(:collection) do
+ described_class.new(
+ iterator,
+ max_files: max_files,
+ max_lines: max_lines,
+ limits: limits,
+ expanded: expanded,
+ generated_files: generated_files
+ )
+ end
+
+ let(:iterator) { Gitlab::GitalyClient::DiffStitcher.new(diff_params) }
+ let(:diff_params) { [diff_1, diff_2] }
+ let(:diff_1) do
+ OpenStruct.new(
+ to_path: ".gitmodules",
+ from_path: ".gitmodules",
+ old_mode: 0100644,
+ new_mode: 0100644,
+ from_id: '357406f3075a57708d0163752905cc1576fceacc',
+ to_id: '8e5177d718c561d36efde08bad36b43687ee6bf0',
+ patch: 'a' * 10,
+ raw_patch_data: 'a' * 10,
+ end_of_patch: true
+ )
+ end
+
+ let(:diff_2) do
+ OpenStruct.new(
+ to_path: ".gitignore",
+ from_path: ".gitignore",
+ old_mode: 0100644,
+ new_mode: 0100644,
+ from_id: '357406f3075a57708d0163752905cc1576fceacc',
+ to_id: '8e5177d718c561d36efde08bad36b43687ee6bf0',
+ patch: 'a' * 20,
+ raw_patch_data: 'a' * 20,
+ end_of_patch: true
+ )
+ end
+
+ context 'with generated_files' do
+ let(:generated_files) { [diff_1.from_path] }
+
+ it 'sets generated files as generated' do
+ collection.each do |d|
+ if d.old_path == diff_1.from_path
+ expect(d.generated).to be true
+ else
+ expect(d.generated).to be false
+ end
+ end
+ end
+ end
+
+ context 'without generated_files' do
+ let(:generated_files) { nil }
+
+ it 'set generated as nil' do
+ collection.each do |d|
+ expect(d.generated).to be_nil
+ end
+ end
+ end
+ end
+
context 'when diff are too large' do
let(:collection) do
described_class.new([{ diff: 'a' * 204800 }])
diff --git a/spec/lib/gitlab/git/diff_spec.rb b/spec/lib/gitlab/git/diff_spec.rb
index 6b3630d7a1f..2fca81299e0 100644
--- a/spec/lib/gitlab/git/diff_spec.rb
+++ b/spec/lib/gitlab/git/diff_spec.rb
@@ -50,7 +50,7 @@ EOT
let(:diff) { described_class.new(@raw_diff_hash) }
it 'initializes the diff' do
- expect(diff.to_hash).to eq(@raw_diff_hash)
+ expect(diff.to_hash).to eq(@raw_diff_hash.merge(generated: nil))
end
it 'does not prune the diff' do
@@ -87,7 +87,7 @@ EOT
let(:raw_patch) { @raw_diff_hash[:diff] }
it 'initializes the diff' do
- expect(diff.to_hash).to eq(@raw_diff_hash)
+ expect(diff.to_hash).to eq(@raw_diff_hash.merge(generated: nil))
end
it 'does not prune the diff' do
@@ -173,7 +173,7 @@ EOT
let(:diff) { described_class.new(commit_delta) }
it 'initializes the diff' do
- expect(diff.to_hash).to eq(@raw_diff_hash.merge(diff: ''))
+ expect(diff.to_hash).to eq(@raw_diff_hash.merge(diff: '', generated: nil))
end
it 'is not too large' do
diff --git a/spec/models/merge_request_diff_spec.rb b/spec/models/merge_request_diff_spec.rb
index 89e9ea0003a..2e68cd9e74a 100644
--- a/spec/models/merge_request_diff_spec.rb
+++ b/spec/models/merge_request_diff_spec.rb
@@ -390,9 +390,10 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
shared_examples_for 'merge request diffs' do
let(:merge_request) { create(:merge_request) }
- let!(:diff) { merge_request.merge_request_diff.reload }
context 'when it was not cleaned by the system' do
+ let!(:diff) { merge_request.merge_request_diff.reload }
+
it 'returns persisted diffs' do
expect(diff).to receive(:load_diffs).and_call_original
@@ -401,6 +402,8 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
context 'when diff was cleaned by the system' do
+ let!(:diff) { merge_request.merge_request_diff.reload }
+
before do
diff.clean!
end
@@ -906,6 +909,57 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
expect(diff_file.diff).to include(content)
end
end
+
+ context 'handling generated files' do
+ let(:project) { create(:project, :repository) }
+ let(:target_branch) { project.default_branch }
+ let(:source_branch) { 'test-generated-diff-file' }
+ let(:generated_file_name) { 'generated.txt' }
+ let(:regular_file_name) { 'regular.rb' }
+ let(:merge_request) do
+ create(
+ :merge_request,
+ target_project: project,
+ source_project: project,
+ source_branch: source_branch,
+ target_branch: target_branch
+ )
+ end
+
+ let(:diff_files) do
+ merge_request.merge_request_diff.merge_request_diff_files
+ end
+
+ before do
+ project.repository.update_file(
+ project.creator,
+ '.gitattributes',
+ '*.txt gitlab-generated',
+ message: 'Update',
+ branch_name: target_branch)
+
+ create_file_in_repo(project, target_branch, source_branch, generated_file_name, "generated text\n")
+ create_file_in_repo(project, source_branch, source_branch, regular_file_name, "something else\n")
+ end
+
+ context 'with collapse_generated_diff_files feature flag' do
+ it 'sets generated field correctly' do
+ expect(diff_files.find_by(new_path: generated_file_name)).to be_generated
+ expect(diff_files.find_by(new_path: regular_file_name)).not_to be_generated
+ end
+ end
+
+ context 'without collapse_generated_diff_files feature flag' do
+ before do
+ stub_feature_flags(collapse_generated_diff_files: false)
+ end
+
+ it 'sets generated field correctly' do
+ expect(diff_files.find_by(new_path: generated_file_name)).not_to be_generated
+ expect(diff_files.find_by(new_path: regular_file_name)).not_to be_generated
+ end
+ end
+ end
end
end
@@ -986,6 +1040,7 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
include_examples 'merge request diffs'
it 'stores up-to-date diffs in the database' do
+ diff = merge_request.merge_request_diff.reload
expect(diff).not_to be_stored_externally
end
@@ -1002,7 +1057,8 @@ RSpec.describe MergeRequestDiff, feature_category: :code_review_workflow do
end
it 'stores diffs for old MR versions in external storage' do
- old_diff = diff
+ old_diff = merge_request.merge_request_diff.reload
+
merge_request.create_merge_request_diff
old_diff.migrate_files_to_external_storage!
diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml
index 569dac7ff5b..ce602782037 100644
--- a/spec/support/rspec_order_todo.yml
+++ b/spec/support/rspec_order_todo.yml
@@ -1338,7 +1338,6 @@
- './ee/spec/lib/gitlab/geo/oauth/logout_token_spec.rb'
- './ee/spec/lib/gitlab/geo/oauth/session_spec.rb'
- './ee/spec/lib/gitlab/geo/registry_batcher_spec.rb'
-- './ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- './ee/spec/lib/gitlab/geo/replication/blob_retriever_spec.rb'
- './ee/spec/lib/gitlab/geo/replicator_spec.rb'
- './ee/spec/lib/gitlab/geo/signed_data_spec.rb'
diff --git a/tooling/graphql/docs/helper.rb b/tooling/graphql/docs/helper.rb
index d90082952fa..d027c5b35db 100644
--- a/tooling/graphql/docs/helper.rb
+++ b/tooling/graphql/docs/helper.rb
@@ -42,7 +42,7 @@ module Tooling
CONNECTION_NOTE = <<~MD
This field returns a [connection](#connections). It accepts the
four standard [pagination arguments](#connection-pagination-arguments):
- `before: String`, `after: String`, `first: Int`, `last: Int`.
+ `before: String`, `after: String`, `first: Int`, and `last: Int`.
MD
# Helper with functions to be used by HAML templates
diff --git a/tooling/graphql/docs/templates/default.md.haml b/tooling/graphql/docs/templates/default.md.haml
index 57c3ca7a476..1502afde181 100644
--- a/tooling/graphql/docs/templates/default.md.haml
+++ b/tooling/graphql/docs/templates/default.md.haml
@@ -7,7 +7,7 @@
This documentation is self-generated based on GitLab current GraphQL schema.
- The API can be explored interactively using the [GraphiQL IDE](../index.md#graphiql).
+ The API can be explored using the [interactive GraphQL explorer](../index.md#interactive-graphql-explorer).
Each table below documents a GraphQL type. Types match loosely to models, but not all
fields and methods on a model are available via GraphQL.