Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-09-20 21:12:22 +00:00
parent adb8e997e5
commit e3fd91340f
40 changed files with 147 additions and 103 deletions

View File

@ -51,8 +51,10 @@ db:migrate:multi-version-upgrade:
- .single-db
- .db-job-base
- .rails:rules:db:migrate:multi-version-upgrade
variables:
UPGRADE_STOP_DUMP_URL: "https://gitlab.com/gitlab-org/quality/pg-dump-generator/-/raw/main/pg_dumps/ee/latest_upgrade_stop.gz"
script:
- curl -o latest_upgrade_stop.gz https://gitlab.com/gitlab-org/quality/pg-dump-generator/-/raw/main/pg_dumps/ee/latest_upgrade_stop.gz
- curl -o latest_upgrade_stop.gz $UPGRADE_STOP_DUMP_URL
- gunzip -c latest_upgrade_stop.gz > gitlabhq_production
- bundle exec rake db:drop db:create
- apt-get update -qq && apt-get install -y -qq postgresql-client

View File

@ -2002,6 +2002,8 @@
rules:
- if: '$DISABLE_DB_MULTI_VERSION_UPGRADE =~ /true|yes|1/i'
when: never
- <<: *if-merge-request-targeting-stable-branch
when: manual
- !reference [".rails:rules:ee-and-foss-migration", rules]
.rails:rules:db-backup:

View File

@ -269,16 +269,16 @@
{"name":"google-cloud-storage","version":"1.45.0","platform":"ruby","checksum":"f280abda4e608f9e91433f9dd907be4a45cdbf251ffeb275d713548e515c6300"},
{"name":"google-cloud-storage_transfer","version":"1.2.0","platform":"ruby","checksum":"132901f50889e02a0d378e6117c6408cbfc4fdbd15c9d31fabec4f4189ef1658"},
{"name":"google-cloud-storage_transfer-v1","version":"0.8.0","platform":"ruby","checksum":"9dbef80275db556e046bb24139ca6559affe641d1e38b2537b8caaf2f8896176"},
{"name":"google-protobuf","version":"3.25.4","platform":"aarch64-linux","checksum":"d155538358d03af4bcac908811d2c8b287573005f0549d8cf55354ad0c0928ff"},
{"name":"google-protobuf","version":"3.25.4","platform":"arm64-darwin","checksum":"6d39a99a7910fc6b03479c298f38be9497938f78c0f08c89d7542bc8205be8c7"},
{"name":"google-protobuf","version":"3.25.4","platform":"java","checksum":"475bd51efa276fa3668abcd3978d8937bae5894ffe9d963c0a9e5cf151a1ee35"},
{"name":"google-protobuf","version":"3.25.4","platform":"ruby","checksum":"a1c594ca9d99c894e558f984d70731a8935ec639e75865f0181cab126a0aef0e"},
{"name":"google-protobuf","version":"3.25.4","platform":"x64-mingw-ucrt","checksum":"4c2e26a244f639aa658a33d74ab1a3ff74210756c14588b0bbf0d6b93ff388aa"},
{"name":"google-protobuf","version":"3.25.4","platform":"x64-mingw32","checksum":"343134507de2602079837727cc1121af39bce3e382e91f3aa14a259ae78be7d6"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86-linux","checksum":"7721d1b40f3edd951484b448f4b404bdc954159026c93ba5ee37a3a0e386a92c"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86-mingw32","checksum":"fb00901bb3803ed361eb8e667af4d1ab2136c43ae870cc8b3a2ded08ceee2072"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86_64-darwin","checksum":"bf53084c00d78a8a960af5a3fc5175c59f1f4708ddd00398781a2c3a3370c977"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86_64-linux","checksum":"9e8e66fb5a00cf90f88f37b07e7da10ca9e176e28a3314fc80c4e7fdab120aeb"},
{"name":"google-protobuf","version":"3.25.5","platform":"aarch64-linux","checksum":"60d96b033a4eb0d0f107d8390208ee611abcfdf6cb876e7802c9c112fcf8f07e"},
{"name":"google-protobuf","version":"3.25.5","platform":"arm64-darwin","checksum":"02be442a2fe498ce7eaba48d332c8f19b516126b1facd0710079f9da0bc781d2"},
{"name":"google-protobuf","version":"3.25.5","platform":"java","checksum":"724cdc8ece1a96b86af0acc90f016402739f1a2d1ba889c05bd53390b58231e7"},
{"name":"google-protobuf","version":"3.25.5","platform":"ruby","checksum":"4333fe2e9009131d8bec9b4ffcfae7b5a0a2d1bd18061e8aaaf0fd3d5c835639"},
{"name":"google-protobuf","version":"3.25.5","platform":"x64-mingw-ucrt","checksum":"4f211d1e1f75f518db3aca478998321aa3703b3da829291a6c3f08adece5348d"},
{"name":"google-protobuf","version":"3.25.5","platform":"x64-mingw32","checksum":"15aff5a3316ea3d1a9cc4958e562af3ac0119bec3d5742a8d9eb230939cb6f70"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86-linux","checksum":"7bc46ce7838064c2d2eb8ea7afc9a9ec71f2c659f76941af2e383246443fd2fd"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86-mingw32","checksum":"a6a648bfddfb0dae66d849a42eaeb8cfed8bf95eebb205ca93f038bb6e1531da"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86_64-darwin","checksum":"5792cb1c742ce54950e83c454ce6c9f4f73b05017643a88a67dda2556d96f429"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86_64-linux","checksum":"d5174f864440e724d2cc84ef183cd19625086db45351c9e81eeea48008db1c3d"},
{"name":"googleapis-common-protos","version":"1.4.0","platform":"ruby","checksum":"da2380fb5ab1563580816c74e8d684ac17512c3654c829a3ee84f6d6139de382"},
{"name":"googleapis-common-protos-types","version":"1.5.0","platform":"ruby","checksum":"5769cf7376abc86ef7f5897a4aaca1d5c5a3c49ddabeddd2c251fcf8155f858b"},
{"name":"googleauth","version":"1.8.1","platform":"ruby","checksum":"814adadaaa1221dce72a67131e3ecbd6d23491a161ec84fb15fd353b87d8c9e7"},

View File

@ -862,7 +862,7 @@ GEM
google-cloud-storage_transfer-v1 (0.8.0)
gapic-common (>= 0.20.0, < 2.a)
google-cloud-errors (~> 1.0)
google-protobuf (3.25.4)
google-protobuf (3.25.5)
googleapis-common-protos (1.4.0)
google-protobuf (~> 3.14)
googleapis-common-protos-types (~> 1.2)

View File

@ -270,16 +270,16 @@
{"name":"google-cloud-storage","version":"1.45.0","platform":"ruby","checksum":"f280abda4e608f9e91433f9dd907be4a45cdbf251ffeb275d713548e515c6300"},
{"name":"google-cloud-storage_transfer","version":"1.2.0","platform":"ruby","checksum":"132901f50889e02a0d378e6117c6408cbfc4fdbd15c9d31fabec4f4189ef1658"},
{"name":"google-cloud-storage_transfer-v1","version":"0.8.0","platform":"ruby","checksum":"9dbef80275db556e046bb24139ca6559affe641d1e38b2537b8caaf2f8896176"},
{"name":"google-protobuf","version":"3.25.4","platform":"aarch64-linux","checksum":"d155538358d03af4bcac908811d2c8b287573005f0549d8cf55354ad0c0928ff"},
{"name":"google-protobuf","version":"3.25.4","platform":"arm64-darwin","checksum":"6d39a99a7910fc6b03479c298f38be9497938f78c0f08c89d7542bc8205be8c7"},
{"name":"google-protobuf","version":"3.25.4","platform":"java","checksum":"475bd51efa276fa3668abcd3978d8937bae5894ffe9d963c0a9e5cf151a1ee35"},
{"name":"google-protobuf","version":"3.25.4","platform":"ruby","checksum":"a1c594ca9d99c894e558f984d70731a8935ec639e75865f0181cab126a0aef0e"},
{"name":"google-protobuf","version":"3.25.4","platform":"x64-mingw-ucrt","checksum":"4c2e26a244f639aa658a33d74ab1a3ff74210756c14588b0bbf0d6b93ff388aa"},
{"name":"google-protobuf","version":"3.25.4","platform":"x64-mingw32","checksum":"343134507de2602079837727cc1121af39bce3e382e91f3aa14a259ae78be7d6"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86-linux","checksum":"7721d1b40f3edd951484b448f4b404bdc954159026c93ba5ee37a3a0e386a92c"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86-mingw32","checksum":"fb00901bb3803ed361eb8e667af4d1ab2136c43ae870cc8b3a2ded08ceee2072"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86_64-darwin","checksum":"bf53084c00d78a8a960af5a3fc5175c59f1f4708ddd00398781a2c3a3370c977"},
{"name":"google-protobuf","version":"3.25.4","platform":"x86_64-linux","checksum":"9e8e66fb5a00cf90f88f37b07e7da10ca9e176e28a3314fc80c4e7fdab120aeb"},
{"name":"google-protobuf","version":"3.25.5","platform":"aarch64-linux","checksum":"60d96b033a4eb0d0f107d8390208ee611abcfdf6cb876e7802c9c112fcf8f07e"},
{"name":"google-protobuf","version":"3.25.5","platform":"arm64-darwin","checksum":"02be442a2fe498ce7eaba48d332c8f19b516126b1facd0710079f9da0bc781d2"},
{"name":"google-protobuf","version":"3.25.5","platform":"java","checksum":"724cdc8ece1a96b86af0acc90f016402739f1a2d1ba889c05bd53390b58231e7"},
{"name":"google-protobuf","version":"3.25.5","platform":"ruby","checksum":"4333fe2e9009131d8bec9b4ffcfae7b5a0a2d1bd18061e8aaaf0fd3d5c835639"},
{"name":"google-protobuf","version":"3.25.5","platform":"x64-mingw-ucrt","checksum":"4f211d1e1f75f518db3aca478998321aa3703b3da829291a6c3f08adece5348d"},
{"name":"google-protobuf","version":"3.25.5","platform":"x64-mingw32","checksum":"15aff5a3316ea3d1a9cc4958e562af3ac0119bec3d5742a8d9eb230939cb6f70"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86-linux","checksum":"7bc46ce7838064c2d2eb8ea7afc9a9ec71f2c659f76941af2e383246443fd2fd"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86-mingw32","checksum":"a6a648bfddfb0dae66d849a42eaeb8cfed8bf95eebb205ca93f038bb6e1531da"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86_64-darwin","checksum":"5792cb1c742ce54950e83c454ce6c9f4f73b05017643a88a67dda2556d96f429"},
{"name":"google-protobuf","version":"3.25.5","platform":"x86_64-linux","checksum":"d5174f864440e724d2cc84ef183cd19625086db45351c9e81eeea48008db1c3d"},
{"name":"googleapis-common-protos","version":"1.4.0","platform":"ruby","checksum":"da2380fb5ab1563580816c74e8d684ac17512c3654c829a3ee84f6d6139de382"},
{"name":"googleapis-common-protos-types","version":"1.5.0","platform":"ruby","checksum":"5769cf7376abc86ef7f5897a4aaca1d5c5a3c49ddabeddd2c251fcf8155f858b"},
{"name":"googleauth","version":"1.8.1","platform":"ruby","checksum":"814adadaaa1221dce72a67131e3ecbd6d23491a161ec84fb15fd353b87d8c9e7"},

View File

@ -872,7 +872,7 @@ GEM
google-cloud-storage_transfer-v1 (0.8.0)
gapic-common (>= 0.20.0, < 2.a)
google-cloud-errors (~> 1.0)
google-protobuf (3.25.4)
google-protobuf (3.25.5)
googleapis-common-protos (1.4.0)
google-protobuf (~> 3.14)
googleapis-common-protos-types (~> 1.2)

View File

@ -149,10 +149,8 @@ export default {
>
<div class="gl-flex gl-flex-col gl-self-center">
<h2
:class="[
'gl-m-0 gl-inline-flex gl-items-start gl-gap-3 gl-text-base gl-font-bold gl-leading-normal',
titleClass,
]"
class="gl-m-0 gl-inline-flex gl-items-center gl-gap-3 gl-text-base gl-font-bold gl-leading-normal"
:class="titleClass"
data-testid="crud-title"
>
<gl-link
@ -166,7 +164,7 @@ export default {
<span
v-if="displayedCount || $scopedSlots.count"
class="gl-inline-flex gl-items-center gl-gap-2 gl-text-sm gl-text-subtle"
class="gl-inline-flex gl-items-center gl-gap-2 gl-self-start gl-text-sm gl-text-subtle"
data-testid="crud-count"
>
<template v-if="displayedCount">

View File

@ -49,11 +49,11 @@ html {
}
}
.alert-wrapper {
&:not(:empty) {
@apply gl-mt-3;
}
.alert-wrapper-top-space:not(:empty) {
@apply gl-mt-3;
}
.alert-wrapper {
.alert-link-group {
float: right;
}

View File

@ -22,10 +22,8 @@ module Packages
def group_packages
if Feature.enabled?(:maven_remove_permissions_check_from_finder, @project_or_group)
packages_for(@current_user, within_group: @project_or_group)
elsif ::Feature.enabled?(:allow_anyone_to_pull_public_maven_packages_on_group_level, @project_or_group)
packages_visible_to_user_including_public_registries(@current_user, within_group: @project_or_group)
else
super
packages_visible_to_user_including_public_registries(@current_user, within_group: @project_or_group)
end
end
end

View File

@ -103,7 +103,7 @@ module Types
field :merge_after, ::Types::TimeType,
null: true,
description: 'Date after which the merge request can be merged.',
alpha: { milestone: '17.4' }
alpha: { milestone: '17.5' }
field :detailed_merge_status, ::Types::MergeRequests::DetailedMergeStatusEnum, null: true,
calls_gitaly: true,

View File

@ -20,7 +20,7 @@
= yield :group_invite_members_banner
-# Alerts
.alert-wrapper.gl-flex.gl-flex-col.gl-gap-3.container-fluid{ class: alert_class }
.alert-wrapper.alert-wrapper-top-space.gl-flex.gl-flex-col.gl-gap-3.container-fluid{ class: alert_class }
= dispensable_render 'shared/outdated_browser'
= dispensable_render_if_exists "layouts/header/licensed_user_count_threshold"
= dispensable_render_if_exists "layouts/header/token_expiry_notification"

View File

@ -1,9 +0,0 @@
---
name: allow_anyone_to_pull_public_maven_packages_on_group_level
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/468059
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164380
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/481768
milestone: '17.4'
group: group::package registry
type: gitlab_com_derisk
default_enabled: false

View File

@ -6,7 +6,7 @@ feature_categories:
- code_review_workflow
description: Stores timestamps for scheduled merges
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165092
milestone: '17.4'
milestone: '17.5'
gitlab_schema: gitlab_main_cell
sharding_key:
project_id: projects

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
class CreateMergeRequestMergeSchedules < Gitlab::Database::Migration[2.2]
milestone '17.4'
milestone '17.5'
def change
create_table :merge_request_merge_schedules do |t| # rubocop:disable Migration/EnsureFactoryForTable -- factory exists in spec/factories/merge_request_merge_schedule.rb

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
class CreateMergeRequestMergeSchedulesShardingKeyFk < Gitlab::Database::Migration[2.2]
milestone '17.4'
milestone '17.5'
disable_ddl_transaction!

View File

@ -0,0 +1,27 @@
# frozen_string_literal: true
class ReplaceFkOnApprovalMergeRequestRulesApprovalPolicyRuleId < Gitlab::Database::Migration[2.2]
disable_ddl_transaction!
milestone '17.5'
NEW_CONSTRAINT_NAME = 'fk_approval_merge_request_rules_on_approval_policy_rule_id'
def up
add_concurrent_foreign_key(
:approval_merge_request_rules,
:approval_policy_rules,
column: :approval_policy_rule_id,
on_delete: :nullify,
validate: false,
name: NEW_CONSTRAINT_NAME)
end
def down
with_lock_retries do
remove_foreign_key_if_exists(:approval_merge_request_rules,
column: :approval_policy_rule_id,
on_delete: :nullify,
name: NEW_CONSTRAINT_NAME)
end
end
end

View File

@ -0,0 +1,16 @@
# frozen_string_literal: true
class ValidateFkOnApprovalMergeRequestRulesApprovalPolicyRuleId < Gitlab::Database::Migration[2.2]
milestone '17.5'
NEW_CONSTRAINT_NAME = 'fk_approval_merge_request_rules_on_approval_policy_rule_id'
# foreign key added in db/migrate/20240918130318_replace_fk_on_approval_merge_request_rules_approval_policy_rule_id.rb
def up
validate_foreign_key(:approval_merge_request_rules, :approval_policy_rule_id, name: NEW_CONSTRAINT_NAME)
end
def down
# no-op
end
end

View File

@ -0,0 +1,29 @@
# frozen_string_literal: true
class RemoveOldFkOnApprovalMergeRequestRulesApprovalPolicyRuleId < Gitlab::Database::Migration[2.2]
disable_ddl_transaction!
milestone '17.5'
OLD_CONSTRAINT_NAME = 'fk_73fec3d7e5'
# new foreign key added in
# db/migrate/20240918130318_replace_fk_on_approval_merge_request_rules_approval_policy_rule_id.rb
# and validated in db/migrate/20240918130409_validate_fk_on_approval_merge_request_rules_approval_policy_rule_id.rb
def up
remove_foreign_key_if_exists(
:approval_merge_request_rules,
column: :approval_policy_rule_id,
on_delete: :cascade,
name: OLD_CONSTRAINT_NAME)
end
def down
add_concurrent_foreign_key(
:approval_merge_request_rules,
:approval_policy_rules,
column: :approval_policy_rule_id,
on_delete: :cascade,
validate: true,
name: OLD_CONSTRAINT_NAME)
end
end

View File

@ -0,0 +1 @@
f34ae6373ca2954ee3f56b939ed3df85542dd4b132560cb48ac65604ea11eb5b

View File

@ -0,0 +1 @@
1447b359f2cd606a0066ea3e5cfb94b192ddea6b0f514aeff6b963245503c11b

View File

@ -0,0 +1 @@
8cfa7f47ebf121fc3e6cb326c79368021fd9f70604fa4ff20b2b9e0f51dc7d04

View File

@ -34043,9 +34043,6 @@ ALTER TABLE ONLY subscription_user_add_on_assignments
ALTER TABLE ONLY packages_conan_metadata
ADD CONSTRAINT fk_7302a29cd9 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
ALTER TABLE ONLY approval_merge_request_rules
ADD CONSTRAINT fk_73fec3d7e5 FOREIGN KEY (approval_policy_rule_id) REFERENCES approval_policy_rules(id) ON DELETE CASCADE;
ALTER TABLE ONLY index_statuses
ADD CONSTRAINT fk_74b2492545 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
@ -34394,6 +34391,9 @@ ALTER TABLE ONLY dast_profile_schedules
ALTER TABLE ONLY analytics_cycle_analytics_group_stages
ADD CONSTRAINT fk_analytics_cycle_analytics_group_stages_group_value_stream_id FOREIGN KEY (group_value_stream_id) REFERENCES analytics_cycle_analytics_group_value_streams(id) ON DELETE CASCADE;
ALTER TABLE ONLY approval_merge_request_rules
ADD CONSTRAINT fk_approval_merge_request_rules_on_approval_policy_rule_id FOREIGN KEY (approval_policy_rule_id) REFERENCES approval_policy_rules(id) ON DELETE SET NULL;
ALTER TABLE ONLY approval_merge_request_rules
ADD CONSTRAINT fk_approval_merge_request_rules_on_scan_result_policy_id FOREIGN KEY (scan_result_policy_id) REFERENCES scan_result_policies(id) ON DELETE SET NULL;

View File

@ -30,10 +30,10 @@ have a high degree of confidence in being able to perform them accurately.
## Not all data is automatically replicated
If you are using any GitLab features that Geo [doesn't support](../replication/datatypes.md#limitations-on-replicationverification),
If you are using any GitLab features that Geo doesn't support,
you must make separate provisions to ensure that the **secondary** site has an
up-to-date copy of any data associated with that feature. This may extend the
required scheduled maintenance period significantly.
required scheduled maintenance period significantly. A list of features supported by Geo can be found in the [replicated data types table](../replication/datatypes.md#replicated-data-types).
A common strategy for keeping this period as short as possible for data stored
in files is to use `rsync` to transfer the data. An initial `rsync` can be

View File

@ -102,7 +102,7 @@ follow these steps to avoid unnecessary data loss:
[what is excluded](../planned_failover.md#not-all-data-is-automatically-replicated).
1. If you are manually replicating any
[data not managed by Geo](../../replication/datatypes.md#limitations-on-replicationverification),
[data not managed by Geo](../../replication/datatypes.md#replicated-data-types),
trigger the final replication process now.
1. On the **primary** site:
1. On the left sidebar, at the bottom, select **Admin**.

View File

@ -131,7 +131,7 @@ follow these steps to avoid unnecessary data loss:
[what is excluded](../planned_failover.md#not-all-data-is-automatically-replicated).
1. If you are manually replicating any
[data not managed by Geo](../../replication/datatypes.md#limitations-on-replicationverification),
[data not managed by Geo](../../replication/datatypes.md#replicated-data-types),
trigger the final replication process now.
1. On the **primary** site:
1. On the left sidebar, at the bottom, select **Admin**.

View File

@ -230,9 +230,10 @@ This list of limitations only reflects the latest version of GitLab. If you are
- Git clone and fetch requests with option `--depth` over SSH against a secondary site does not work and hangs indefinitely if the secondary site is not up to date at the time the request is initiated. This is due to problems related to translating Git SSH to Git https during proxying. For more information, see [issue 391980](https://gitlab.com/gitlab-org/gitlab/-/issues/391980). A new workflow that does not involve the aforementioned translation step is now available for Linux-packaged GitLab Geo secondary sites which can be enabled with a feature flag. For more details, see [comment in issue 454707](https://gitlab.com/gitlab-org/gitlab/-/issues/454707#note_2102067451). The fix for Cloud Native GitLab Geo secondary sites is tracked in [issue 5641](https://gitlab.com/gitlab-org/charts/gitlab/-/issues/5641).
- Some customers have reported that `git fetch` over SSH when the secondary site is out of date hangs and/or times out and fails. `git clone` requests over SSH are not impacted. For more information, see [issue 454707](https://gitlab.com/gitlab-org/gitlab/-/issues/454707). A fix available for Linux-packaged GitLab Geo secondary sites which can be enabled with a feature flag. For more details, see [comment in issue 454707](https://gitlab.com/gitlab-org/gitlab/-/issues/454707#note_2102067451). The fix for Cloud Native GitLab Geo secondary sites is tracked in [issue 5641](https://gitlab.com/gitlab-org/charts/gitlab/-/issues/5641).
### Limitations on replication/verification
### Replicated data types
There is a complete list of all GitLab [data types](replication/datatypes.md) and [existing support for replication and verification](replication/datatypes.md#limitations-on-replicationverification).
There is a complete list of all GitLab [data types](replication/datatypes.md) and
[replicated data types](replication/datatypes.md#replicated-data-types).
## Setup instructions

View File

@ -147,15 +147,7 @@ Elasticsearch is an optional database for advanced search. It can improve search
in both source-code level, and user generated content in issues, merge requests, and discussions.
Elasticsearch is not supported in Geo.
## Limitations on replication/verification
The following table lists the GitLab features along with their replication
and verification status on a **secondary** site.
You can keep track of the progress to implement the missing items in
these epics/issues:
- [Geo: Improve the self-service Geo replication framework](https://gitlab.com/groups/gitlab-org/-/epics/3761)
## Replicated data types
### Replicated data types behind a feature flag

View File

@ -553,6 +553,17 @@ If Git fetch fails at exactly three hours while syncing a Git repository:
sudo gitlab-ctl reconfigure
```
### Error `Failed to open TCP connection to localhost:5000` on secondary when configuring registry replication
You may face the following error when configuring container registry replication on the secondary site:
```plaintext
Failed to open TCP connection to localhost:5000 (Connection refused - connect(2) for \"localhost\" port 5000)"
```
It happens if the container registry is not enabled on the secondary site. To fix it, check that the container registry
is [enabled on the secondary site](../../../packages/container_registry.md#enable-the-container-registry). Note that if [Lets Encrypt integration is disabled](https://docs.gitlab.com/omnibus/settings/ssl/#configure-https-manually), container registry is disabled as well, and you must [configure it manually](../../../packages/container_registry.md#configure-container-registry-under-its-own-domain).
## Investigate causes of database replication lag
If the output of `sudo gitlab-rake geo:status` shows that `Database replication lag` remains significantly high over time, the primary node in database replication can be checked to determine the status of lag for

View File

@ -203,7 +203,7 @@ While GitLab Geo helps remote teams work more efficiently by using a local GitLa
Learn more about using [Geo as a disaster recovery solution](../administration/geo/disaster_recovery/index.md).
Geo replicates your database, your Git repositories, and a few other assets.
Learn more about [replication limitations](../administration/geo/replication/datatypes.md#limitations-on-replicationverification).
Learn more about the [data types Geo replicates](../administration/geo/replication/datatypes.md#replicated-data-types).
## Support for GitLab self-managed

View File

@ -24,7 +24,7 @@ If your availability needs to span multiple zones or multiple locations, read ab
| Capability | Availability | Recoverability | Data Resiliency | Performance | Risks/Trade-offs|
|------------|--------------|----------------|-----------------|-------------|-----------------|
|Geo| Depends on the architecture of the Geo site. It is possible to deploy secondaries in single and multiple node configurations. | Eventually consistent. Recovery point depends on replication lag, which depends on a number of factors such as network speeds. Geo supports failover from a primary to secondary site using manual commands that are scriptable. | Geo replicates 100% of planned data types and verifies 50%. See [limitations table](../geo/replication/datatypes.md#limitations-on-replicationverification) for more detail. | Improves read/clone times for users of a secondary. | Geo is not intended to replace other backup/restore solutions. Because of replication lag and the possibility of replicating bad data from a primary, customers should also take regular backups of their primary site and test the restore process. |
|Geo| Depends on the architecture of the Geo site. It is possible to deploy secondaries in single and multiple node configurations. | Eventually consistent. Recovery point depends on replication lag, which depends on a number of factors such as network speeds. Geo supports failover from a primary to secondary site using manual commands that are scriptable. | Geo replicates and verifies 100% of planned data types. See the [replicated data types table](../geo/replication/datatypes.md#replicated-data-types) for more detail. | Improves read/clone times for users of a secondary. | Geo is not intended to replace other backup/restore solutions. Because of replication lag and the possibility of replicating bad data from a primary, customers should also take regular backups of their primary site and test the restore process. |
## Scenarios for failure modes and available mitigation paths

View File

@ -271,7 +271,7 @@ Gitaly Cluster and [Geo](../geo/index.md) both provide redundancy. However the r
not aware when Gitaly Cluster is used.
- Geo provides [replication](../geo/index.md) and [disaster recovery](../geo/disaster_recovery/index.md) for
an entire instance of GitLab. Users know when they are using Geo for
[replication](../geo/index.md). Geo [replicates multiple data types](../geo/replication/datatypes.md#limitations-on-replicationverification),
[replication](../geo/index.md). Geo [replicates multiple data types](../geo/replication/datatypes.md#replicated-data-types),
including Git data.
The following table outlines the major differences between Gitaly Cluster and Geo:

View File

@ -25814,7 +25814,7 @@ Defines which user roles, users, or groups can merge into a protected branch.
| <a id="mergerequestiid"></a>`iid` | [`String!`](#string) | Internal ID of the merge request. |
| <a id="mergerequestinprogressmergecommitsha"></a>`inProgressMergeCommitSha` | [`String`](#string) | Commit SHA of the merge request if merge is in progress. |
| <a id="mergerequestlabels"></a>`labels` | [`LabelConnection`](#labelconnection) | Labels of the merge request. (see [Connections](#connections)) |
| <a id="mergerequestmergeafter"></a>`mergeAfter` **{warning-solid}** | [`Time`](#time) | **Introduced** in GitLab 17.4. **Status**: Experiment. Date after which the merge request can be merged. |
| <a id="mergerequestmergeafter"></a>`mergeAfter` **{warning-solid}** | [`Time`](#time) | **Introduced** in GitLab 17.5. **Status**: Experiment. Date after which the merge request can be merged. |
| <a id="mergerequestmergecommitsha"></a>`mergeCommitSha` | [`String`](#string) | SHA of the merge request commit (set once merged). |
| <a id="mergerequestmergeerror"></a>`mergeError` | [`String`](#string) | Error message due to a merge error. |
| <a id="mergerequestmergeongoing"></a>`mergeOngoing` | [`Boolean!`](#boolean) | Indicates if a merge is currently occurring. |

View File

@ -17,7 +17,7 @@ DETAILS:
> - `with_merge_status_recheck` [changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115948) in GitLab 15.11 [with a flag](../administration/feature_flags.md) named `restrict_merge_status_recheck` to be ignored for requests from users insufficient permissions. Disabled by default.
> - `approvals_before_merge` [deprecated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119503) in GitLab 16.0.
> - `prepared_at` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122001) in GitLab 16.1.
> - `merge_after` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165092) in GitLab 17.4.
> - `merge_after` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165092) in GitLab 17.5.
All API calls to non-public information require authentication.

View File

@ -148,10 +148,6 @@ The steps:
1. [Add a post-deployment migration](#add-a-post-deployment-migration-release-m) (release M)
1. [Remove the ignore rule](#remove-the-ignore-rule-release-m1) (release M+1)
NOTE:
It's not possible to rename columns with default values. For more details, see
[this merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52032#default-values).
### Add the regular migration (release M)
First we need to create the regular migration. This migration should use

View File

@ -152,6 +152,7 @@ Registry disables all package registry operations.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/385994) in GitLab 15.7.
> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/468058) in GitLab 17.4 to support NuGet group endpoints.
> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/468059) in GitLab 17.5 to support Maven group endpoint.
To allow anyone to pull from the package registry, regardless of project visibility:
@ -179,6 +180,7 @@ Several known issues exist when you allow anyone to pull from the package regist
- Endpoints for projects are supported.
- NuGet registry endpoints for groups are supported. However, because of how NuGet clients send the authentication credentials, anonymous downloads are not allowed. Only GitLab users can pull from the package registry, even if this feature is enabled.
- Maven registry endpoint for groups are supported.
- Other group and instance endpoints are not fully supported. Support for group endpoints is proposed in [epic 14234](https://gitlab.com/groups/gitlab-org/-/epics/14234).
- It does not work with the [Composer](../composer_repository/index.md#install-a-composer-package), because Composer only has a group endpoint.
- It works with Conan, but using [`conan search`](../conan_repository/index.md#search-for-conan-packages-in-the-package-registry) does not work.

View File

@ -192,7 +192,7 @@ To archive multiple designs at once:
### Replicate design management data
Design Management data [can be replicated](../../../administration/geo/replication/datatypes.md#limitations-on-replicationverification)
Design Management data [can be replicated](../../../administration/geo/replication/datatypes.md#replicated-data-types)
and in GitLab 16.1 and later it can be [verified by Geo as well](https://gitlab.com/gitlab-org/gitlab/-/issues/355660).
## Markdown and rich text editors for descriptions

View File

@ -41,6 +41,7 @@ The Repository X-Ray searches a maximum of two directory levels from the reposit
| ---------- |-----------------| -------------------- | -------------- |
| C++ | Conan | `conanfile.py` | 17.5 or later |
| C++ | Conan | `conanfile.txt` | 17.4 or later |
| C# | NuGet | `*.csproj` | 17.5 or later |
| Go | Go Modules | `go.mod` | 17.4 or later |
| Java | Gradle | `build.gradle` | 17.4 or later |
| Java | Maven | `pom.xml` | 17.4 or later |

View File

@ -157,14 +157,8 @@ module API
end
route_setting :authentication, job_token_allowed: true, deploy_token_allowed: true, basic_auth_personal_access_token: true
get ':id/-/packages/maven/*path/:file_name', requirements: MAVEN_ENDPOINT_REQUIREMENTS do
action = if ::Feature.enabled?(:allow_anyone_to_pull_public_maven_packages_on_group_level, find_group(params[:id]))
:read_package_within_public_registries
else
:read_group
end
# return a similar failure to group = find_group(params[:id])
group = find_authorized_group!(action: action)
group = find_authorized_group!(action: :read_package_within_public_registries)
if Feature.disabled?(:maven_central_request_forwarding, group&.root_ancestor)
not_found!('Group') unless path_exists?(params[:path])

View File

@ -125,16 +125,6 @@ RSpec.describe ::Packages::Maven::PackageFinder, feature_category: :package_regi
end
it_behaves_like 'handling valid and invalid paths'
context 'when the FF allow_anyone_to_pull_public_maven_packages_on_group_level disabled' do
let(:param_path) { package.maven_metadatum.path }
before do
stub_feature_flags(allow_anyone_to_pull_public_maven_packages_on_group_level: false)
end
it { is_expected.to be_empty }
end
end
end

View File

@ -753,15 +753,6 @@ RSpec.describe API::MavenPackages, feature_category: :package_registry do
end
it_behaves_like 'successfully returning the file'
context 'when the FF allow_anyone_to_pull_public_maven_packages_on_group_level disabled' do
before do
stub_feature_flags(allow_anyone_to_pull_public_maven_packages_on_group_level: false)
stub_feature_flags(maven_central_request_forwarding: false)
end
it_behaves_like 'returning response status', :not_found
end
end
end