summaryrefslogtreecommitdiff
path: root/app/services/jira_import/start_import_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/jira_import/start_import_service.rb')
-rw-r--r--app/services/jira_import/start_import_service.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/services/jira_import/start_import_service.rb b/app/services/jira_import/start_import_service.rb
index 6accc3cfffc..e8d9e6734bd 100644
--- a/app/services/jira_import/start_import_service.rb
+++ b/app/services/jira_import/start_import_service.rb
@@ -33,8 +33,10 @@ module JiraImport
end
def build_jira_import
+ label = create_import_label(project)
project.jira_imports.build(
user: user,
+ label: label,
jira_project_key: jira_project_key,
# we do not have the jira_project_name or jira_project_xid yet so just set a mock value,
# we will once https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28190
@@ -43,6 +45,22 @@ module JiraImport
)
end
+ def create_import_label(project)
+ label = ::Labels::CreateService.new(build_label_attrs(project)).execute(project: project)
+ raise Projects::ImportService::Error, _('Failed to create import label for jira import.') if label.blank?
+
+ label
+ end
+
+ def build_label_attrs(project)
+ import_start_time = Time.zone.now
+ jira_imports_for_project = project.jira_imports.by_jira_project_key(jira_project_key).size + 1
+ title = "jira-import::#{jira_project_key}-#{jira_imports_for_project}"
+ description = "Label for issues that were imported from jira on #{import_start_time.strftime('%Y-%m-%d %H:%M:%S')}"
+ color = "#{Label.color_for(title)}"
+ { title: title, description: description, color: color }
+ end
+
def validate
return build_error_response(_('Jira import feature is disabled.')) unless project.jira_issues_import_feature_flag_enabled?
return build_error_response(_('You do not have permissions to run the import.')) unless user.can?(:admin_project, project)