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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2024-01-16 13:42:19 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2024-01-16 13:42:19 +0300
commit84d1bd786125c1c14a3ba5f63e38a4cc736a9027 (patch)
treef550fa965f507077e20dbb6d61a8269a99ef7107 /db/post_migrate/20231220115201_add_color_work_item_widget.rb
parent3a105e36e689f7b75482236712f1a47fd5a76814 (diff)
Add latest changes from gitlab-org/gitlab@16-8-stable-eev16.8.0-rc42
Diffstat (limited to 'db/post_migrate/20231220115201_add_color_work_item_widget.rb')
-rw-r--r--db/post_migrate/20231220115201_add_color_work_item_widget.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/db/post_migrate/20231220115201_add_color_work_item_widget.rb b/db/post_migrate/20231220115201_add_color_work_item_widget.rb
new file mode 100644
index 00000000000..eb410cb8b0b
--- /dev/null
+++ b/db/post_migrate/20231220115201_add_color_work_item_widget.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+class AddColorWorkItemWidget < Gitlab::Database::Migration[2.2]
+ milestone '16.8'
+
+ class WorkItemType < MigrationRecord
+ self.table_name = 'work_item_types'
+ end
+
+ class WidgetDefinition < MigrationRecord
+ self.table_name = 'work_item_widget_definitions'
+ end
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+ disable_ddl_transaction!
+
+ WIDGET_NAME = 'Color'
+ WIDGET_ENUM_VALUE = 18
+ WORK_ITEM_TYPE = 'Epic'
+
+ def up
+ type = WorkItemType.find_by_name_and_namespace_id(WORK_ITEM_TYPE, nil)
+
+ unless type
+ Gitlab::AppLogger.warn("type #{WORK_ITEM_TYPE} is missing, not adding widget")
+ return
+ end
+
+ widget = {
+ work_item_type_id: type.id,
+ name: WIDGET_NAME,
+ widget_type: WIDGET_ENUM_VALUE
+ }
+
+ WidgetDefinition.upsert_all(
+ [widget],
+ unique_by: :index_work_item_widget_definitions_on_default_witype_and_name
+ )
+ end
+
+ def down
+ WidgetDefinition.where(name: WIDGET_NAME).delete_all
+ end
+end