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:
Diffstat (limited to 'app/workers/jira_connect/sync_project_worker.rb')
-rw-r--r--app/workers/jira_connect/sync_project_worker.rb16
1 files changed, 13 insertions, 3 deletions
diff --git a/app/workers/jira_connect/sync_project_worker.rb b/app/workers/jira_connect/sync_project_worker.rb
index b0ebaf30e99..aa9784e4abb 100644
--- a/app/workers/jira_connect/sync_project_worker.rb
+++ b/app/workers/jira_connect/sync_project_worker.rb
@@ -3,6 +3,7 @@
module JiraConnect
class SyncProjectWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
+ include SortingTitlesValuesHelper
sidekiq_options retry: 3
queue_namespace :jira_connect
@@ -12,22 +13,31 @@ module JiraConnect
worker_has_external_dependencies!
- MERGE_REQUEST_LIMIT = 400
+ MAX_RECORDS_LIMIT = 400
def perform(project_id, update_sequence_id)
project = Project.find_by_id(project_id)
return if project.nil?
- JiraConnect::SyncService.new(project).execute(merge_requests: merge_requests_to_sync(project), update_sequence_id: update_sequence_id)
+ sync_params = { merge_requests: merge_requests_to_sync(project), update_sequence_id: update_sequence_id }
+ sync_params[:branches] = branches_to_sync(project) if Feature.enabled?(:jira_connect_sync_branches, project)
+
+ JiraConnect::SyncService.new(project).execute(**sync_params)
end
private
# rubocop: disable CodeReuse/ActiveRecord
def merge_requests_to_sync(project)
- project.merge_requests.with_jira_issue_keys.preload(:author).limit(MERGE_REQUEST_LIMIT).order(id: :desc)
+ project.merge_requests.with_jira_issue_keys.preload(:author).limit(MAX_RECORDS_LIMIT).order(id: :desc)
end
# rubocop: enable CodeReuse/ActiveRecord
+
+ def branches_to_sync(project)
+ project.repository.branches_sorted_by(SORT_UPDATED_RECENT).filter_map do |branch|
+ branch if branch.name.match(Gitlab::Regex.jira_issue_key_regex)
+ end.first(MAX_RECORDS_LIMIT)
+ end
end
end