diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2018-08-27 17:31:01 +0200 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2018-09-11 17:32:00 +0200 |
commit | 2039c8280db1646845c33d6c5a74e5f23ca6f4de (patch) | |
tree | e2b3cd3012d9711cda7c6afb962ae4228d59521a /app/services/projects | |
parent | 91c40973dc620430b173ea2df968587d2a708dff (diff) | |
download | gitlab-ce-2039c8280db1646845c33d6c5a74e5f23ca6f4de.tar.gz |
Disable existing offenses for the CodeReuse cops
This whitelists all existing offenses for the various CodeReuse cops, of
which most are triggered by the CodeReuse/ActiveRecord cop.
Diffstat (limited to 'app/services/projects')
26 files changed, 72 insertions, 0 deletions
diff --git a/app/services/projects/auto_devops/disable_service.rb b/app/services/projects/auto_devops/disable_service.rb index 9745ab67dbd..1b578a3c5ce 100644 --- a/app/services/projects/auto_devops/disable_service.rb +++ b/app/services/projects/auto_devops/disable_service.rb @@ -21,10 +21,12 @@ module Projects # is an expensive operation. See # https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21172#note_99037378 # for more context. + # rubocop: disable CodeReuse/ActiveRecord def first_pipeline_failure? auto_devops_pipelines.success.limit(1).count.zero? && auto_devops_pipelines.failed.limit(1).count.nonzero? end + # rubocop: enable CodeReuse/ActiveRecord def disable_auto_devops project.auto_devops_attributes = { enabled: false } diff --git a/app/services/projects/base_move_relations_service.rb b/app/services/projects/base_move_relations_service.rb index 78cc2869b72..24dec1f3a45 100644 --- a/app/services/projects/base_move_relations_service.rb +++ b/app/services/projects/base_move_relations_service.rb @@ -13,6 +13,7 @@ module Projects private + # rubocop: disable CodeReuse/ActiveRecord def prepare_relation(relation, id_param = :id) if Gitlab::Database.postgresql? relation @@ -20,5 +21,6 @@ module Projects relation.model.where("#{id_param}": relation.pluck(id_param)) end end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/batch_forks_count_service.rb b/app/services/projects/batch_forks_count_service.rb index 9bf369df999..6467744a435 100644 --- a/app/services/projects/batch_forks_count_service.rb +++ b/app/services/projects/batch_forks_count_service.rb @@ -5,6 +5,7 @@ # because the service use maps to retrieve the project ids module Projects class BatchForksCountService < Projects::BatchCountService + # rubocop: disable CodeReuse/ActiveRecord def global_count @global_count ||= begin count_service.query(project_ids) @@ -12,6 +13,7 @@ module Projects .count end end + # rubocop: enable CodeReuse/ActiveRecord def count_service ::Projects::ForksCountService diff --git a/app/services/projects/batch_open_issues_count_service.rb b/app/services/projects/batch_open_issues_count_service.rb index d375fcf9dbd..d6ff2291af8 100644 --- a/app/services/projects/batch_open_issues_count_service.rb +++ b/app/services/projects/batch_open_issues_count_service.rb @@ -5,11 +5,13 @@ # because the service use maps to retrieve the project ids module Projects class BatchOpenIssuesCountService < Projects::BatchCountService + # rubocop: disable CodeReuse/ActiveRecord def global_count @global_count ||= begin count_service.query(project_ids).group(:project_id).count end end + # rubocop: enable CodeReuse/ActiveRecord def count_service ::Projects::OpenIssuesCountService diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index 02a3a3eb096..0e6a7e8da54 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -79,17 +79,21 @@ module Projects @project.errors.add(:namespace, "is not valid") end + # rubocop: disable CodeReuse/ActiveRecord def allowed_fork?(source_project_id) return true if source_project_id.nil? source_project = Project.find_by(id: source_project_id) current_user.can?(:fork_project, source_project) end + # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord def allowed_namespace?(user, namespace_id) namespace = Namespace.find_by(id: namespace_id) current_user.can?(:create_projects, namespace) end + # rubocop: enable CodeReuse/ActiveRecord def after_create_actions log_info("#{@project.owner.name} created a new project \"#{@project.full_name}\"") @@ -167,12 +171,14 @@ module Projects @project end + # rubocop: disable CodeReuse/ActiveRecord def create_services_from_active_templates(project) Service.where(template: true, active: true).each do |template| service = Service.build_from_template(project.id, template) service.save! end end + # rubocop: enable CodeReuse/ActiveRecord def set_project_name_from_path # Set project name from path diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb index 01de6afcd8e..5090ebf8f51 100644 --- a/app/services/projects/destroy_service.rb +++ b/app/services/projects/destroy_service.rb @@ -107,15 +107,19 @@ module Projects mv_repository(old_path, new_path) end + # rubocop: disable CodeReuse/ActiveRecord def repo_exists?(path) gitlab_shell.exists?(project.repository_storage, path + '.git') end + # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord def mv_repository(from_path, to_path) return true unless gitlab_shell.exists?(project.repository_storage, from_path + '.git') gitlab_shell.mv_repository(project.repository_storage, from_path, to_path) end + # rubocop: enable CodeReuse/ActiveRecord def attempt_rollback(project, message) return unless project diff --git a/app/services/projects/detect_repository_languages_service.rb b/app/services/projects/detect_repository_languages_service.rb index 3488b9ce47e..4a837a4fb6a 100644 --- a/app/services/projects/detect_repository_languages_service.rb +++ b/app/services/projects/detect_repository_languages_service.rb @@ -4,6 +4,7 @@ module Projects class DetectRepositoryLanguagesService < BaseService attr_reader :detected_repository_languages, :programming_languages + # rubocop: disable CodeReuse/ActiveRecord def execute repository_languages = project.repository_languages detection = Gitlab::LanguageDetection.new(repository, repository_languages) @@ -28,9 +29,11 @@ module Projects project.repository_languages.reload end + # rubocop: enable CodeReuse/ActiveRecord private + # rubocop: disable CodeReuse/ActiveRecord def ensure_programming_languages(detection) existing_languages = ProgrammingLanguage.where(name: detection.languages) return existing_languages if detection.languages.size == existing_languages.size @@ -42,7 +45,9 @@ module Projects existing_languages + created_languages end + # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord def create_language(name, color) ProgrammingLanguage.transaction do ProgrammingLanguage.where(name: name).first_or_create(color: color) @@ -50,5 +55,6 @@ module Projects rescue ActiveRecord::RecordNotUnique retry end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/enable_deploy_key_service.rb b/app/services/projects/enable_deploy_key_service.rb index b7c172028e9..102088e9557 100644 --- a/app/services/projects/enable_deploy_key_service.rb +++ b/app/services/projects/enable_deploy_key_service.rb @@ -2,6 +2,7 @@ module Projects class EnableDeployKeyService < BaseService + # rubocop: disable CodeReuse/ActiveRecord def execute key = accessible_keys.find_by(id: params[:key_id] || params[:id]) return unless key @@ -12,6 +13,7 @@ module Projects key end + # rubocop: enable CodeReuse/ActiveRecord private diff --git a/app/services/projects/forks_count_service.rb b/app/services/projects/forks_count_service.rb index b570c6d4754..00e73148358 100644 --- a/app/services/projects/forks_count_service.rb +++ b/app/services/projects/forks_count_service.rb @@ -7,11 +7,13 @@ module Projects 'forks_count' end + # rubocop: disable CodeReuse/ActiveRecord def self.query(project_ids) # We can't directly change ForkedProjectLink to ForkNetworkMember here # Nowadays, when a call using v3 to projects/:id/fork is made, # the relationship to ForkNetworkMember is not updated ForkedProjectLink.where(forked_from_project: project_ids) end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/gitlab_projects_import_service.rb b/app/services/projects/gitlab_projects_import_service.rb index 044afa1d5e1..a315adf42f0 100644 --- a/app/services/projects/gitlab_projects_import_service.rb +++ b/app/services/projects/gitlab_projects_import_service.rb @@ -32,11 +32,13 @@ module Projects Project.find_by_full_path("#{current_namespace.full_path}/#{params[:path]}").present? end + # rubocop: disable CodeReuse/ActiveRecord def current_namespace strong_memoize(:current_namespace) do Namespace.find_by(id: params[:namespace_id]) end end + # rubocop: enable CodeReuse/ActiveRecord def overwrite? strong_memoize(:overwrite) do diff --git a/app/services/projects/hashed_storage/migrate_repository_service.rb b/app/services/projects/hashed_storage/migrate_repository_service.rb index 641d46e6591..4462d504071 100644 --- a/app/services/projects/hashed_storage/migrate_repository_service.rb +++ b/app/services/projects/hashed_storage/migrate_repository_service.rb @@ -47,10 +47,13 @@ module Projects private + # rubocop: disable CodeReuse/ActiveRecord def has_wiki? gitlab_shell.exists?(project.repository_storage, "#{old_wiki_disk_path}.git") end + # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord def move_repository(from_name, to_name) from_exists = gitlab_shell.exists?(project.repository_storage, "#{from_name}.git") to_exists = gitlab_shell.exists?(project.repository_storage, "#{to_name}.git") @@ -67,6 +70,7 @@ module Projects gitlab_shell.mv_repository(project.repository_storage, from_name, to_name) end + # rubocop: enable CodeReuse/ActiveRecord def rollback_folder_move move_repository(new_disk_path, old_disk_path) diff --git a/app/services/projects/lfs_pointers/lfs_download_service.rb b/app/services/projects/lfs_pointers/lfs_download_service.rb index 7d4fa4e08df..1c4a8d05be6 100644 --- a/app/services/projects/lfs_pointers/lfs_download_service.rb +++ b/app/services/projects/lfs_pointers/lfs_download_service.rb @@ -4,6 +4,7 @@ module Projects module LfsPointers class LfsDownloadService < BaseService + # rubocop: disable CodeReuse/ActiveRecord def execute(oid, url) return unless project&.lfs_enabled? && oid.present? && url.present? @@ -20,6 +21,7 @@ module Projects rescue StandardError => e Rails.logger.error("LFS file with oid #{oid} could't be downloaded from #{sanitized_uri.sanitized_url}: #{e.message}") end + # rubocop: enable CodeReuse/ActiveRecord private diff --git a/app/services/projects/lfs_pointers/lfs_import_service.rb b/app/services/projects/lfs_pointers/lfs_import_service.rb index 97ce681a911..9215fa0a7bf 100644 --- a/app/services/projects/lfs_pointers/lfs_import_service.rb +++ b/app/services/projects/lfs_pointers/lfs_import_service.rb @@ -41,6 +41,7 @@ module Projects project.update(lfs_enabled: false) end + # rubocop: disable CodeReuse/ActiveRecord def get_download_links existent_lfs = LfsListService.new(project).execute linked_oids = LfsLinkService.new(project).execute(existent_lfs.keys) @@ -50,6 +51,7 @@ module Projects LfsDownloadLinkListService.new(project, remote_uri: current_endpoint_uri).execute(not_linked_lfs) end + # rubocop: enable CodeReuse/ActiveRecord def lfsconfig_endpoint_uri strong_memoize(:lfsconfig_endpoint_uri) do diff --git a/app/services/projects/lfs_pointers/lfs_link_service.rb b/app/services/projects/lfs_pointers/lfs_link_service.rb index a2eba8e124e..8401f3d1d89 100644 --- a/app/services/projects/lfs_pointers/lfs_link_service.rb +++ b/app/services/projects/lfs_pointers/lfs_link_service.rb @@ -16,6 +16,7 @@ module Projects private + # rubocop: disable CodeReuse/ActiveRecord def link_existing_lfs_objects(oids) existent_lfs_objects = LfsObject.where(oid: oids) @@ -26,6 +27,7 @@ module Projects existent_lfs_objects.pluck(:oid) end + # rubocop: enable CodeReuse/ActiveRecord end end end diff --git a/app/services/projects/move_deploy_keys_projects_service.rb b/app/services/projects/move_deploy_keys_projects_service.rb index 9f3f44f30ea..b6a3af8c7b8 100644 --- a/app/services/projects/move_deploy_keys_projects_service.rb +++ b/app/services/projects/move_deploy_keys_projects_service.rb @@ -20,11 +20,13 @@ module Projects .update_all(project_id: @project.id) end + # rubocop: disable CodeReuse/ActiveRecord def non_existent_deploy_keys_projects source_project.deploy_keys_projects .joins(:deploy_key) .where.not(keys: { fingerprint: @project.deploy_keys.select(:fingerprint) }) end + # rubocop: enable CodeReuse/ActiveRecord def remove_remaining_deploy_keys_projects source_project.deploy_keys_projects.destroy_all # rubocop: disable DestroyAll diff --git a/app/services/projects/move_forks_service.rb b/app/services/projects/move_forks_service.rb index 076a7a50aa9..2948555a17c 100644 --- a/app/services/projects/move_forks_service.rb +++ b/app/services/projects/move_forks_service.rb @@ -17,6 +17,7 @@ module Projects private + # rubocop: disable CodeReuse/ActiveRecord def move_forked_project_links # Update ancestor ForkedProjectLink.where(forked_to_project: source_project) @@ -26,16 +27,21 @@ module Projects ForkedProjectLink.where(forked_from_project: source_project) .update_all(forked_from_project_id: @project.id) end + # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord def move_fork_network_members ForkNetworkMember.where(project: source_project).update_all(project_id: @project.id) ForkNetworkMember.where(forked_from_project: source_project).update_all(forked_from_project_id: @project.id) end + # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord def update_root_project # Update root network project ForkNetwork.where(root_project: source_project).update_all(root_project_id: @project.id) end + # rubocop: enable CodeReuse/ActiveRecord def refresh_forks_count Projects::ForksCountService.new(@project).refresh_cache diff --git a/app/services/projects/move_lfs_objects_projects_service.rb b/app/services/projects/move_lfs_objects_projects_service.rb index f78546a1e9c..308a54ad06e 100644 --- a/app/services/projects/move_lfs_objects_projects_service.rb +++ b/app/services/projects/move_lfs_objects_projects_service.rb @@ -24,8 +24,10 @@ module Projects source_project.lfs_objects_projects.destroy_all # rubocop: disable DestroyAll end + # rubocop: disable CodeReuse/ActiveRecord def non_existent_lfs_objects_projects source_project.lfs_objects_projects.where.not(lfs_object: @project.lfs_objects) end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/move_notification_settings_service.rb b/app/services/projects/move_notification_settings_service.rb index 109a00dd6d9..e740c44bd26 100644 --- a/app/services/projects/move_notification_settings_service.rb +++ b/app/services/projects/move_notification_settings_service.rb @@ -31,10 +31,12 @@ module Projects end # Look for notification_settings in source_project that are not in the target project + # rubocop: disable CodeReuse/ActiveRecord def non_existent_notifications source_project.notification_settings .select(:id) .where.not(user_id: users_in_target_project) end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/move_project_authorizations_service.rb b/app/services/projects/move_project_authorizations_service.rb index 60f2af88e99..2060a263751 100644 --- a/app/services/projects/move_project_authorizations_service.rb +++ b/app/services/projects/move_project_authorizations_service.rb @@ -33,10 +33,12 @@ module Projects end # Look for authorizations in source_project that are not in the target project + # rubocop: disable CodeReuse/ActiveRecord def non_existent_authorization source_project.project_authorizations .select(:user_id) .where.not(user: @project.authorized_users) end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/move_project_group_links_service.rb b/app/services/projects/move_project_group_links_service.rb index 1efafdce36d..fb395ecb9a1 100644 --- a/app/services/projects/move_project_group_links_service.rb +++ b/app/services/projects/move_project_group_links_service.rb @@ -34,9 +34,11 @@ module Projects end # Look for groups in source_project that are not in the target project + # rubocop: disable CodeReuse/ActiveRecord def non_existent_group_links source_project.project_group_links .where.not(group_id: group_links_in_target_project) end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/move_project_members_service.rb b/app/services/projects/move_project_members_service.rb index ec983582d94..f28f44adc03 100644 --- a/app/services/projects/move_project_members_service.rb +++ b/app/services/projects/move_project_members_service.rb @@ -33,10 +33,12 @@ module Projects end # Look for members in source_project that are not in the target project + # rubocop: disable CodeReuse/ActiveRecord def non_existent_members source_project.members .select(:id) .where.not(user_id: @project.project_members.select(:user_id)) end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/open_issues_count_service.rb b/app/services/projects/open_issues_count_service.rb index 5d6620c3c54..ee9884e9042 100644 --- a/app/services/projects/open_issues_count_service.rb +++ b/app/services/projects/open_issues_count_service.rb @@ -42,6 +42,7 @@ module Projects cache_key(TOTAL_COUNT_KEY) end + # rubocop: disable CodeReuse/ActiveRecord def refresh_cache(&block) if block_given? super(&block) @@ -59,11 +60,13 @@ module Projects end end end + # rubocop: enable CodeReuse/ActiveRecord # We only show total issues count for reporters # which are allowed to view confidential issues # This will still show a discrepancy on issues number but should be less than before. # Check https://gitlab.com/gitlab-org/gitlab-ce/issues/38418 description. + # rubocop: disable CodeReuse/ActiveRecord def self.query(projects, public_only: true) if public_only Issue.opened.public_only.where(project: projects) @@ -71,5 +74,6 @@ module Projects Issue.opened.where(project: projects) end end + # rubocop: enable CodeReuse/ActiveRecord end end diff --git a/app/services/projects/propagate_service_template.rb b/app/services/projects/propagate_service_template.rb index fdfa91801ab..633a263af7b 100644 --- a/app/services/projects/propagate_service_template.rb +++ b/app/services/projects/propagate_service_template.rb @@ -70,6 +70,7 @@ module Projects ) end + # rubocop: disable CodeReuse/ActiveRecord def service_hash @service_hash ||= begin @@ -83,7 +84,9 @@ module Projects end end end + # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord def run_callbacks(batch) if active_external_issue_tracker? Project.where(id: batch).update_all(has_external_issue_tracker: true) @@ -93,6 +96,7 @@ module Projects Project.where(id: batch).update_all(has_external_wiki: true) end end + # rubocop: enable CodeReuse/ActiveRecord def active_external_issue_tracker? @template.issue_tracker? && !@template.default diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb index 3746cfef702..9d40ab166ff 100644 --- a/app/services/projects/transfer_service.rb +++ b/app/services/projects/transfer_service.rb @@ -37,6 +37,7 @@ module Projects private + # rubocop: disable CodeReuse/ActiveRecord def transfer(project) @old_path = project.full_path @old_group = project.group @@ -54,6 +55,7 @@ module Projects attempt_transfer_transaction end + # rubocop: enable CodeReuse/ActiveRecord def attempt_transfer_transaction Project.transaction do diff --git a/app/services/projects/unlink_fork_service.rb b/app/services/projects/unlink_fork_service.rb index 2c0d91fe34f..a8b7c7f136a 100644 --- a/app/services/projects/unlink_fork_service.rb +++ b/app/services/projects/unlink_fork_service.rb @@ -2,6 +2,7 @@ module Projects class UnlinkForkService < BaseService + # rubocop: disable CodeReuse/ActiveRecord def execute return unless @project.forked? @@ -26,6 +27,7 @@ module Projects @project.fork_network_member.destroy @project.forked_project_link.destroy end + # rubocop: enable CodeReuse/ActiveRecord def refresh_forks_count(project) Projects::ForksCountService.new(project).refresh_cache diff --git a/app/services/projects/update_service.rb b/app/services/projects/update_service.rb index e390d7a04c3..d6d9bacf232 100644 --- a/app/services/projects/update_service.rb +++ b/app/services/projects/update_service.rb @@ -6,6 +6,7 @@ module Projects ValidationError = Class.new(StandardError) + # rubocop: disable CodeReuse/ActiveRecord def execute validate! @@ -26,6 +27,7 @@ module Projects rescue ValidationError => e error(e.message) end + # rubocop: enable CodeReuse/ActiveRecord def run_auto_devops_pipeline? return false if project.repository.gitlab_ci_yml || !project.auto_devops&.previous_changes&.include?('enabled') |