Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
1e1f087daa
commit
602a94c203
|
@ -249,7 +249,7 @@ export const FORM_TYPES = {
|
||||||
|
|
||||||
export const DEFAULT_PAGE_SIZE_NOTES = 20; // Set to 20 to not exceed query complexity
|
export const DEFAULT_PAGE_SIZE_NOTES = 20; // Set to 20 to not exceed query complexity
|
||||||
export const DEFAULT_PAGE_SIZE_EMOJIS = 100;
|
export const DEFAULT_PAGE_SIZE_EMOJIS = 100;
|
||||||
export const DEFAULT_PAGE_SIZE_CHILD_ITEMS = 5;
|
export const DEFAULT_PAGE_SIZE_CHILD_ITEMS = 50;
|
||||||
|
|
||||||
export const WORK_ITEM_NOTES_SORT_ORDER_KEY = 'sort_direction_work_item';
|
export const WORK_ITEM_NOTES_SORT_ORDER_KEY = 'sort_direction_work_item';
|
||||||
|
|
||||||
|
|
|
@ -53,5 +53,5 @@
|
||||||
title: s_('GroupsNew|Please fill in your personal access token.'),
|
title: s_('GroupsNew|Please fill in your personal access token.'),
|
||||||
id: 'import_gitlab_token',
|
id: 'import_gitlab_token',
|
||||||
data: { testid: 'import-gitlab-token' }
|
data: { testid: 'import-gitlab-token' }
|
||||||
.gl-border-default.gl-border-solid.gl-border-1.gl-bg-gray-10.gl-p-5
|
.gl-border-default.gl-border-solid.gl-border-1.gl-p-5
|
||||||
= f.submit s_('GroupsNew|Connect instance'), disabled: !bulk_imports_enabled, pajamas_button: true, data: { testid: 'connect-instance-button' }
|
= f.submit s_('GroupsNew|Connect instance'), disabled: !bulk_imports_enabled, pajamas_button: true, data: { testid: 'connect-instance-button' }
|
||||||
|
|
|
@ -21,5 +21,5 @@
|
||||||
= s_('GroupsNew|To import a group, navigate to the group settings for the GitLab source instance, %{link_start}generate an export file%{link_end}, and upload it here.').html_safe % { link_start: import_export_link_start, link_end: '</a>'.html_safe }
|
= s_('GroupsNew|To import a group, navigate to the group settings for the GitLab source instance, %{link_start}generate an export file%{link_end}, and upload it here.').html_safe % { link_start: import_export_link_start, link_end: '</a>'.html_safe }
|
||||||
.gl-mt-3
|
.gl-mt-3
|
||||||
= render 'shared/file_picker_button', f: f, field: :file, help_text: nil
|
= render 'shared/file_picker_button', f: f, field: :file, help_text: nil
|
||||||
.gl-border-default.gl-border-solid.gl-border-1.gl-bg-gray-10.gl-p-5
|
.gl-border-default.gl-border-solid.gl-border-1.gl-p-5
|
||||||
= f.submit _('Import'), pajamas_button: true
|
= f.submit _('Import'), pajamas_button: true
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
removal_milestone: "18.0"
|
removal_milestone: "18.0"
|
||||||
announcement_milestone: "16.9"
|
announcement_milestone: "16.9"
|
||||||
breaking_change: true
|
breaking_change: true
|
||||||
|
window: 1
|
||||||
reporter: gonzoyumo
|
reporter: gonzoyumo
|
||||||
stage: secure
|
stage: secure
|
||||||
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/439301
|
issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/439301
|
||||||
|
|
|
@ -5,4 +5,4 @@ feature_category: database
|
||||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123
|
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123
|
||||||
milestone: '17.5'
|
milestone: '17.5'
|
||||||
queued_migration_version: 20241008030404
|
queued_migration_version: 20241008030404
|
||||||
finalized_by: # version of the migration that finalized this BBM
|
finalized_by: 20250113222525
|
||||||
|
|
|
@ -15,5 +15,8 @@ description: Stores events created by users interacting with various product fea
|
||||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a847501fd2ffc1c4becc7d0d352d80168d9b3568
|
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a847501fd2ffc1c4becc7d0d352d80168d9b3568
|
||||||
milestone: '2.2'
|
milestone: '2.2'
|
||||||
gitlab_schema: gitlab_main_cell
|
gitlab_schema: gitlab_main_cell
|
||||||
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462801
|
sharding_key:
|
||||||
|
project_id: projects
|
||||||
|
group_id: namespaces
|
||||||
|
personal_namespace_id: namespaces
|
||||||
table_size: over_limit
|
table_size: over_limit
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class FinalizeEventsShardingKeyBackfill < Gitlab::Database::Migration[2.2]
|
||||||
|
milestone '17.9'
|
||||||
|
disable_ddl_transaction!
|
||||||
|
restrict_gitlab_migration gitlab_schema: :gitlab_main
|
||||||
|
|
||||||
|
def up
|
||||||
|
ensure_batched_background_migration_is_finished(
|
||||||
|
job_class_name: 'BackfillEventsShardingKey',
|
||||||
|
table_name: :events,
|
||||||
|
column_name: :id,
|
||||||
|
job_arguments: [],
|
||||||
|
finalize: true
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
# no-op
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,13 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class ValidateCheckEventsShardingKeyIsNotNull < Gitlab::Database::Migration[2.2]
|
||||||
|
milestone '17.9'
|
||||||
|
|
||||||
|
def up
|
||||||
|
validate_check_constraint(:events, :check_events_sharding_key_is_not_null)
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
# no-op
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1 @@
|
||||||
|
619fcb74d60ecaefbebb5c11915b9a6d5f0e5d5e47e0066fc7e728f56590eccd
|
|
@ -0,0 +1 @@
|
||||||
|
ff42035f9a3f015a86cb7b326ca01a59a6aabc3ea19ff92a546534ed8b8b25c6
|
|
@ -13035,7 +13035,8 @@ CREATE TABLE events (
|
||||||
target_id bigint,
|
target_id bigint,
|
||||||
imported_from smallint DEFAULT 0 NOT NULL,
|
imported_from smallint DEFAULT 0 NOT NULL,
|
||||||
personal_namespace_id bigint,
|
personal_namespace_id bigint,
|
||||||
CONSTRAINT check_97e06e05ad CHECK ((octet_length(fingerprint) <= 128))
|
CONSTRAINT check_97e06e05ad CHECK ((octet_length(fingerprint) <= 128)),
|
||||||
|
CONSTRAINT check_events_sharding_key_is_not_null CHECK (((group_id IS NOT NULL) OR (project_id IS NOT NULL) OR (personal_namespace_id IS NOT NULL)))
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE SEQUENCE events_id_seq
|
CREATE SEQUENCE events_id_seq
|
||||||
|
@ -26361,9 +26362,6 @@ ALTER TABLE sprints
|
||||||
ALTER TABLE web_hook_logs
|
ALTER TABLE web_hook_logs
|
||||||
ADD CONSTRAINT check_df72cb58f5 CHECK ((char_length(url_hash) <= 44)) NOT VALID;
|
ADD CONSTRAINT check_df72cb58f5 CHECK ((char_length(url_hash) <= 44)) NOT VALID;
|
||||||
|
|
||||||
ALTER TABLE events
|
|
||||||
ADD CONSTRAINT check_events_sharding_key_is_not_null CHECK (((group_id IS NOT NULL) OR (project_id IS NOT NULL) OR (personal_namespace_id IS NOT NULL))) NOT VALID;
|
|
||||||
|
|
||||||
ALTER TABLE projects
|
ALTER TABLE projects
|
||||||
ADD CONSTRAINT check_fa75869cb1 CHECK ((project_namespace_id IS NOT NULL)) NOT VALID;
|
ADD CONSTRAINT check_fa75869cb1 CHECK ((project_namespace_id IS NOT NULL)) NOT VALID;
|
||||||
|
|
||||||
|
|
|
@ -1741,6 +1741,8 @@ This class of issue applies to more than just email; other examples might includ
|
||||||
|
|
||||||
### Related topics
|
### Related topics
|
||||||
|
|
||||||
|
- [Watch a walkthrough video](https://www.youtube.com/watch?v=ydg95R2QKwM) for an instance of this issue causing vulnerability CVE-2023-7028.
|
||||||
|
The video covers what happened, how it worked, and what you need to know for the future.
|
||||||
- Rails documentation for [ActionController::StrongParameters](https://api.rubyonrails.org/classes/ActionController/StrongParameters.html) and [ActionController::Parameters](https://api.rubyonrails.org/classes/ActionController/Parameters.html)
|
- Rails documentation for [ActionController::StrongParameters](https://api.rubyonrails.org/classes/ActionController/StrongParameters.html) and [ActionController::Parameters](https://api.rubyonrails.org/classes/ActionController/Parameters.html)
|
||||||
|
|
||||||
## Who to contact if you have questions
|
## Who to contact if you have questions
|
||||||
|
|
|
@ -32,6 +32,7 @@ This window takes place on April 21 - 23, 2025 from 09:00 UTC to 22:00 UTC.
|
||||||
| [GitLab Runner platforms and setup instructions in GraphQL API](https://gitlab.com/gitlab-org/gitlab/-/issues/387937) | Low | Verify | Instance, group, project |
|
| [GitLab Runner platforms and setup instructions in GraphQL API](https://gitlab.com/gitlab-org/gitlab/-/issues/387937) | Low | Verify | Instance, group, project |
|
||||||
| [CI/CD job token - **Limit access from your project** setting removal](https://gitlab.com/gitlab-org/gitlab/-/issues/395708) | High | Verify | Project |
|
| [CI/CD job token - **Limit access from your project** setting removal](https://gitlab.com/gitlab-org/gitlab/-/issues/395708) | High | Verify | Project |
|
||||||
| [CI/CD job token - **Authorized groups and projects** allowlist enforcement](https://gitlab.com/gitlab-org/gitlab/-/issues/383084) | High | Govern | Project |
|
| [CI/CD job token - **Authorized groups and projects** allowlist enforcement](https://gitlab.com/gitlab-org/gitlab/-/issues/383084) | High | Govern | Project |
|
||||||
|
| [Deprecate License Scanning CI/CD artifact report type](https://gitlab.com/gitlab-org/gitlab/-/issues/439301) | | Secure | |
|
||||||
| [OpenTofu CI/CD template](https://gitlab.com/components/opentofu/-/issues/43#note_1913822299) | Low | Depoy | Project |
|
| [OpenTofu CI/CD template](https://gitlab.com/components/opentofu/-/issues/43#note_1913822299) | Low | Depoy | Project |
|
||||||
| [Replace `add_on_purchase` GraphQL field with `add_on_purchases`](https://gitlab.com/gitlab-org/gitlab/-/issues/476858) | Low | Fulfillment | Instance, group |
|
| [Replace `add_on_purchase` GraphQL field with `add_on_purchases`](https://gitlab.com/gitlab-org/gitlab/-/issues/476858) | Low | Fulfillment | Instance, group |
|
||||||
| [Replace namespace `add_on_purchase` GraphQL field with `add_on_purchases`](https://gitlab.com/gitlab-org/gitlab/-/issues/489850) | Low | Fulfillment | Instance, group |
|
| [Replace namespace `add_on_purchase` GraphQL field with `add_on_purchases`](https://gitlab.com/gitlab-org/gitlab/-/issues/489850) | Low | Fulfillment | Instance, group |
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
gem 'gitlab-qa', '~> 15', require: 'gitlab/qa'
|
gem 'gitlab-qa', '~> 15', '>= 15.1.0', require: 'gitlab/qa'
|
||||||
gem 'gitlab_quality-test_tooling', '~> 2.4.0', require: false
|
gem 'gitlab_quality-test_tooling', '~> 2.4.0', require: false
|
||||||
gem 'gitlab-utils', path: '../gems/gitlab-utils'
|
gem 'gitlab-utils', path: '../gems/gitlab-utils'
|
||||||
gem 'activesupport', '~> 7.0.8.7' # This should stay in sync with the root's Gemfile
|
gem 'activesupport', '~> 7.0.8.7' # This should stay in sync with the root's Gemfile
|
||||||
|
|
|
@ -118,7 +118,7 @@ GEM
|
||||||
gitlab (4.19.0)
|
gitlab (4.19.0)
|
||||||
httparty (~> 0.20)
|
httparty (~> 0.20)
|
||||||
terminal-table (>= 1.5.1)
|
terminal-table (>= 1.5.1)
|
||||||
gitlab-qa (15.0.0)
|
gitlab-qa (15.1.0)
|
||||||
activesupport (>= 6.1, < 7.2)
|
activesupport (>= 6.1, < 7.2)
|
||||||
ffi (~> 1.17)
|
ffi (~> 1.17)
|
||||||
gitlab (~> 4.19)
|
gitlab (~> 4.19)
|
||||||
|
@ -366,7 +366,7 @@ DEPENDENCIES
|
||||||
fog-core (= 2.1.0)
|
fog-core (= 2.1.0)
|
||||||
fog-google (~> 1.24, >= 1.24.1)
|
fog-google (~> 1.24, >= 1.24.1)
|
||||||
gitlab-cng!
|
gitlab-cng!
|
||||||
gitlab-qa (~> 15)
|
gitlab-qa (~> 15, >= 15.1.0)
|
||||||
gitlab-utils!
|
gitlab-utils!
|
||||||
gitlab_quality-test_tooling (~> 2.4.0)
|
gitlab_quality-test_tooling (~> 2.4.0)
|
||||||
googleauth (~> 1.9.0)
|
googleauth (~> 1.9.0)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
ARG GDK_SHA=ac07225dc7faa0b88559a91208e57cea83756cfe
|
ARG GDK_SHA=cad123df4fb15986c883f0e90f166ac2b8df4d36
|
||||||
# Use tag prefix when running on 'stable' branch to make sure 'protected' image is used which is not deleted by registry cleanup
|
# Use tag prefix when running on 'stable' branch to make sure 'protected' image is used which is not deleted by registry cleanup
|
||||||
ARG GDK_BASE_TAG_PREFIX
|
ARG GDK_BASE_TAG_PREFIX
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,14 @@ module ShardingKeySpecHelpers
|
||||||
def has_multi_column_null_check_constraint?(table_name, column_names)
|
def has_multi_column_null_check_constraint?(table_name, column_names)
|
||||||
# This regex searches for constraints that ensure at least one of a set of columns is NOT NULL.
|
# This regex searches for constraints that ensure at least one of a set of columns is NOT NULL.
|
||||||
# It assumes the constraint was created using the #add_multi_column_not_null_constraint helper, which also
|
# It assumes the constraint was created using the #add_multi_column_not_null_constraint helper, which also
|
||||||
# sorts the list of columns.
|
# sorts the list of columns. The constraint for `events` does not follow this convention hence the exception.
|
||||||
regex = "\\ACHECK \\(\\(num_nonnulls\\(#{column_names.sort.join(', ')}\\) (> [0-9]{1,}|>?= [1-9]{1,})\\)\\)\\Z"
|
regex = {
|
||||||
|
events: '\\ACHECK \\(\\(\\(group_id IS NOT NULL\\) OR \\(project_id IS NOT NULL\\) ' \
|
||||||
|
'OR \\(personal_namespace_id IS NOT NULL\\)\\)\\)\\Z'
|
||||||
|
}.fetch(
|
||||||
|
table_name.to_sym,
|
||||||
|
"\\ACHECK \\(\\(num_nonnulls\\(#{column_names.sort.join(', ')}\\) (> [0-9]{1,}|>?= [1-9]{1,})\\)\\)\\Z"
|
||||||
|
)
|
||||||
|
|
||||||
sql = <<~SQL
|
sql = <<~SQL
|
||||||
SELECT 1
|
SELECT 1
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue