Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
de0a1696ba
commit
fdcfcb29db
|
|
@ -66,7 +66,7 @@ db:rollback:
|
|||
- .db-job-base
|
||||
- .rails:rules:db-rollback
|
||||
script:
|
||||
- bundle exec rake db:migrate VERSION=20230721095222 # First 16-4-stable-ee migration
|
||||
- bundle exec rake db:migrate VERSION=20230721095222 # First 16-5-stable-ee migration
|
||||
- bundle exec rake db:migrate
|
||||
|
||||
db:rollback single-db:
|
||||
|
|
|
|||
|
|
@ -3244,7 +3244,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/services/epics/epic_links/list_service.rb'
|
||||
- 'ee/app/services/epics/epic_links/update_service.rb'
|
||||
- 'ee/app/services/epics/issue_promote_service.rb'
|
||||
- 'ee/app/services/epics/related_epic_links/create_service.rb'
|
||||
- 'ee/app/services/epics/related_epic_links/destroy_service.rb'
|
||||
- 'ee/app/services/epics/related_epic_links/list_service.rb'
|
||||
- 'ee/app/services/epics/reopen_service.rb'
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ Layout/LineBreakAfterFinalMixin:
|
|||
- 'app/workers/user_status_cleanup/batch_worker.rb'
|
||||
- 'app/workers/users/create_statistics_worker.rb'
|
||||
- 'db/migrate/20240213223630_add_duo_features_enabled_cascading_setting.rb'
|
||||
- 'db/post_migrate/20231017064317_swap_columns_for_ci_pipeline_variables_pipeline_id_bigint.rb'
|
||||
- 'db/post_migrate/20231122111935_drop_index_web_hook_logs_part_on_web_hook_id.rb'
|
||||
- 'db/post_migrate/20240122071840_ensure_backfill_for_ci_builds_integer_columns_is_finished.rb'
|
||||
- 'db/post_migrate/20240419122328_swap_vulnerability_feedback_pipeline_id_convert_to_bigint.rb'
|
||||
|
|
|
|||
|
|
@ -1762,7 +1762,6 @@ Layout/LineLength:
|
|||
- 'ee/spec/services/elastic/process_initial_bookkeeping_service_spec.rb'
|
||||
- 'ee/spec/services/epic_issues/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/issue_promote_service_spec.rb'
|
||||
- 'ee/spec/services/epics/related_epic_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/update_service_spec.rb'
|
||||
- 'ee/spec/services/external_status_checks/update_service_spec.rb'
|
||||
- 'ee/spec/services/geo/blob_download_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -235,7 +235,6 @@ Lint/UnusedMethodArgument:
|
|||
- 'ee/app/services/audit_events/runners_token_audit_event_service.rb'
|
||||
- 'ee/app/services/boards/epic_lists/update_service.rb'
|
||||
- 'ee/app/services/concerns/incident_management/oncall_rotations/shared_rotation_logic.rb'
|
||||
- 'ee/app/services/epics/related_epic_links/create_service.rb'
|
||||
- 'ee/app/services/epics/transfer_service.rb'
|
||||
- 'ee/app/services/group_saml/identity/destroy_service.rb'
|
||||
- 'ee/app/services/projects/update_mirror_service.rb'
|
||||
|
|
|
|||
|
|
@ -1,15 +1,10 @@
|
|||
---
|
||||
Migration/EnsureFactoryForTable:
|
||||
Exclude:
|
||||
- 'db/migrate/20230915103259_create_ci_finished_build_ch_sync_events.rb'
|
||||
- 'db/migrate/20230926092914_add_approval_group_rules.rb'
|
||||
- 'db/migrate/20230926092944_add_approval_group_rules_groups.rb'
|
||||
- 'db/migrate/20230926093004_add_approval_group_rules_users.rb'
|
||||
- 'db/migrate/20230926093025_add_approval_group_rules_protected_branches.rb'
|
||||
- 'db/migrate/20230926133801_create_value_stream_analytics_settings.rb'
|
||||
- 'db/migrate/20230930094139_add_related_link_restrictions.rb'
|
||||
- 'db/migrate/20231003073437_create_abuse_report_user_mentions.rb'
|
||||
- 'db/migrate/20231004100000_create_container_registry_protection_rules.rb'
|
||||
- 'db/migrate/20231017095738_create_activity_pub_releases_subscriptions.rb'
|
||||
- 'db/migrate/20231017134349_create_ml_model_metadata.rb'
|
||||
- 'db/migrate/20231020095624_create_audit_events_streaming_http_group_namespace_filters.rb'
|
||||
|
|
|
|||
|
|
@ -567,7 +567,6 @@ RSpec/BeforeAllRoleAssignment:
|
|||
- 'ee/spec/services/epics/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/epic_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/issue_promote_service_spec.rb'
|
||||
- 'ee/spec/services/epics/related_epic_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/related_epic_links/list_service_spec.rb'
|
||||
- 'ee/spec/services/epics/reopen_service_spec.rb'
|
||||
- 'ee/spec/services/epics/transfer_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -665,7 +665,6 @@ RSpec/ContextWording:
|
|||
- 'ee/spec/services/epic_issues/update_service_spec.rb'
|
||||
- 'ee/spec/services/epics/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/epic_links/list_service_spec.rb'
|
||||
- 'ee/spec/services/epics/related_epic_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/related_epic_links/destroy_service_spec.rb'
|
||||
- 'ee/spec/services/epics/update_service_spec.rb'
|
||||
- 'ee/spec/services/external_status_checks/dispatch_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -102,7 +102,6 @@ RSpec/ExpectChange:
|
|||
- 'ee/spec/services/elastic/indexing_control_service_spec.rb'
|
||||
- 'ee/spec/services/epic_issues/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/issue_promote_service_spec.rb'
|
||||
- 'ee/spec/services/epics/related_epic_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/transfer_service_spec.rb'
|
||||
- 'ee/spec/services/geo/container_repository_registry_removal_service_spec.rb'
|
||||
- 'ee/spec/services/geo/file_registry_removal_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -158,7 +158,6 @@ RSpec/ReceiveMessages:
|
|||
- 'ee/spec/services/ee/spam/spam_verdict_service_spec.rb'
|
||||
- 'ee/spec/services/ee/work_items/related_work_item_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/epic_issues/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/related_epic_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/geo/container_repository_sync_spec.rb'
|
||||
- 'ee/spec/services/geo/framework_repository_sync_service_spec.rb'
|
||||
- 'ee/spec/services/gitlab_subscriptions/create_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ Style/HashEachMethods:
|
|||
- 'app/services/security/merge_reports_service.rb'
|
||||
- 'config/initializers/6_validations.rb'
|
||||
- 'config/initializers/8_gitaly.rb'
|
||||
- 'db/post_migrate/20230906102738_sync_index_for_ci_sources_pipelines_pipeline_id_bigint.rb'
|
||||
- 'db/post_migrate/20240422070036_swap_ci_pipelines_pk_with_bigint_p_ci_builds_p_ci_stages.rb'
|
||||
- 'ee/app/graphql/types/compliance_management/merge_requests/compliance_violation_reason_enum.rb'
|
||||
- 'ee/app/graphql/types/compliance_management/merge_requests/compliance_violation_severity_enum.rb'
|
||||
|
|
|
|||
|
|
@ -998,19 +998,10 @@ Style/InlineDisableAnnotation:
|
|||
- 'config/routes/project.rb'
|
||||
- 'danger/ce_ee_vue_templates/Dangerfile'
|
||||
- 'danger/roulette/Dangerfile'
|
||||
- 'db/migrate/20230915103259_create_ci_finished_build_ch_sync_events.rb'
|
||||
- 'db/migrate/20230917144717_add_package_name_pattern_query_to_packages_protection_rule.rb'
|
||||
- 'db/migrate/20230921081527_add_queued_migration_version_to_batched_background_migrations.rb'
|
||||
- 'db/migrate/20231017135207_add_fields_to_ml_model.rb'
|
||||
- 'db/migrate/20231019180421_add_name_description_to_catalog_resources.rb'
|
||||
- 'db/migrate/20231024142236_add_fields_to_bulk_import_failures.rb'
|
||||
- 'db/post_migrate/20230908033511_swap_columns_for_ci_pipeline_chat_data_pipeline_id_bigint.rb'
|
||||
- 'db/post_migrate/20230924134453_cleanup_uuid_type_migration_on_vulnerability_occurrences.rb'
|
||||
- 'db/post_migrate/20231003045342_migrate_sidekiq_namespaced_jobs.rb'
|
||||
- 'db/post_migrate/20231003142534_add_build_timeout_index.rb'
|
||||
- 'db/post_migrate/20231005131445_add_work_items_related_link_restrictions.rb'
|
||||
- 'db/post_migrate/20231009105056_index_users_on_email_domain_and_id.rb'
|
||||
- 'db/post_migrate/20231017172156_add_index_on_projects_for_adjourned_deletion.rb'
|
||||
- 'db/post_migrate/20231018083247_remove_users_email_opted_in_columns.rb'
|
||||
- 'ee/app/controllers/admin/application_settings/scim_oauth_controller.rb'
|
||||
- 'ee/app/controllers/admin/emails_controller.rb'
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
9a94e7c7c19fce3afb5c36d045195c06e50ce3ca
|
||||
76e33b6eb327e8ab10102c2d332a40f4fdc3a4b5
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2f84f1083ebc22f6efe3ab00355ef5170bcbc142
|
||||
14515d822147fed159ea9d11ab04f097630ef075
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ export default {
|
|||
{{ s__('ValueStreamEvent|Only items that reached their stop event.') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="gl-border-t-1 gl-border-gray-50 gl-px-4 gl-pt-4 gl-border-t-solid">
|
||||
<div class="gl-border-t-1 gl-border-subtle gl-px-4 gl-pt-4 gl-border-t-solid">
|
||||
<div v-if="pathItem.startEventHtmlDescription" class="gl-flex gl-flex-row">
|
||||
<div class="metric-label gl-flex gl-flex-col gl-pb-3 gl-pr-4">
|
||||
{{ s__('ValueStreamEvent|Start') }}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export default {
|
|||
|
||||
<template>
|
||||
<div
|
||||
class="board-card-skeleton gl-mb-3 gl-rounded-base gl-border-1 gl-border-solid gl-border-gray-50 gl-bg-white gl-p-5"
|
||||
class="board-card-skeleton gl-mb-3 gl-rounded-base gl-border-1 gl-border-solid gl-border-subtle gl-bg-white gl-p-5"
|
||||
>
|
||||
<div class="board-card-skeleton-inner">
|
||||
<gl-skeleton-loader :width="340" :height="100">
|
||||
|
|
|
|||
|
|
@ -95,36 +95,36 @@ export default {
|
|||
@updateVariables="$emit('updateVariables')"
|
||||
/>
|
||||
|
||||
<job-sidebar-details-container class="gl-border-b gl-border-gray-50 gl-py-4" />
|
||||
<job-sidebar-details-container class="gl-border-b gl-border-subtle gl-py-4" />
|
||||
|
||||
<artifacts-block
|
||||
v-if="hasArtifact"
|
||||
class="gl-border-b gl-border-gray-50 gl-py-4"
|
||||
class="gl-border-b gl-border-subtle gl-py-4"
|
||||
:artifact="artifact"
|
||||
:help-url="artifactHelpUrl"
|
||||
/>
|
||||
|
||||
<external-links-block
|
||||
v-if="hasExternalLinks"
|
||||
class="gl-border-b gl-border-gray-50 gl-py-4"
|
||||
class="gl-border-b gl-border-subtle gl-py-4"
|
||||
:external-links="externalLinks"
|
||||
/>
|
||||
|
||||
<trigger-block
|
||||
v-if="hasTriggers"
|
||||
class="gl-border-b gl-border-gray-50 gl-py-4"
|
||||
class="gl-border-b gl-border-subtle gl-py-4"
|
||||
:trigger="job.trigger"
|
||||
/>
|
||||
|
||||
<commit-block
|
||||
class="gl-border-b gl-border-gray-50 gl-py-4"
|
||||
class="gl-border-b gl-border-subtle gl-py-4"
|
||||
:commit="commit"
|
||||
:merge-request="job.merge_request"
|
||||
/>
|
||||
|
||||
<stages-dropdown
|
||||
v-if="job.pipeline"
|
||||
class="gl-border-b gl-border-gray-50 gl-py-4"
|
||||
class="gl-border-b gl-border-subtle gl-py-4"
|
||||
:pipeline="job.pipeline"
|
||||
:selected-stage="selectedStage"
|
||||
:stages="stages"
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ Vue.use(IdeRouter);
|
|||
|
||||
// Unfortunately Vue Router doesn't work without at least a fake component
|
||||
// If you do only data handling
|
||||
const EmptyRouterComponent = {
|
||||
export const EmptyRouterComponent = {
|
||||
render(createElement) {
|
||||
return createElement('div');
|
||||
},
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ export default {
|
|||
data-testid="export-issuable-modal"
|
||||
>
|
||||
<div
|
||||
class="gl-items-center gl-justify-start gl-border-1 gl-border-gray-50 gl-p-4 gl-border-b-solid"
|
||||
class="gl-items-center gl-justify-start gl-border-1 gl-border-subtle gl-p-4 gl-border-b-solid"
|
||||
>
|
||||
<gl-icon name="check" class="gl-color-green-400" />
|
||||
<strong class="gl-m-3">{{ issuableCountText }}</strong>
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ export default {
|
|||
</div>
|
||||
<timeline-events-form
|
||||
ref="eventForm"
|
||||
:class="{ 'gl-border-t gl-border-gray-50 gl-pt-3': hasTimelineEvents }"
|
||||
:class="{ 'gl-border-t gl-border-subtle gl-pt-3': hasTimelineEvents }"
|
||||
:is-event-processed="createTimelineEventActive"
|
||||
show-save-and-add
|
||||
@save-event="createIncidentTimelineEvent"
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<form class="gl-grow gl-border-gray-50">
|
||||
<form class="gl-grow gl-border-subtle">
|
||||
<div class="gl-mt-3 gl-flex gl-flex-col sm:gl-flex-row">
|
||||
<gl-form-group :label="__('Date')" class="gl-mr-5">
|
||||
<gl-datepicker id="incident-date" ref="datepicker" v-model="datePickerInput" />
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ export default {
|
|||
class="timeline-group"
|
||||
>
|
||||
<h2
|
||||
class="gl-my-0 gl-border-1 gl-border-gray-50 gl-py-5 gl-text-size-h2 gl-border-b-solid"
|
||||
class="gl-my-0 gl-border-1 gl-border-subtle gl-py-5 gl-text-size-h2 gl-border-b-solid"
|
||||
data-testid="event-date"
|
||||
>
|
||||
{{ eventDate }}
|
||||
|
|
|
|||
|
|
@ -138,10 +138,10 @@ export default class Todos {
|
|||
restoreBtn.classList.add('hidden');
|
||||
doneBtn.classList.remove('hidden');
|
||||
} else if (target === doneBtn) {
|
||||
row.classList.add('done-reversible', 'gl-bg-gray-10', 'gl-border-gray-50');
|
||||
row.classList.add('done-reversible', 'gl-bg-gray-10', 'gl-border-subtle');
|
||||
restoreBtn.classList.remove('hidden');
|
||||
} else if (target === restoreBtn) {
|
||||
row.classList.remove('done-reversible', 'gl-bg-gray-10', 'gl-border-gray-50');
|
||||
row.classList.remove('done-reversible', 'gl-bg-gray-10', 'gl-border-subtle');
|
||||
doneBtn.classList.remove('hidden');
|
||||
} else {
|
||||
row.parentNode.removeChild(row);
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ export default {
|
|||
iconBgClass,
|
||||
{
|
||||
'system-note-icon -gl-mt-1 gl-ml-2 gl-h-6 gl-w-6': isAllowedIcon,
|
||||
'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-gray-50 gl-bg-gray-900':
|
||||
'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-subtle gl-bg-gray-900':
|
||||
!isAllowedIcon,
|
||||
},
|
||||
]"
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ export default {
|
|||
getIconColor,
|
||||
{
|
||||
'system-note-icon -gl-mt-1 gl-ml-2 gl-h-6 gl-w-6': isAllowedIcon,
|
||||
'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-gray-50 gl-bg-gray-900':
|
||||
'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-subtle gl-bg-gray-900':
|
||||
!isAllowedIcon,
|
||||
},
|
||||
]"
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ export default {
|
|||
/>
|
||||
<template v-if="workItemCrmContacts">
|
||||
<work-item-crm-contacts
|
||||
class="gl-border-t gl-mb-5 gl-border-gray-50 gl-pt-5"
|
||||
class="gl-border-t gl-mb-5 gl-border-subtle gl-pt-5"
|
||||
:full-path="fullPath"
|
||||
:work-item-id="workItem.id"
|
||||
:work-item-iid="workItem.iid"
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@
|
|||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
@apply gl-border-gray-50;
|
||||
@apply gl-border-subtle;
|
||||
@apply gl-border-1;
|
||||
@apply gl-border-b-solid;
|
||||
// Border spans the whole container minus icon width and grid gap
|
||||
|
|
|
|||
|
|
@ -6,22 +6,22 @@ module Integrations
|
|||
|
||||
field :username,
|
||||
title: -> { _('Username') },
|
||||
help: -> { _('Enter your Packagist username.') },
|
||||
help: -> { _('Username of a Packagist account.') },
|
||||
placeholder: '',
|
||||
required: true
|
||||
|
||||
field :token,
|
||||
type: :password,
|
||||
title: -> { _('Token') },
|
||||
help: -> { _('Enter your Packagist token.') },
|
||||
help: -> { _('API token of the Packagist server.') },
|
||||
non_empty_password_title: -> { s_('ProjectService|Enter new token') },
|
||||
non_empty_password_help: -> { s_('ProjectService|Leave blank to use your current token.') },
|
||||
placeholder: '',
|
||||
required: true
|
||||
|
||||
field :server,
|
||||
title: -> { s_('Server (optional)') },
|
||||
help: -> { s_('Enter your Packagist server. Defaults to https://packagist.org.') },
|
||||
title: -> { _('Server (optional)') },
|
||||
help: -> { _('URL of the Packagist server. The default value is `https://packagist.org`.') },
|
||||
placeholder: 'https://packagist.org',
|
||||
exposes_secrets: true,
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ class ProjectSetting < ApplicationRecord
|
|||
|
||||
belongs_to :project, inverse_of: :project_setting
|
||||
|
||||
ignore_column :pages_multiple_versions_enabled, remove_with: '17.9', remove_after: '2025-02-20'
|
||||
|
||||
scope :for_projects, ->(projects) { where(project_id: projects) }
|
||||
scope :with_namespace, -> { joins(project: :namespace) }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%li.todo.gl-border-t.gl-border-gray-50.hover:gl-border-blue-200.hover:gl-bg-blue-50.hover:gl-cursor-pointer.gl-relative{ class: "hover:gl-z-1 todo-#{todo.done? ? 'done' : 'pending'}", id: dom_id(todo) }
|
||||
%li.todo.gl-border-t.gl-border-subtle.hover:gl-border-blue-200.hover:gl-bg-blue-50.hover:gl-cursor-pointer.gl-relative{ class: "hover:gl-z-1 todo-#{todo.done? ? 'done' : 'pending'}", id: dom_id(todo) }
|
||||
.gl-flex.gl-flex-col.sm:gl-flex-row.sm:gl-items-center
|
||||
.todo-item.gl-overflow-hidden.gl-overflow-x-auto.gl-self-center.gl-w-full{ data: { testid: "todo-item-container" } }
|
||||
.todo-title.gl-pt-2.gl-pb-3.gl-px-2.gl-md-mb-1.gl-text-sm.gl-text-subtle
|
||||
|
|
|
|||
|
|
@ -20,16 +20,5 @@
|
|||
%p.gl-pl-6
|
||||
= s_("GitLabPages|When enabled, a unique domain is generated to access pages.").html_safe
|
||||
|
||||
- if can?(current_user, :pages_multiple_versions, @project)
|
||||
.form-group
|
||||
= f.fields_for :project_setting do |settings|
|
||||
= settings.gitlab_ui_checkbox_component :pages_multiple_versions_enabled,
|
||||
s_('GitLabPages|Enable parallel deployments'),
|
||||
label_options: { class: 'label-bold' }
|
||||
%p.gl-pl-6
|
||||
= safe_format(s_("GitLabPages|When enabled, you can create parallel deployments of your pages site. %{docs_link_start}Learn more.%{link_end}"),
|
||||
tag_pair(tag.a(href: help_page_path('user/project/pages/index.md', anchor: 'parallel-deployments'), target: '_blank'),
|
||||
:docs_link_start, :link_end))
|
||||
|
||||
.gl-mt-3
|
||||
= f.submit s_('GitLabPages|Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ identifiers:
|
|||
- project
|
||||
- user
|
||||
- namespace
|
||||
product_group: pipeline_authoring
|
||||
product_group: pipeline_security
|
||||
product_categories:
|
||||
- secrets_management
|
||||
milestone: "15.2"
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90449
|
||||
distributions:
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ identifiers:
|
|||
- project
|
||||
- user
|
||||
- namespace
|
||||
product_group: pipeline_authoring
|
||||
product_group: pipeline_security
|
||||
product_categories:
|
||||
- secrets_management
|
||||
milestone: "15.2"
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90449
|
||||
distributions:
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ identifiers:
|
|||
- project
|
||||
- user
|
||||
- namespace
|
||||
product_group: pipeline_authoring
|
||||
product_group: pipeline_security
|
||||
product_categories:
|
||||
- secrets_management
|
||||
milestone: "15.2"
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90449
|
||||
distributions:
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ extra_properties:
|
|||
identifiers:
|
||||
- user
|
||||
- namespace
|
||||
product_group: pipeline_authoring
|
||||
product_group: pipeline_security
|
||||
product_categories:
|
||||
- secrets_management
|
||||
milestone: "15.9"
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110422
|
||||
distributions:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
description: Tracks when a cached manifest is pulled from the package registry
|
||||
action: pull_manifest_from_cache
|
||||
identifiers:
|
||||
- namespace
|
||||
- user
|
||||
product_group: container_registry
|
||||
milestone: '14.2'
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173882
|
||||
distributions:
|
||||
- ce
|
||||
tiers:
|
||||
- free
|
||||
- premium
|
||||
- ultimate
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
description: Tracks when a NuGet symbol package is downloaded from the package registry
|
||||
action: pull_symbol_package
|
||||
identifiers:
|
||||
- project
|
||||
- namespace
|
||||
- user
|
||||
product_group: package_registry
|
||||
milestone: '14.1'
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64554
|
||||
distributions:
|
||||
- ce
|
||||
tiers:
|
||||
- free
|
||||
- premium
|
||||
- ultimate
|
||||
additional_properties:
|
||||
label:
|
||||
description: Always `redis_hll_counters.user_packages.user_packages_total_unique_counts_monthly`
|
||||
property:
|
||||
description: Always `i_package_nuget_user`
|
||||
|
|
@ -4,6 +4,8 @@ key_path: redis_hll_counters.pipeline_authoring.o_pipeline_authoring_unique_user
|
|||
description: Monthly unique user count doing commits which contains the CI config
|
||||
file
|
||||
product_group: pipeline_authoring
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
time_frame: 28d
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ data_category: optional
|
|||
key_path: redis_hll_counters.pipeline_authoring.o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile_monthly
|
||||
description: Monthly unique user count having merge requests which contains the CI config file
|
||||
product_group: pipeline_authoring
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "13.10"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ data_category: optional
|
|||
key_path: redis_hll_counters.pipeline_authoring.pipeline_authoring_total_unique_counts_monthly
|
||||
description: Unique users doing commits or push MRs which contains CI cifig file
|
||||
product_group: pipeline_authoring
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "13.12"
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
key_path: redis_hll_counters.ci_templates.p_ci_templates_kaniko_monthly
|
||||
description: ''
|
||||
product_group: pipeline_authoring
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: '14.3'
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
key_path: redis_hll_counters.ci_templates.p_ci_templates_katalon_monthly
|
||||
description: 'Monthly counts of times users have executed katalon_tests jobs'
|
||||
product_group: 'pipeline_authoring'
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "15.4"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
---
|
||||
key_path: redis_hll_counters.ci_secrets_management.i_ci_secrets_management_id_tokens_build_created_monthly
|
||||
description: Monthly count of unique users who created a pipeline with id_tokens (JWT tokens)
|
||||
product_group: pipeline_authoring
|
||||
product_group: pipeline_security
|
||||
product_categories:
|
||||
- secrets_management
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "15.9"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ data_category: operational
|
|||
key_path: redis_hll_counters.pipeline_authoring.o_pipeline_authoring_unique_users_committing_ciconfigfile_weekly
|
||||
description: Weekly unique user count doing commits which contains the CI config file
|
||||
product_group: pipeline_authoring
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
time_frame: 7d
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ data_category: optional
|
|||
key_path: redis_hll_counters.pipeline_authoring.o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile_weekly
|
||||
description: Weekly unique user count having merge requests which contains the CI config file
|
||||
product_group: pipeline_authoring
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "13.10"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ data_category: optional
|
|||
key_path: redis_hll_counters.pipeline_authoring.pipeline_authoring_total_unique_counts_weekly
|
||||
description: Unique users doing commits or push MRs which contains CI cifig file
|
||||
product_group: pipeline_authoring
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "13.12"
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
key_path: redis_hll_counters.ci_templates.p_ci_templates_katalon_weekly
|
||||
description: 'Weekly counts of times users have executed katalon_tests jobs'
|
||||
product_group: 'pipeline_authoring'
|
||||
product_categories:
|
||||
- pipeline_composition
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "15.4"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
---
|
||||
key_path: redis_hll_counters.ci_secrets_management.i_ci_secrets_management_id_tokens_build_created_weekly
|
||||
description: Weekly count of unique users who created a pipeline with id_tokens (JWT tokens)
|
||||
product_group: pipeline_authoring
|
||||
product_group: pipeline_security
|
||||
product_categories:
|
||||
- secrets_management
|
||||
value_type: number
|
||||
status: active
|
||||
milestone: "15.9"
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
migration_job_name: BackfillUuidConversionColumnInVulnerabilityOccurrences
|
||||
description: backfill values for `uuid_convert_string_to_uuid` column in vulnerability_occurrences
|
||||
table
|
||||
feature_category: vulnerability_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124986
|
||||
milestone: '16.2'
|
||||
finalized_by: '20231207221056'
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddJobsIndexRateLimitToApplicationSettings < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :application_settings, :project_jobs_api_rate_limit, :integer, default: 600, null: false
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddOkrReminderLastSentToWorkItemProgresses < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :work_item_progresses, :last_reminder_sent_at, :datetime_with_timezone
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddPriorityToUserAchievements < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :user_achievements, :priority, :int, null: true, default: nil
|
||||
end
|
||||
end
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddCvssToVulnerabilities < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
with_lock_retries do
|
||||
add_column :vulnerabilities, :cvss, :jsonb, default: [], if_not_exists: true
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_column :vulnerabilities, :cvss, if_exists: true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddIndexToViolationsOnTargetProjIdSync < Gitlab::Database::Migration[2.1]
|
||||
TABLE_NAME = 'merge_requests_compliance_violations'
|
||||
INDEX_NAME = 'i_compliance_violations_for_export'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_index TABLE_NAME, [:target_project_id, :id], name: INDEX_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name TABLE_NAME, INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddAdminMembersToMemberRole < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
add_column :member_roles, :admin_group_member, :boolean, default: false, null: false
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :member_roles, :admin_group_member
|
||||
end
|
||||
end
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateVSCodeSetting < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
create_table :vs_code_settings do |t|
|
||||
t.references :user, index: true, foreign_key: { on_delete: :cascade }, null: false
|
||||
t.timestamps_with_timezone null: false
|
||||
t.text :setting_type, null: false, limit: 256
|
||||
t.text :content, null: false, limit: 512.kilobytes
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddVulnerabilitiesToSbomOccurrences < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :sbom_occurrences, :vulnerabilities, :jsonb, default: []
|
||||
end
|
||||
end
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateCiFinishedBuildChSyncEvents < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
options = {
|
||||
primary_key: [:build_id, :partition],
|
||||
options: 'PARTITION BY LIST (partition)'
|
||||
}
|
||||
|
||||
create_table(:p_ci_finished_build_ch_sync_events, **options) do |t|
|
||||
# Do not bother with foreign key as it provides no benefit and has a performance cost. These get cleaned up over
|
||||
# time anyway.
|
||||
t.bigint :build_id, null: false
|
||||
t.bigint :partition, null: false, default: 1
|
||||
# rubocop: disable Migration/Datetime
|
||||
# The source for this field does not have a timezone
|
||||
t.datetime :build_finished_at, null: false
|
||||
# rubocop: enable Migration/Datetime
|
||||
t.boolean :processed, null: false, default: false
|
||||
|
||||
t.index '(build_id % 100), build_id',
|
||||
where: 'processed = FALSE',
|
||||
name: 'index_ci_finished_build_ch_sync_events_for_partitioned_query'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateScanResultPolicyViolations < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
create_table :scan_result_policy_violations do |t|
|
||||
t.bigint :scan_result_policy_id,
|
||||
index: false,
|
||||
null: false
|
||||
|
||||
t.bigint :merge_request_id,
|
||||
index: { name: 'index_scan_result_policy_violations_on_merge_request_id' },
|
||||
null: false
|
||||
|
||||
t.bigint :project_id,
|
||||
index: { name: 'index_scan_result_policy_violations_on_project_id' },
|
||||
null: false
|
||||
|
||||
t.timestamps_with_timezone null: false
|
||||
end
|
||||
|
||||
add_index(:scan_result_policy_violations,
|
||||
%i[scan_result_policy_id merge_request_id],
|
||||
unique: true,
|
||||
name: 'index_scan_result_policy_violations_on_policy_and_merge_request')
|
||||
end
|
||||
|
||||
def down
|
||||
drop_table :scan_result_policy_violations
|
||||
end
|
||||
end
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddScanResultPolicyFkToScanResultPolicyViolations < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key(
|
||||
:scan_result_policy_violations,
|
||||
:scan_result_policies,
|
||||
column: :scan_result_policy_id,
|
||||
on_delete: :cascade)
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_foreign_key(:scan_result_policy_violations, column: :scan_result_policy_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddMergeRequestFkToScanResultPolicyViolations < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key(
|
||||
:scan_result_policy_violations,
|
||||
:merge_requests,
|
||||
column: :merge_request_id,
|
||||
on_delete: :cascade)
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_foreign_key(:scan_result_policy_violations, column: :merge_request_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddProjectFkToScanResultPolicyViolations < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key(
|
||||
:scan_result_policy_violations,
|
||||
:projects,
|
||||
column: :project_id,
|
||||
on_delete: :cascade)
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_foreign_key(:scan_result_policy_violations, column: :project_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddPackageNamePatternQueryToPackagesProtectionRule < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
with_lock_retries do
|
||||
unless column_exists?(
|
||||
:packages_protection_rules, :package_name_pattern_ilike_query)
|
||||
# rubocop:disable Rails/NotNullColumn
|
||||
add_column :packages_protection_rules, :package_name_pattern_ilike_query, :text, null: false
|
||||
# rubocop:enable Rails/NotNullColumn
|
||||
end
|
||||
end
|
||||
|
||||
add_text_limit :packages_protection_rules, :package_name_pattern_ilike_query, 255
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :packages_protection_rules, :package_name_pattern_ilike_query
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddCrossHierarchyEnabledToHierarchyRestrictions < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column :work_item_hierarchy_restrictions, :cross_hierarchy_enabled, :boolean, default: false, null: false
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddMaxLoginAttemptsToApplicationSettings < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :application_settings, :max_login_attempts, :integer, null: true
|
||||
end
|
||||
end
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddApplicationSettingsMaxLoginAttemptsConstraint < Gitlab::Database::Migration[2.1]
|
||||
CONSTRAINT_NAME = 'app_settings_max_login_attempts_positive'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_check_constraint :application_settings, 'max_login_attempts > 0', CONSTRAINT_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_check_constraint :application_settings, CONSTRAINT_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddFailedLoginAttemptsUnlockPeriodInMinutesToApplicationSettings < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :application_settings, :failed_login_attempts_unlock_period_in_minutes, :integer, null: true
|
||||
end
|
||||
end
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddApplicationSettingsFailedLoginAttemptsUnlockPeriodInMinutesConstraint < Gitlab::Database::Migration[2.1]
|
||||
CONSTRAINT_NAME = 'app_settings_failed_login_attempts_unlock_period_positive'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_check_constraint :application_settings, 'failed_login_attempts_unlock_period_in_minutes > 0', CONSTRAINT_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_check_constraint :application_settings, CONSTRAINT_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddSprintIdAndWeightToVsaIssues < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
add_column :analytics_cycle_analytics_issue_stage_events, :weight, :integer
|
||||
add_column :analytics_cycle_analytics_issue_stage_events, :sprint_id, :bigint
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :analytics_cycle_analytics_issue_stage_events, :sprint_id
|
||||
remove_column :analytics_cycle_analytics_issue_stage_events, :weight
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddContainerRegistryDbEnabledToApplicationSettings < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column :application_settings, :container_registry_db_enabled, :boolean, null: false, default: false
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddLastAssignedUsersRefreshedAtToSubscriptionAddOnPurchases < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column(:subscription_add_on_purchases, :last_assigned_users_refreshed_at, :datetime_with_timezone)
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddForceIncludeAllResourcesToWorkspaces < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column :workspaces, :force_include_all_resources, :boolean, default: false, null: false
|
||||
end
|
||||
end
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddQueuedMigrationVersionToBatchedBackgroundMigrations < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
INDEX_NAME = 'unique_batched_background_migrations_queued_migration_version'
|
||||
|
||||
# rubocop:disable Migration/AddLimitToTextColumns
|
||||
# limit is added in 20230921082223_add_limit_to_queued_migration_version_in_batched_background_migrations.rb
|
||||
def up
|
||||
add_column(:batched_background_migrations, :queued_migration_version, :text, if_not_exists: true)
|
||||
|
||||
add_concurrent_index(
|
||||
:batched_background_migrations,
|
||||
:queued_migration_version,
|
||||
unique: true,
|
||||
name: INDEX_NAME
|
||||
)
|
||||
end
|
||||
# rubocop:enable Migration/AddLimitToTextColumns
|
||||
|
||||
def down
|
||||
remove_column(:batched_background_migrations, :queued_migration_version, :text, if_exists: true)
|
||||
end
|
||||
end
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddLimitToQueuedMigrationVersionInBatchedBackgroundMigrations < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
# 14 is set as the limit because the migration version is 14 chars in length
|
||||
add_text_limit :batched_background_migrations, :queued_migration_version, 14
|
||||
end
|
||||
|
||||
def down
|
||||
remove_text_limit :batched_background_migrations, :queued_migration_version
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddLatestReleasedAtToCatalogResources < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column :catalog_resources, :latest_released_at, :datetime_with_timezone, null: true
|
||||
end
|
||||
end
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddForeignKeyForCiPipelinesPipelineIdBigint < Gitlab::Database::Migration[2.1]
|
||||
TABLE_NAME = :ci_pipelines
|
||||
REFERENCING_TABLE_NAME = :ci_pipelines
|
||||
COLUMN_NAME = :auto_canceled_by_id_convert_to_bigint
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key(
|
||||
TABLE_NAME, REFERENCING_TABLE_NAME,
|
||||
column: COLUMN_NAME, on_delete: :nullify, validate: false, reverse_lock_order: true
|
||||
)
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_foreign_key_if_exists TABLE_NAME, column: COLUMN_NAME
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemoveDeprecatedDeleteContainerRepositoryWorkerJobInstances < Gitlab::Database::Migration[2.1]
|
||||
DEPRECATED_JOB_CLASSES = %w[DeleteContainerRepositoryWorker].freeze
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
sidekiq_remove_jobs(job_klasses: DEPRECATED_JOB_CLASSES)
|
||||
end
|
||||
|
||||
def down
|
||||
# This migration removes any instances of deprecated workers and cannot be undone.
|
||||
end
|
||||
end
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddIndexOnOkrReminderFrequency < Gitlab::Database::Migration[2.1]
|
||||
INDEX_NAME = 'idx_reminder_frequency_on_work_item_progresses'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_index :work_item_progresses, :reminder_frequency, name: INDEX_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :work_item_progresses, INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddIndexToAddOnPurchasesOnLastAssignedUsersRefreshedAtAndAddOnId < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
INDEX_NAME = 'idx_addon_purchases_on_last_refreshed_at_desc_nulls_last'
|
||||
|
||||
def up
|
||||
add_concurrent_index :subscription_add_on_purchases, %i[last_assigned_users_refreshed_at],
|
||||
order: { last_assigned_users_refreshed_at: 'DESC NULLS LAST' },
|
||||
name: INDEX_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :subscription_add_on_purchases, INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddVertexAiAccessTokenToApplicationSettings < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :application_settings, :encrypted_vertex_ai_access_token, :binary
|
||||
add_column :application_settings, :encrypted_vertex_ai_access_token_iv, :binary
|
||||
end
|
||||
end
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateValueStreamAnalyticsSettings < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
create_table :analytics_cycle_analytics_value_stream_settings, id: false do |t|
|
||||
t.references(
|
||||
:value_stream,
|
||||
primary_key: true,
|
||||
default: nil,
|
||||
type: :bigint,
|
||||
index: false,
|
||||
foreign_key: {
|
||||
to_table: :analytics_cycle_analytics_group_value_streams,
|
||||
column: :analytics_cycle_analytics_group_value_stream_id,
|
||||
on_delete: :cascade
|
||||
}
|
||||
)
|
||||
|
||||
t.bigint :project_ids_filter, array: true, default: []
|
||||
t.check_constraint 'CARDINALITY(project_ids_filter) <= 100'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddIndexOnPagesDeploymentsDeletedAt < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
INDEX = 'index_pages_deployments_on_deleted_at'
|
||||
|
||||
def up
|
||||
add_concurrent_index :pages_deployments,
|
||||
:deleted_at,
|
||||
where: 'deleted_at IS NOT NULL',
|
||||
name: INDEX
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index :pages_deployments, :deleted_at, name: INDEX
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddApplicablePostMergeColumnToMrApprovalRules < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column :approval_merge_request_rules, :applicable_post_merge, :boolean
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddMathRenderingLimitsEnabled < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column :application_settings, :math_rendering_limits_enabled, :boolean, default: true, null: false
|
||||
end
|
||||
end
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddRelatedLinkRestrictions < Gitlab::Database::Migration[2.1]
|
||||
UNIQUE_INDEX_NAME = 'index_work_item_link_restrictions_on_source_link_type_target'
|
||||
|
||||
def up
|
||||
create_table :work_item_related_link_restrictions do |t|
|
||||
t.references :source_type, index: false, null: false,
|
||||
foreign_key: { on_delete: :cascade, to_table: :work_item_types }
|
||||
t.references :target_type, index: true, null: false,
|
||||
foreign_key: { on_delete: :cascade, to_table: :work_item_types }
|
||||
t.integer :link_type, null: false, limit: 2, default: 0
|
||||
|
||||
t.index [:source_type_id, :link_type, :target_type_id], unique: true, name: UNIQUE_INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
drop_table :work_item_related_link_restrictions
|
||||
end
|
||||
end
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateAbuseReportUserMentions < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
create_table :abuse_report_user_mentions do |t|
|
||||
t.bigint :abuse_report_id, null: false
|
||||
t.bigint :note_id, null: false
|
||||
t.bigint :mentioned_users_ids, array: true, default: nil
|
||||
t.bigint :mentioned_projects_ids, array: true, default: nil
|
||||
t.bigint :mentioned_groups_ids, array: true, default: nil
|
||||
|
||||
t.index :note_id
|
||||
t.index [:abuse_report_id, :note_id],
|
||||
unique: true,
|
||||
name: :index_abuse_report_user_mentions_on_abuse_report_id_and_note_id
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
drop_table :abuse_report_user_mentions, if_exists: true
|
||||
end
|
||||
end
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddAbuseReportsForeignKeyToAbuseReportUserMentions < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key :abuse_report_user_mentions, :abuse_reports, column: :abuse_report_id,
|
||||
on_delete: :cascade
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_foreign_key :abuse_report_user_mentions, column: :abuse_report_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddNotesForeignKeyToAbuseReportUserMentions < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key :abuse_report_user_mentions, :notes, column: :note_id, on_delete: :cascade
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_foreign_key :abuse_report_user_mentions, column: :note_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateContainerRegistryProtectionRules < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
create_table :container_registry_protection_rules do |t|
|
||||
t.references :project, null: false, index: false, foreign_key: { on_delete: :cascade }
|
||||
t.timestamps_with_timezone null: false
|
||||
t.integer :delete_protected_up_to_access_level, null: false, limit: 2
|
||||
t.integer :push_protected_up_to_access_level, null: false, limit: 2
|
||||
t.text :container_path_pattern, limit: 255, null: false
|
||||
|
||||
t.index [:project_id, :container_path_pattern], unique: true,
|
||||
name: :i_container_protection_unique_project_id_container_path_pattern
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddUuidAndVersionToVsCodeSetting < Gitlab::Database::Migration[2.1]
|
||||
def up
|
||||
add_column :vs_code_settings, :uuid, :uuid, null: true, default: false
|
||||
add_column :vs_code_settings, :version, :integer, null: true, default: false
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :vs_code_settings, :uuid
|
||||
remove_column :vs_code_settings, :version
|
||||
end
|
||||
end
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ReplaceValueStreamProjectIdsFilterConstraint < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
OLD_CONSTRAINT_NAME = 'chk_rails_a91b547c97'
|
||||
NEW_CONSTRAINT_NAME = 'project_ids_filter_array_check'
|
||||
|
||||
def up
|
||||
remove_check_constraint :analytics_cycle_analytics_value_stream_settings, OLD_CONSTRAINT_NAME
|
||||
|
||||
check = '((CARDINALITY(project_ids_filter) <= 100) AND (ARRAY_POSITION(project_ids_filter, null) IS null))'
|
||||
add_check_constraint :analytics_cycle_analytics_value_stream_settings, check, NEW_CONSTRAINT_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_check_constraint :analytics_cycle_analytics_value_stream_settings, NEW_CONSTRAINT_NAME
|
||||
|
||||
check = '(CARDINALITY(project_ids_filter) <= 100)'
|
||||
add_check_constraint :analytics_cycle_analytics_value_stream_settings, check, OLD_CONSTRAINT_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ChangePushProtectedUpToAccessLevelToSmallintInPackagesProtectionRules < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
change_column :packages_protection_rules, :push_protected_up_to_access_level, :integer, limit: 2
|
||||
end
|
||||
|
||||
def down
|
||||
change_column :packages_protection_rules, :push_protected_up_to_access_level, :integer
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddExternalParticipantsFromCcToServiceDeskSettings < Gitlab::Database::Migration[2.1]
|
||||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
add_column :service_desk_settings, :add_external_participants_from_cc, :boolean, null: false, default: false
|
||||
end
|
||||
end
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddTaskRequestAttributesToZoektShards < Gitlab::Database::Migration[2.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
UNIQUE_UUID_INDEX = 'unique_zoekt_shards_uuid'
|
||||
LAST_SEEN_AT_INDEX = 'index_zoekt_shards_on_last_seen_at'
|
||||
|
||||
def up
|
||||
add_column :zoekt_shards, :uuid, :uuid, null: false, default: '00000000-00000000-00000000-00000000'
|
||||
add_column :zoekt_shards, :last_seen_at, :datetime_with_timezone, null: false, default: '1970-01-01'
|
||||
add_column :zoekt_shards, :used_bytes, :bigint, null: false, default: 0
|
||||
add_column :zoekt_shards, :total_bytes, :bigint, null: false, default: 0
|
||||
add_column :zoekt_shards, :metadata, :jsonb, default: {}, null: false
|
||||
|
||||
add_concurrent_index :zoekt_shards, :uuid, unique: true, name: UNIQUE_UUID_INDEX
|
||||
add_concurrent_index :zoekt_shards, :last_seen_at, name: LAST_SEEN_AT_INDEX
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :zoekt_shards, :uuid
|
||||
remove_column :zoekt_shards, :last_seen_at
|
||||
remove_column :zoekt_shards, :used_bytes
|
||||
remove_column :zoekt_shards, :total_bytes
|
||||
remove_column :zoekt_shards, :metadata
|
||||
|
||||
remove_concurrent_index :zoekt_shards, :uuid, name: UNIQUE_UUID_INDEX
|
||||
remove_concurrent_index :zoekt_shards, :last_seen_at, name: LAST_SEEN_AT_INDEX
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddManageProjectAccessTokensToMemberRoles < Gitlab::Database::Migration[2.1]
|
||||
def change
|
||||
add_column :member_roles, :manage_project_access_tokens, :boolean, default: false, null: false
|
||||
end
|
||||
end
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddAutoCanceledByPartitionIdToPCiBuilds < Gitlab::Database::Migration[2.1]
|
||||
def up
|
||||
# no-op
|
||||
# moved to db/migrate/20231020074227_add_auto_canceled_by_partition_id_to_p_ci_builds_self_managed.rb
|
||||
end
|
||||
|
||||
def down
|
||||
# no-op
|
||||
# moved to db/migrate/20231020074227_add_auto_canceled_by_partition_id_to_p_ci_builds_self_managed.rb
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddCreatedAtColumnToProjectComplianceFrameworkSettings < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.7'
|
||||
|
||||
def change
|
||||
add_column :project_compliance_framework_settings, :created_at, :datetime_with_timezone
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddIndexToProjectComplianceFrameworkSettingsCreatedAt < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.7'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
INDEX_CREATED_AT_TO_PROJECT_IDS = 'idx_on_project_id_created_at_for_compliance_framework_settings'
|
||||
|
||||
def up
|
||||
add_concurrent_index :project_compliance_framework_settings, [:project_id, :created_at],
|
||||
name: INDEX_CREATED_AT_TO_PROJECT_IDS
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :project_compliance_framework_settings, INDEX_CREATED_AT_TO_PROJECT_IDS
|
||||
end
|
||||
end
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemoveIndexEventsAuthorIdAndCreatedAt < Gitlab::Database::Migration[2.1]
|
||||
INDEX_NAME = 'index_events_on_author_id_and_created_at_merge_requests'
|
||||
|
||||
# TODO: Index to be destroyed synchronously in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127657
|
||||
def up
|
||||
prepare_async_index_removal :events,
|
||||
[:author_id, :created_at],
|
||||
name: INDEX_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
unprepare_async_index :events,
|
||||
[:author_id, :created_at],
|
||||
name: INDEX_NAME
|
||||
end
|
||||
end
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue