Adds Rubocop rule for line break around conditionals
This commit is contained in:
parent
ca8394e8e4
commit
729f05f0e3
|
|
@ -65,6 +65,7 @@ class Admin::RunnersController < Admin::ApplicationController
|
|||
else
|
||||
Project.all
|
||||
end
|
||||
|
||||
@projects = @projects.where.not(id: runner.projects.select(:id)) if runner.projects.any?
|
||||
@projects = @projects.page(params[:page]).per(30)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ module GroupTree
|
|||
# Only show root groups if no parent-id is given
|
||||
groups.where(parent_id: params[:parent_id])
|
||||
end
|
||||
|
||||
@groups = @groups.with_selects_for_list(archived: params[:archived])
|
||||
.sort(@sort = params[:sort])
|
||||
.page(params[:page])
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ module RoutableActions
|
|||
if canonical_path.casecmp(requested_full_path) != 0
|
||||
flash[:notice] = "#{routable.class.to_s.titleize} '#{requested_full_path}' was moved to '#{canonical_path}'. Please update any links and bookmarks that may still have the old path."
|
||||
end
|
||||
|
||||
redirect_to build_canonical_path(routable)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ class MetricsController < ActionController::Base
|
|||
)
|
||||
"# Metrics are disabled, see: #{help_page}\n"
|
||||
end
|
||||
|
||||
render text: response, content_type: 'text/plain; version=0.0.4'
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
|||
if ticket
|
||||
handle_service_ticket oauth['provider'], ticket
|
||||
end
|
||||
|
||||
handle_omniauth
|
||||
end
|
||||
|
||||
|
|
@ -90,6 +91,7 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
|||
if params['sid']
|
||||
handle_service_ticket oauth['provider'], params['sid']
|
||||
end
|
||||
|
||||
handle_omniauth
|
||||
end
|
||||
|
||||
|
|
@ -124,6 +126,7 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
|||
# Only allow properly saved users to login.
|
||||
if @user.persisted? && @user.valid?
|
||||
log_audit_event(@user, with: oauth['provider'])
|
||||
|
||||
if @user.two_factor_enabled?
|
||||
params[:remember_me] = '1' if remember_me?
|
||||
prompt_for_two_factor(@user)
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ class Projects::BlobController < Projects::ApplicationController
|
|||
if params[:file].present?
|
||||
params[:file_name] = params[:file].original_filename
|
||||
end
|
||||
|
||||
File.join(@path, params[:file_name])
|
||||
elsif params[:file_path].present?
|
||||
params[:file_path]
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ class Projects::DeployKeysController < Projects::ApplicationController
|
|||
unless @key.valid? && @project.deploy_keys << @key
|
||||
flash[:alert] = @key.errors.full_messages.join(', ').html_safe
|
||||
end
|
||||
|
||||
redirect_to_repository_settings(@project)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ class Projects::HooksController < Projects::ApplicationController
|
|||
@hooks = @project.hooks.select(&:persisted?)
|
||||
flash[:alert] = @hook.errors.full_messages.join.html_safe
|
||||
end
|
||||
|
||||
redirect_to project_settings_integrations_path(@project)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap
|
|||
else
|
||||
[]
|
||||
end
|
||||
|
||||
@diff_notes_disabled = true
|
||||
|
||||
@environment = @merge_request.environments_for(current_user).last
|
||||
|
|
|
|||
|
|
@ -203,6 +203,7 @@ class ProjectsController < Projects::ApplicationController
|
|||
else
|
||||
flash[:alert] = _("Project export could not be deleted.")
|
||||
end
|
||||
|
||||
redirect_to(edit_project_path(@project))
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ class SessionsController < Devise::SessionsController
|
|||
resource.update_attributes(reset_password_token: nil,
|
||||
reset_password_sent_at: nil)
|
||||
end
|
||||
|
||||
# hide the signed-in notification
|
||||
flash[:notice] = nil
|
||||
log_audit_event(current_user, resource, with: authentication_method)
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ class GroupDescendantsFinder
|
|||
groups_table = Group.arel_table
|
||||
visible_to_user = groups_table[:visibility_level]
|
||||
.in(Gitlab::VisibilityLevel.levels_for_user(current_user))
|
||||
|
||||
if current_user
|
||||
authorized_groups = GroupsFinder.new(current_user,
|
||||
all_available: false)
|
||||
|
|
@ -115,6 +116,7 @@ class GroupDescendantsFinder
|
|||
else
|
||||
direct_child_groups
|
||||
end
|
||||
|
||||
groups.with_selects_for_list(archived: params[:archived]).order_by(sort)
|
||||
end
|
||||
|
||||
|
|
@ -140,6 +142,7 @@ class GroupDescendantsFinder
|
|||
else
|
||||
direct_child_projects
|
||||
end
|
||||
|
||||
projects.with_route.order_by(sort)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ class GroupProjectsFinder < ProjectsFinder
|
|||
else
|
||||
collection_without_user
|
||||
end
|
||||
|
||||
union(projects)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -203,6 +203,7 @@ module MarkupHelper
|
|||
node.content = node.content.truncate(num_remaining)
|
||||
truncated = true
|
||||
end
|
||||
|
||||
content_length += node.content.length
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ module NavHelper
|
|||
current_path?('projects/merge_requests/conflicts#show') ||
|
||||
current_path?('issues#show') ||
|
||||
current_path?('milestones#show')
|
||||
|
||||
if cookies[:collapsed_gutter] == 'true'
|
||||
%w[page-gutter right-sidebar-collapsed]
|
||||
else
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ module SnippetsHelper
|
|||
snippet_chunk = [lined_content[line_number]]
|
||||
snippet_start_line = line_number
|
||||
end
|
||||
|
||||
last_line = line_number
|
||||
end
|
||||
# Add final chunk to chunk array
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ module SubmoduleHelper
|
|||
url_no_dotgit = url.chomp('.git')
|
||||
return true if url_no_dotgit == [Gitlab.config.gitlab.url, '/', namespace, '/',
|
||||
project].join('')
|
||||
|
||||
url_with_dotgit = url_no_dotgit + '.git'
|
||||
url_with_dotgit == Gitlab::Shell.new.url_to_repo([namespace, '/', project].join(''))
|
||||
end
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ module TodosHelper
|
|||
else
|
||||
todo.target_reference
|
||||
end
|
||||
|
||||
link_to text, todo_target_path(todo), class: 'has-tooltip', title: todo.target.title
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -418,6 +418,7 @@ class ApplicationSetting < ActiveRecord::Base
|
|||
super(group_full_path)
|
||||
Gitlab::PerformanceBar.expire_allowed_user_ids_cache
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -314,6 +314,7 @@ module Issuable
|
|||
includes = []
|
||||
includes << :author unless notes.authors_loaded?
|
||||
includes << :award_emoji unless notes.award_emojis_loaded?
|
||||
|
||||
if includes.any?
|
||||
notes.includes(includes)
|
||||
else
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ module LoadedInGroupList
|
|||
|
||||
base_count = projects.project(Arel.star.count.as('preloaded_project_count'))
|
||||
.where(projects[:namespace_id].eq(namespaces[:id]))
|
||||
|
||||
if archived == 'only'
|
||||
base_count.where(projects[:archived].eq(true))
|
||||
elsif Gitlab::Utils.to_boolean(archived)
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ class Label < ActiveRecord::Base
|
|||
else
|
||||
priorities.find_by(project: project)
|
||||
end
|
||||
|
||||
priority.try(:priority)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -793,6 +793,7 @@ class MergeRequest < ActiveRecord::Base
|
|||
if !include_description && closes_issues_references.present?
|
||||
message << "Closes #{closes_issues_references.to_sentence}"
|
||||
end
|
||||
|
||||
message << "#{description}" if include_description && description.present?
|
||||
message << "See merge request #{to_reference(full: true)}"
|
||||
|
||||
|
|
|
|||
|
|
@ -224,6 +224,7 @@ module Network
|
|||
space_base = parents.first.space
|
||||
end
|
||||
end
|
||||
|
||||
space_base
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ class NotificationRecipient
|
|||
group: nil,
|
||||
skip_read_ability: false
|
||||
)
|
||||
|
||||
unless NotificationSetting.levels.key?(type) || type == :subscription
|
||||
raise ArgumentError, "invalid type: #{type.inspect}"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -633,6 +633,7 @@ class Project < ActiveRecord::Base
|
|||
project_import_data.data ||= {}
|
||||
project_import_data.data = project_import_data.data.merge(data)
|
||||
end
|
||||
|
||||
if credentials
|
||||
project_import_data.credentials ||= {}
|
||||
project_import_data.credentials = project_import_data.credentials.merge(credentials)
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ class HipchatService < Service
|
|||
|
||||
message = ""
|
||||
message << "#{push[:user_name]} "
|
||||
|
||||
if Gitlab::Git.blank_ref?(before)
|
||||
message << "pushed new #{ref_type} <a href=\""\
|
||||
"#{project_url}/commits/#{CGI.escape(ref)}\">#{ref}</a>"\
|
||||
|
|
|
|||
|
|
@ -1014,6 +1014,7 @@ class Repository
|
|||
else
|
||||
cache.fetch(key, &block)
|
||||
end
|
||||
|
||||
instance_variable_set(ivar, value)
|
||||
rescue Rugged::ReferenceError, Gitlab::Git::Repository::NoRepository
|
||||
# Even if the above `#exists?` check passes these errors might still
|
||||
|
|
|
|||
|
|
@ -250,6 +250,7 @@ class Service < ActiveRecord::Base
|
|||
teamcity
|
||||
microsoft_teams
|
||||
]
|
||||
|
||||
if Rails.env.development?
|
||||
service_names += %w[mock_ci mock_deployment mock_monitoring]
|
||||
end
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class CreateDeploymentService
|
|||
ActiveRecord::Base.transaction do
|
||||
environment.external_url = expanded_environment_url if
|
||||
expanded_environment_url
|
||||
|
||||
environment.fire_state_event(action)
|
||||
|
||||
return unless environment.save
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ class PagesWorker
|
|||
if result[:status] == :success
|
||||
result = Projects::UpdatePagesConfigurationService.new(build.project).execute
|
||||
end
|
||||
|
||||
result
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Adds Rubocop rule for line break around conditionals
|
||||
merge_request: 15739
|
||||
author: Jacopo Beschi @jacopo-beschi
|
||||
type: added
|
||||
|
|
@ -151,6 +151,7 @@ module Gitlab
|
|||
caching_config_hash[:pool_size] = Sidekiq.options[:concurrency] + 5
|
||||
caching_config_hash[:pool_timeout] = 1
|
||||
end
|
||||
|
||||
config.cache_store = :redis_store, caching_config_hash
|
||||
|
||||
config.active_record.raise_in_transactional_callbacks = true
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ class Settings < Settingslogic
|
|||
end
|
||||
values.delete_if { |value| value.nil? }
|
||||
end
|
||||
|
||||
values
|
||||
end
|
||||
|
||||
|
|
@ -78,6 +79,7 @@ class Settings < Settingslogic
|
|||
if current.is_a? String
|
||||
value = modul.const_get(current.upcase) rescue default
|
||||
end
|
||||
|
||||
value
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -241,6 +241,7 @@ Devise.setup do |config|
|
|||
true
|
||||
end
|
||||
end
|
||||
|
||||
if provider['name'] == 'authentiq'
|
||||
provider['args'][:remote_sign_out_handler] = lambda do |request|
|
||||
authentiq_session = request.params['sid']
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ Rails.application.config.peek.adapter = :redis, { client: ::Redis.new(Gitlab::Re
|
|||
|
||||
Peek.into Peek::Views::Host
|
||||
Peek.into Peek::Views::PerformanceBar
|
||||
|
||||
if Gitlab::Database.mysql?
|
||||
require 'peek-mysql2'
|
||||
PEEK_DB_CLIENT = ::Mysql2::Client
|
||||
|
|
@ -11,6 +12,7 @@ else
|
|||
PEEK_DB_CLIENT = ::PG::Connection
|
||||
PEEK_DB_VIEW = Peek::Views::PG
|
||||
end
|
||||
|
||||
Peek.into PEEK_DB_VIEW
|
||||
Peek.into Peek::Views::Redis
|
||||
Peek.into Peek::Views::Sidekiq
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ class CreateForkNetworks < ActiveRecord::Migration
|
|||
if foreign_keys_for(:fork_networks, :root_project_id).any?
|
||||
remove_foreign_key :fork_networks, column: :root_project_id
|
||||
end
|
||||
|
||||
drop_table :fork_networks
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ class CreateForkNetworkMembers < ActiveRecord::Migration
|
|||
if foreign_keys_for(:fork_network_members, :forked_from_project_id).any?
|
||||
remove_foreign_key :fork_network_members, column: :forked_from_project_id
|
||||
end
|
||||
|
||||
drop_table :fork_network_members
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ class AddIndexOnNamespacesLowerName < ActiveRecord::Migration
|
|||
return unless Gitlab::Database.postgresql?
|
||||
|
||||
disable_statement_timeout
|
||||
|
||||
if Gitlab::Database.version.to_f >= 9.5
|
||||
# Allow us to hot-patch the index manually ahead of the migration
|
||||
execute "CREATE INDEX CONCURRENTLY IF NOT EXISTS #{INDEX_NAME} ON namespaces (lower(name));"
|
||||
|
|
@ -21,6 +22,7 @@ class AddIndexOnNamespacesLowerName < ActiveRecord::Migration
|
|||
return unless Gitlab::Database.postgresql?
|
||||
|
||||
disable_statement_timeout
|
||||
|
||||
if Gitlab::Database.version.to_f >= 9.2
|
||||
execute "DROP INDEX CONCURRENTLY IF EXISTS #{INDEX_NAME};"
|
||||
else
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ class RenameUsersWithRenamedNamespace < ActiveRecord::Migration
|
|||
predicate = namespaces[:owner_id].eq(users[:id])
|
||||
.and(namespaces[:type].eq(nil))
|
||||
.and(users[:username].matches(path))
|
||||
|
||||
update_sql = if Gitlab::Database.postgresql?
|
||||
"UPDATE users SET username = namespaces.path "\
|
||||
"FROM namespaces WHERE #{predicate.to_sql}"
|
||||
|
|
|
|||
|
|
@ -180,11 +180,13 @@ class Spinach::Features::ProjectCommits < Spinach::FeatureSteps
|
|||
dropdown.find(".compare-dropdown-toggle").click
|
||||
dropdown.find('.dropdown-menu', visible: true)
|
||||
dropdown.fill_in("Filter by Git revision", with: selection)
|
||||
|
||||
if is_commit
|
||||
dropdown.find('input[type="search"]').send_keys(:return)
|
||||
else
|
||||
find_link(selection, visible: true).click
|
||||
end
|
||||
|
||||
dropdown.find('.dropdown-menu', visible: false)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ module API
|
|||
check_unmodified_since!(last_updated)
|
||||
|
||||
status 204
|
||||
|
||||
if block_given?
|
||||
yield resource
|
||||
else
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@ module API
|
|||
elsif params[:user_id]
|
||||
user = User.find_by(id: params[:user_id])
|
||||
end
|
||||
|
||||
present user, with: Entities::UserSafe
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -175,6 +175,7 @@ module API
|
|||
issue = ::Issues::CreateService.new(user_project,
|
||||
current_user,
|
||||
issue_params.merge(request: request, api: true)).execute
|
||||
|
||||
if issue.spam?
|
||||
render_api_error!({ error: 'Spam detected' }, 400)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ module API
|
|||
current_user,
|
||||
declared_params(include_missing: false))
|
||||
.execute(:api, ignore_skip_ci: true, save_on_errors: false)
|
||||
|
||||
if new_pipeline.persisted?
|
||||
present new_pipeline, with: Entities::Pipeline
|
||||
else
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ module API
|
|||
if errors[:project_access].any?
|
||||
error!(errors[:project_access], 422)
|
||||
end
|
||||
|
||||
not_found!
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ module API
|
|||
if project.errors[:limit_reached].present?
|
||||
error!(project.errors[:limit_reached], 403)
|
||||
end
|
||||
|
||||
render_validation_error!(project)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ module API
|
|||
if errors[:project_access].any?
|
||||
error!(errors[:project_access], 422)
|
||||
end
|
||||
|
||||
not_found!
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ module API
|
|||
unless member
|
||||
member = source.add_user(params[:user_id], params[:access_level], current_user: current_user, expires_at: params[:expires_at])
|
||||
end
|
||||
|
||||
if member.persisted? && member.valid?
|
||||
present member.user, with: ::API::Entities::Member, member: member
|
||||
else
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ module API
|
|||
if status == :deprecated
|
||||
detail DEPRECATION_MESSAGE
|
||||
end
|
||||
|
||||
success ::API::V3::Entities::MergeRequest
|
||||
end
|
||||
get path do
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ module API
|
|||
if errors[:project_access].any?
|
||||
error!(errors[:project_access], 422)
|
||||
end
|
||||
|
||||
not_found!
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ module API
|
|||
# private or internal, use the more conservative option, private.
|
||||
attrs[:visibility_level] = (publik == true) ? Gitlab::VisibilityLevel::PUBLIC : Gitlab::VisibilityLevel::PRIVATE
|
||||
end
|
||||
|
||||
attrs
|
||||
end
|
||||
|
||||
|
|
@ -201,6 +202,7 @@ module API
|
|||
if project.errors[:limit_reached].present?
|
||||
error!(project.errors[:limit_reached], 403)
|
||||
end
|
||||
|
||||
render_validation_error!(project)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ module API
|
|||
if errors[:project_access].any?
|
||||
error!(errors[:project_access], 422)
|
||||
end
|
||||
|
||||
not_found!
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ module API
|
|||
attrs = declared_params(include_missing: false)
|
||||
|
||||
UpdateSnippetService.new(nil, current_user, snippet, attrs).execute
|
||||
|
||||
if snippet.persisted?
|
||||
present snippet, with: ::API::Entities::PersonalSnippet
|
||||
else
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ module Backup
|
|||
pgsql_args << "-n"
|
||||
pgsql_args << Gitlab.config.backup.pg_schema
|
||||
end
|
||||
|
||||
spawn('pg_dump', *pgsql_args, config['database'], out: compress_wr)
|
||||
end
|
||||
compress_wr.close
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ module Backup
|
|||
|
||||
if File.exist?(path_to_wiki_repo)
|
||||
progress.print " * #{display_repo_path(wiki)} ... "
|
||||
|
||||
if empty_repo?(wiki)
|
||||
progress.puts " [SKIPPED]".color(:cyan)
|
||||
else
|
||||
|
|
|
|||
|
|
@ -148,6 +148,7 @@ module Gitlab
|
|||
stream.seek(@offset)
|
||||
append = @offset > 0
|
||||
end
|
||||
|
||||
start_offset = @offset
|
||||
|
||||
open_new_tag
|
||||
|
|
@ -155,6 +156,7 @@ module Gitlab
|
|||
stream.each_line do |line|
|
||||
s = StringScanner.new(line)
|
||||
until s.eos?
|
||||
|
||||
if s.scan(Gitlab::Regex.build_trace_section_regex)
|
||||
handle_section(s)
|
||||
elsif s.scan(/\e([@-_])(.*?)([@-~])/)
|
||||
|
|
@ -168,6 +170,7 @@ module Gitlab
|
|||
else
|
||||
@out << s.scan(/./m)
|
||||
end
|
||||
|
||||
@offset += s.matched_size
|
||||
end
|
||||
end
|
||||
|
|
@ -236,8 +239,10 @@ module Gitlab
|
|||
if @style_mask & STYLE_SWITCHES[:bold] != 0
|
||||
fg_color.sub!(/fg-([a-z]{2,}+)/, 'fg-l-\1')
|
||||
end
|
||||
|
||||
css_classes << fg_color
|
||||
end
|
||||
|
||||
css_classes << @bg_color unless @bg_color.nil?
|
||||
|
||||
STYLE_SWITCHES.each do |css_class, flag|
|
||||
|
|
|
|||
|
|
@ -512,6 +512,7 @@ module Gitlab
|
|||
batch_size: 10_000,
|
||||
interval: 10.minutes
|
||||
)
|
||||
|
||||
unless relation.model < EachBatch
|
||||
raise TypeError, 'The relation must include the EachBatch module'
|
||||
end
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ module Gitlab
|
|||
move_repository(project, old_full_path, new_full_path)
|
||||
move_repository(project, "#{old_full_path}.wiki", "#{new_full_path}.wiki")
|
||||
end
|
||||
|
||||
move_uploads(old_full_path, new_full_path) unless project.hashed_storage?(:attachments)
|
||||
move_pages(old_full_path, new_full_path)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ module Gitlab
|
|||
else
|
||||
@diff_lines = diff_lines
|
||||
end
|
||||
|
||||
@raw_lines = @diff_lines.map(&:text)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -156,12 +156,14 @@ module Gitlab
|
|||
%W[git apply --3way #{patch_path}]
|
||||
) do |output, status|
|
||||
puts output
|
||||
|
||||
unless status.zero?
|
||||
@failed_files = output.lines.reduce([]) do |memo, line|
|
||||
if line.start_with?('error: patch failed:')
|
||||
file = line.sub(/\Aerror: patch failed: /, '')
|
||||
memo << file unless file =~ IGNORED_FILES_REGEX
|
||||
end
|
||||
|
||||
memo
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ module Gitlab
|
|||
|
||||
def initialize(mail, mail_key)
|
||||
super(mail, mail_key)
|
||||
|
||||
if m = /\A([^\+]*)\+merge-request\+(.*)/.match(mail_key.to_s)
|
||||
@project_path, @incoming_email_token = m.captures
|
||||
end
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ module Gitlab
|
|||
[bug['sCategory'], bug['sPriority']].each do |label|
|
||||
unless label.blank?
|
||||
labels << label
|
||||
|
||||
unless @known_labels.include?(label)
|
||||
create_label(label)
|
||||
@known_labels << label
|
||||
|
|
@ -265,6 +266,7 @@ module Gitlab
|
|||
if content.blank?
|
||||
content = '*(No description has been entered for this issue)*'
|
||||
end
|
||||
|
||||
body << content
|
||||
|
||||
body.join("\n\n")
|
||||
|
|
@ -278,6 +280,7 @@ module Gitlab
|
|||
if content.blank?
|
||||
content = "*(No comment has been entered for this change)*"
|
||||
end
|
||||
|
||||
body << content
|
||||
|
||||
if updates.any?
|
||||
|
|
|
|||
|
|
@ -668,6 +668,7 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
@refs_hash
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ module Gitlab
|
|||
status = nil
|
||||
|
||||
while status.nil?
|
||||
|
||||
if deadline > Time.now.utc
|
||||
sleep(wait_time)
|
||||
_pid, status = Process.wait2(filesystem_check_pid, Process::WNOHANG)
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ module Gitlab
|
|||
)
|
||||
response = GitalyClient.call(@repository.storage, :operation_service,
|
||||
:user_create_branch, request)
|
||||
|
||||
if response.pre_receive_error.present?
|
||||
raise Gitlab::Git::HooksService::PreReceiveError.new(response.pre_receive_error)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -302,6 +302,7 @@ module Gitlab
|
|||
else
|
||||
"#{project.namespace.full_path}/#{name}##{id}"
|
||||
end
|
||||
|
||||
text = "~~#{text}~~" if deleted
|
||||
text
|
||||
end
|
||||
|
|
@ -329,6 +330,7 @@ module Gitlab
|
|||
if content.blank?
|
||||
content = "*(No comment has been entered for this change)*"
|
||||
end
|
||||
|
||||
body << content
|
||||
|
||||
if updates.any?
|
||||
|
|
@ -352,6 +354,7 @@ module Gitlab
|
|||
if content.blank?
|
||||
content = "*(No description has been entered for this issue)*"
|
||||
end
|
||||
|
||||
body << content
|
||||
|
||||
if attachments.any?
|
||||
|
|
|
|||
|
|
@ -148,6 +148,7 @@ module Gitlab
|
|||
else
|
||||
relation_hash = relation_item[sub_relation.to_s]
|
||||
end
|
||||
|
||||
[relation_hash, sub_relation]
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -267,6 +267,7 @@ module Gitlab
|
|||
else
|
||||
%w[title group_id]
|
||||
end
|
||||
|
||||
finder_hash = parsed_relation_hash.slice(*finder_attributes)
|
||||
|
||||
if label?
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ module Gitlab
|
|||
generate_config_map
|
||||
spec['volumes'] = volumes_specification
|
||||
end
|
||||
|
||||
::Kubeclient::Resource.new(metadata: metadata, spec: spec)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ module Gitlab
|
|||
else
|
||||
self.class.invalid_provider(provider)
|
||||
end
|
||||
|
||||
@options = config_for(@provider) # Use @provider, not provider
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -169,6 +169,7 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
@pool
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ module Gitlab
|
|||
else
|
||||
value = decorate_params_value(value, @request.params[key], tmp_path)
|
||||
end
|
||||
|
||||
@request.update_param(key, value)
|
||||
end
|
||||
|
||||
|
|
@ -60,6 +61,7 @@ module Gitlab
|
|||
unless path_hash.is_a?(Hash) && path_hash.count == 1
|
||||
raise "invalid path: #{path_hash.inspect}"
|
||||
end
|
||||
|
||||
path_key, path_value = path_hash.first
|
||||
|
||||
unless value_hash.is_a?(Hash) && value_hash[path_key]
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ module Gitlab
|
|||
else
|
||||
per_page - first_collection_last_page_size
|
||||
end
|
||||
|
||||
hash[page] = second_collection.page(second_collection_page)
|
||||
.per(per_page - paginated_first_collection(page).size)
|
||||
.padding(offset)
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ module Gitlab
|
|||
command << match_data[1] unless match_data[1].empty?
|
||||
commands << command
|
||||
end
|
||||
|
||||
content = substitution.perform_substitution(self, content)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ module Gitlab
|
|||
# the pool will be used in a multi-threaded context
|
||||
size += Sidekiq.options[:concurrency]
|
||||
end
|
||||
|
||||
size
|
||||
end
|
||||
|
||||
|
|
@ -104,6 +105,7 @@ module Gitlab
|
|||
db_numbers = queries["db"] if queries.key?("db")
|
||||
config[:db] = db_numbers[0].to_i if db_numbers.any?
|
||||
end
|
||||
|
||||
config
|
||||
else
|
||||
redis_hash = ::Redis::Store::Factory.extract_host_options_from_uri(redis_url)
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ module Gitlab
|
|||
else
|
||||
merge_requests.full_search(query)
|
||||
end
|
||||
|
||||
merge_requests.order('updated_at DESC')
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -59,9 +59,11 @@ module Gitlab
|
|||
if response.skipped_shards.any?
|
||||
warnings << "Skipped shards: #{response.skipped_shards.join(', ')}"
|
||||
end
|
||||
|
||||
if response.failing_shards.any?
|
||||
warnings << "Failing shards: #{response.failing_shards.join(', ')}"
|
||||
end
|
||||
|
||||
logger.warn(warnings.join(' - ')) if warnings.any?
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -37,12 +37,14 @@ module Gitlab
|
|||
|
||||
def call(env)
|
||||
increment_active_requests
|
||||
|
||||
if block_requests?
|
||||
block_request(env)
|
||||
else
|
||||
sleep 0.2 if slow_requests?
|
||||
@app.call(env)
|
||||
end
|
||||
|
||||
ensure
|
||||
decrement_active_requests
|
||||
end
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ module Gitlab
|
|||
else
|
||||
block.call
|
||||
end
|
||||
|
||||
ensure
|
||||
model.record_timestamps = original_record_timestamps
|
||||
end
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ module Gitlab
|
|||
puts "You are using the latest GitLab version"
|
||||
else
|
||||
puts "Newer GitLab version is available"
|
||||
|
||||
answer = if ARGV.first == "-y"
|
||||
"yes"
|
||||
else
|
||||
|
|
@ -77,6 +78,7 @@ module Gitlab
|
|||
update_commands.each do |title, cmd|
|
||||
puts title
|
||||
puts " -> #{cmd.join(' ')}"
|
||||
|
||||
if system(env, *cmd)
|
||||
puts " -> OK"
|
||||
else
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ module Gitlab
|
|||
else
|
||||
raise "Unsupported action: #{action}"
|
||||
end
|
||||
|
||||
if feature_enabled
|
||||
params[:GitalyServer] = server
|
||||
end
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ module SystemCheck
|
|||
|
||||
if check.can_repair?
|
||||
$stdout.print 'Trying to fix error automatically. ...'
|
||||
|
||||
if check.repair!
|
||||
$stdout.puts 'Success'.color(:green)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ namespace :gitlab do
|
|||
puts 'Removing all tables. Press `Ctrl-C` within 5 seconds to abort'.color(:yellow)
|
||||
sleep(5)
|
||||
end
|
||||
|
||||
# Drop all tables Load the schema to ensure we don't have any newer tables
|
||||
# hanging out from a failed upgrade
|
||||
$progress.puts 'Cleaning the database ... '.color(:blue)
|
||||
|
|
@ -222,6 +223,7 @@ namespace :gitlab do
|
|||
|
||||
task restore: :environment do
|
||||
$progress.puts "Restoring container registry images ... ".color(:blue)
|
||||
|
||||
if Gitlab.config.registry.enabled
|
||||
Backup::Registry.new.restore
|
||||
$progress.puts "done".color(:green)
|
||||
|
|
|
|||
|
|
@ -180,6 +180,7 @@ namespace :gitlab do
|
|||
puts "can't check, you have no projects".color(:magenta)
|
||||
return
|
||||
end
|
||||
|
||||
puts ""
|
||||
|
||||
Project.find_each(batch_size: 100) do |project|
|
||||
|
|
@ -210,6 +211,7 @@ namespace :gitlab do
|
|||
gitlab_shell_repo_base = gitlab_shell_path
|
||||
check_cmd = File.expand_path('bin/check', gitlab_shell_repo_base)
|
||||
puts "Running #{check_cmd}"
|
||||
|
||||
if system(check_cmd, chdir: gitlab_shell_repo_base)
|
||||
puts 'gitlab-shell self-check successful'.color(:green)
|
||||
else
|
||||
|
|
@ -285,6 +287,7 @@ namespace :gitlab do
|
|||
return if process_count.zero?
|
||||
|
||||
print 'Number of Sidekiq processes ... '
|
||||
|
||||
if process_count == 1
|
||||
puts '1'.color(:green)
|
||||
else
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ namespace :gitlab do
|
|||
next unless user.ldap_user?
|
||||
|
||||
print "#{user.name} (#{user.ldap_identity.extern_uid}) ..."
|
||||
|
||||
if Gitlab::LDAP::Access.allowed?(user)
|
||||
puts " [OK]".color(:green)
|
||||
else
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ namespace :gitlab do
|
|||
puts "Must specify a branch as an argument".color(:red)
|
||||
exit 1
|
||||
end
|
||||
|
||||
args
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,11 @@ namespace :gitlab do
|
|||
require 'toml'
|
||||
|
||||
warn_user_is_not_gitlab
|
||||
|
||||
unless args.dir.present?
|
||||
abort %(Please specify the directory where you want to install gitaly:\n rake "gitlab:gitaly:install[/home/git/gitaly]")
|
||||
end
|
||||
|
||||
args.with_defaults(repo: 'https://gitlab.com/gitlab-org/gitaly.git')
|
||||
|
||||
version = Gitlab::GitalyClient.expected_server_version
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ namespace :gitlab do
|
|||
namespace_ids = Namespace.where(['updated_at > ?', date]).pluck(:id).sort
|
||||
scope = scope.where('id IN (?) OR namespace_id in (?)', project_ids, namespace_ids)
|
||||
end
|
||||
|
||||
scope.find_each do |project|
|
||||
base = File.join(project.repository_storage_path, project.disk_path)
|
||||
puts base + '.git'
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ namespace :gitlab do
|
|||
puts "This rake task is not meant fo production instances".red
|
||||
exit(1)
|
||||
end
|
||||
|
||||
admin = User.find_by(admin: true)
|
||||
|
||||
unless admin
|
||||
|
|
|
|||
|
|
@ -3,9 +3,11 @@ namespace :gitlab do
|
|||
desc "GitLab | Install or upgrade gitlab-workhorse"
|
||||
task :install, [:dir, :repo] => :environment do |t, args|
|
||||
warn_user_is_not_gitlab
|
||||
|
||||
unless args.dir.present?
|
||||
abort %(Please specify the directory where you want to install gitlab-workhorse:\n rake "gitlab:workhorse:install[/home/git/gitlab-workhorse]")
|
||||
end
|
||||
|
||||
args.with_defaults(repo: 'https://gitlab.com/gitlab-org/gitlab-workhorse.git')
|
||||
|
||||
version = Gitlab::Workhorse.version
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ task migrate_iids: :environment do
|
|||
Issue.where(iid: nil).find_each(batch_size: 100) do |issue|
|
||||
begin
|
||||
issue.set_iid
|
||||
|
||||
if issue.update_attribute(:iid, issue.iid)
|
||||
print '.'
|
||||
else
|
||||
|
|
@ -19,6 +20,7 @@ task migrate_iids: :environment do
|
|||
MergeRequest.where(iid: nil).find_each(batch_size: 100) do |mr|
|
||||
begin
|
||||
mr.set_iid
|
||||
|
||||
if mr.update_attribute(:iid, mr.iid)
|
||||
print '.'
|
||||
else
|
||||
|
|
@ -34,6 +36,7 @@ task migrate_iids: :environment do
|
|||
Milestone.where(iid: nil).find_each(batch_size: 100) do |m|
|
||||
begin
|
||||
m.set_iid
|
||||
|
||||
if m.update_attribute(:iid, m.iid)
|
||||
print '.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -0,0 +1,119 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
# Ensures a line break around conditional blocks.
|
||||
#
|
||||
# @example
|
||||
# # bad
|
||||
# do_something
|
||||
# if condition
|
||||
# do_extra_stuff
|
||||
# end
|
||||
# do_something_more
|
||||
#
|
||||
# # good
|
||||
# do_something
|
||||
#
|
||||
# if condition
|
||||
# do_extra_stuff
|
||||
# end
|
||||
#
|
||||
# do_something_more
|
||||
#
|
||||
# # bad
|
||||
# do_something
|
||||
# unless condition
|
||||
# do_extra_stuff
|
||||
# end
|
||||
#
|
||||
# do_something_more
|
||||
#
|
||||
# # good
|
||||
# def a_method
|
||||
# if condition
|
||||
# do_something
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# # good
|
||||
# on_block do
|
||||
# if condition
|
||||
# do_something
|
||||
# end
|
||||
# end
|
||||
class LineBreakAroundConditionalBlock < RuboCop::Cop::Cop
|
||||
MSG = 'Add a line break around conditional blocks'
|
||||
|
||||
def on_if(node)
|
||||
return if node.single_line?
|
||||
return unless node.if? || node.unless?
|
||||
|
||||
add_offense(node, location: :expression, message: MSG) unless previous_line_valid?(node)
|
||||
add_offense(node, location: :expression, message: MSG) unless last_line_valid?(node)
|
||||
end
|
||||
|
||||
def autocorrect(node)
|
||||
lambda do |corrector|
|
||||
line = range_by_whole_lines(node.source_range)
|
||||
unless previous_line_valid?(node)
|
||||
corrector.insert_before(line, "\n")
|
||||
end
|
||||
|
||||
unless last_line_valid?(node)
|
||||
corrector.insert_after(line, "\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def previous_line_valid?(node)
|
||||
previous_line(node).empty? ||
|
||||
start_clause_line?(previous_line(node)) ||
|
||||
block_start?(previous_line(node)) ||
|
||||
begin_line?(previous_line(node)) ||
|
||||
assignment_line?(previous_line(node))
|
||||
end
|
||||
|
||||
def last_line_valid?(node)
|
||||
last_line(node).empty? ||
|
||||
end_line?(last_line(node)) ||
|
||||
end_clause_line?(last_line(node))
|
||||
end
|
||||
|
||||
def previous_line(node)
|
||||
processed_source[node.loc.line - 2]
|
||||
end
|
||||
|
||||
def last_line(node)
|
||||
processed_source[node.loc.last_line]
|
||||
end
|
||||
|
||||
def start_clause_line?(line)
|
||||
line =~ /^\s*(def|=end|#|module|class|if|unless|else|elsif|ensure|when)/
|
||||
end
|
||||
|
||||
def end_clause_line?(line)
|
||||
line =~ /^\s*(rescue|else|elsif|when)/
|
||||
end
|
||||
|
||||
def begin_line?(line)
|
||||
# an assignment followed by a begin or ust a begin
|
||||
line =~ /^\s*(@?(\w|\|+|=|\[|\]|\s)+begin|begin)/
|
||||
end
|
||||
|
||||
def assignment_line?(line)
|
||||
line =~ /^\s*.*=/
|
||||
end
|
||||
|
||||
def block_start?(line)
|
||||
line.match(/ (do|{)( \|.*?\|)?\s?$/)
|
||||
end
|
||||
|
||||
def end_line?(line)
|
||||
line =~ /^\s*(end|})/
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
require_relative 'cop/gitlab/module_with_instance_variables'
|
||||
require_relative 'cop/include_sidekiq_worker'
|
||||
require_relative 'cop/line_break_around_conditional_block'
|
||||
require_relative 'cop/migration/add_column'
|
||||
require_relative 'cop/migration/add_concurrent_foreign_key'
|
||||
require_relative 'cop/migration/add_concurrent_index'
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ FactoryBot.define do
|
|||
if evaluator.default_access_level && evaluator.default_push_level
|
||||
protected_branch.push_access_levels.new(access_level: Gitlab::Access::MASTER)
|
||||
end
|
||||
|
||||
if evaluator.default_access_level && evaluator.default_merge_level
|
||||
protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MASTER)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -377,6 +377,7 @@ feature 'Issues > Labels bulk assignment' do
|
|||
items.map do |item|
|
||||
click_link item
|
||||
end
|
||||
|
||||
if unmark
|
||||
items.map do |item|
|
||||
# Make sure we are unmarking the item no matter the state it has currently
|
||||
|
|
|
|||
|
|
@ -142,6 +142,7 @@ describe API::CommitStatuses do
|
|||
expect(json_response['ref']).not_to be_empty
|
||||
expect(json_response['target_url']).to be_nil
|
||||
expect(json_response['description']).to be_nil
|
||||
|
||||
if status == 'failed'
|
||||
expect(CommitStatus.find(json_response['id'])).to be_api_failure
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1142,6 +1142,7 @@ describe API::Runner do
|
|||
else
|
||||
{ 'file' => file }
|
||||
end
|
||||
|
||||
post api("/jobs/#{job.id}/artifacts"), params, headers
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,411 @@
|
|||
require 'spec_helper'
|
||||
require 'rubocop'
|
||||
require 'rubocop/rspec/support'
|
||||
require_relative '../../../rubocop/cop/line_break_around_conditional_block'
|
||||
|
||||
describe RuboCop::Cop::LineBreakAroundConditionalBlock do
|
||||
include CopHelper
|
||||
|
||||
subject(:cop) { described_class.new }
|
||||
|
||||
shared_examples 'examples with conditional' do |conditional|
|
||||
it "flags violation for #{conditional} without line break before" do
|
||||
source = <<~RUBY
|
||||
do_something
|
||||
#{conditional} condition
|
||||
do_something_more
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses.size).to eq(1)
|
||||
offense = cop.offenses.first
|
||||
|
||||
expect(offense.line).to eq(2)
|
||||
expect(cop.highlights).to eq(["#{conditional} condition\n do_something_more\nend"])
|
||||
expect(offense.message).to eq('Add a line break around conditional blocks')
|
||||
end
|
||||
|
||||
it "flags violation for #{conditional} without line break after" do
|
||||
source = <<~RUBY
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
do_something_more
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses.size).to eq(1)
|
||||
offense = cop.offenses.first
|
||||
|
||||
expect(offense.line).to eq(1)
|
||||
expect(cop.highlights).to eq(["#{conditional} condition\n do_something\nend"])
|
||||
expect(offense.message).to eq('Add a line break around conditional blocks')
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} with line break before and after" do
|
||||
source = <<~RUBY
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a method definition" do
|
||||
source = <<~RUBY
|
||||
def a_method
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a class definition" do
|
||||
source = <<~RUBY
|
||||
class Foo
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a module definition" do
|
||||
source = <<~RUBY
|
||||
module Foo
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a begin definition" do
|
||||
source = <<~RUBY
|
||||
begin
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by an assign/begin definition" do
|
||||
source = <<~RUBY
|
||||
@project ||= begin
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a block definition" do
|
||||
source = <<~RUBY
|
||||
on_block(param_a) do |item|
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a block definition using brackets" do
|
||||
source = <<~RUBY
|
||||
on_block(param_a) { |item|
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
}
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a comment" do
|
||||
source = <<~RUBY
|
||||
# a short comment
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by an assignment" do
|
||||
source = <<~RUBY
|
||||
foo =
|
||||
#{conditional} condition
|
||||
do_something
|
||||
else
|
||||
do_something_more
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a multiline comment" do
|
||||
source = <<~RUBY
|
||||
=begin
|
||||
a multiline comment
|
||||
=end
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by another conditional" do
|
||||
source = <<~RUBY
|
||||
#{conditional} condition_a
|
||||
#{conditional} condition_b
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by an else" do
|
||||
source = <<~RUBY
|
||||
if condition_a
|
||||
do_something
|
||||
else
|
||||
#{conditional} condition_b
|
||||
do_something_extra
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by an elsif" do
|
||||
source = <<~RUBY
|
||||
if condition_a
|
||||
do_something
|
||||
elsif condition_b
|
||||
#{conditional} condition_c
|
||||
do_something_extra
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by an ensure" do
|
||||
source = <<~RUBY
|
||||
def a_method
|
||||
ensure
|
||||
#{conditional} condition_c
|
||||
do_something_extra
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} preceded by a when" do
|
||||
source = <<~RUBY
|
||||
case field
|
||||
when value
|
||||
#{conditional} condition_c
|
||||
do_something_extra
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} followed by an end" do
|
||||
source = <<~RUBY
|
||||
class Foo
|
||||
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} followed by an else" do
|
||||
source = <<~RUBY
|
||||
#{conditional} condition_a
|
||||
#{conditional} condition_b
|
||||
do_something
|
||||
end
|
||||
else
|
||||
do_something_extra
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} followed by a when" do
|
||||
source = <<~RUBY
|
||||
case
|
||||
when condition_a
|
||||
#{conditional} condition_b
|
||||
do_something
|
||||
end
|
||||
when condition_c
|
||||
do_something_extra
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} followed by an elsif" do
|
||||
source = <<~RUBY
|
||||
if condition_a
|
||||
#{conditional} condition_b
|
||||
do_something
|
||||
end
|
||||
elsif condition_c
|
||||
do_something_extra
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "doesn't flag violation for #{conditional} followed by a rescue" do
|
||||
source = <<~RUBY
|
||||
def a_method
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
rescue
|
||||
do_something_extra
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
|
||||
it "autocorrects #{conditional} without line break before" do
|
||||
source = <<~RUBY
|
||||
do_something
|
||||
#{conditional} condition
|
||||
do_something_more
|
||||
end
|
||||
RUBY
|
||||
autocorrected = autocorrect_source(source)
|
||||
|
||||
expected_source = <<~RUBY
|
||||
do_something
|
||||
|
||||
#{conditional} condition
|
||||
do_something_more
|
||||
end
|
||||
RUBY
|
||||
expect(autocorrected).to eql(expected_source)
|
||||
end
|
||||
|
||||
it "autocorrects #{conditional} without line break after" do
|
||||
source = <<~RUBY
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
do_something_more
|
||||
RUBY
|
||||
autocorrected = autocorrect_source(source)
|
||||
|
||||
expected_source = <<~RUBY
|
||||
#{conditional} condition
|
||||
do_something
|
||||
end
|
||||
|
||||
do_something_more
|
||||
RUBY
|
||||
expect(autocorrected).to eql(expected_source)
|
||||
end
|
||||
|
||||
it "autocorrects #{conditional} without line break before and after" do
|
||||
source = <<~RUBY
|
||||
do_something
|
||||
#{conditional} condition
|
||||
do_something_more
|
||||
end
|
||||
do_something_extra
|
||||
RUBY
|
||||
autocorrected = autocorrect_source(source)
|
||||
|
||||
expected_source = <<~RUBY
|
||||
do_something
|
||||
|
||||
#{conditional} condition
|
||||
do_something_more
|
||||
end
|
||||
|
||||
do_something_extra
|
||||
RUBY
|
||||
expect(autocorrected).to eql(expected_source)
|
||||
end
|
||||
end
|
||||
|
||||
%w[if unless].each do |example|
|
||||
it_behaves_like 'examples with conditional', example
|
||||
end
|
||||
|
||||
it "doesn't flag violation for if with elsif" do
|
||||
source = <<~RUBY
|
||||
if condition
|
||||
do_something
|
||||
elsif another_condition
|
||||
do_something_more
|
||||
end
|
||||
RUBY
|
||||
inspect_source(source)
|
||||
|
||||
expect(cop.offenses).to be_empty
|
||||
end
|
||||
end
|
||||
|
|
@ -150,6 +150,7 @@ describe Projects::TransferService do
|
|||
|
||||
before do
|
||||
group.add_owner(user)
|
||||
|
||||
unless gitlab_shell.add_repository(repository_storage, "#{group.full_path}/#{project.path}")
|
||||
raise 'failed to add repository'
|
||||
end
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue