Skip to content
Snippets Groups Projects
Commit 624a1cda authored by Jasper Maes's avatar Jasper Maes Committed by Heinrich Lee Yu
Browse files

Upgrade Rails to 5.1.6.1

Model.new.attributes now also returns encrypted attributes.
parent 46bdbc5d
No related branches found
No related tags found
No related merge requests found
Showing
with 99 additions and 80 deletions
source 'https://rubygems.org'
 
gem 'rails', '5.0.7.2'
gem 'rails', '5.1.6.1'
 
# Improves copy-on-write performance for MRI
gem 'nakayoshi_fork', '~> 0.0.4'
Loading
Loading
@@ -18,7 +18,7 @@ gem 'mysql2', '~> 0.4.10', group: :mysql
gem 'pg', '~> 1.1', group: :postgres
 
gem 'rugged', '~> 0.28'
gem 'grape-path-helpers', '~> 1.0'
gem 'grape-path-helpers', '~> 1.1'
 
gem 'faraday', '~> 0.12'
 
Loading
Loading
Loading
Loading
@@ -4,41 +4,41 @@ GEM
RedCloth (4.3.2)
abstract_type (0.0.7)
ace-rails-ap (4.1.2)
actioncable (5.0.7.2)
actionpack (= 5.0.7.2)
nio4r (>= 1.2, < 3.0)
actioncable (5.1.6.1)
actionpack (= 5.1.6.1)
nio4r (~> 2.0)
websocket-driver (~> 0.6.1)
actionmailer (5.0.7.2)
actionpack (= 5.0.7.2)
actionview (= 5.0.7.2)
activejob (= 5.0.7.2)
actionmailer (5.1.6.1)
actionpack (= 5.1.6.1)
actionview (= 5.1.6.1)
activejob (= 5.1.6.1)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
actionpack (5.0.7.2)
actionview (= 5.0.7.2)
activesupport (= 5.0.7.2)
actionpack (5.1.6.1)
actionview (= 5.1.6.1)
activesupport (= 5.1.6.1)
rack (~> 2.0)
rack-test (~> 0.6.3)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.0.7.2)
activesupport (= 5.0.7.2)
actionview (5.1.6.1)
activesupport (= 5.1.6.1)
builder (~> 3.1)
erubis (~> 2.7.0)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
activejob (5.0.7.2)
activesupport (= 5.0.7.2)
activejob (5.1.6.1)
activesupport (= 5.1.6.1)
globalid (>= 0.3.6)
activemodel (5.0.7.2)
activesupport (= 5.0.7.2)
activerecord (5.0.7.2)
activemodel (= 5.0.7.2)
activesupport (= 5.0.7.2)
arel (~> 7.0)
activemodel (5.1.6.1)
activesupport (= 5.1.6.1)
activerecord (5.1.6.1)
activemodel (= 5.1.6.1)
activesupport (= 5.1.6.1)
arel (~> 8.0)
activerecord_sane_schema_dumper (1.0)
rails (>= 5, < 6)
activesupport (5.0.7.2)
activesupport (5.1.6.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
Loading
Loading
@@ -52,7 +52,7 @@ GEM
public_suffix (>= 2.0.2, < 4.0)
aes_key_wrap (1.0.1)
akismet (2.0.0)
arel (7.1.4)
arel (8.0.0)
asana (0.8.1)
faraday (~> 0.9)
faraday_middleware (~> 0.9)
Loading
Loading
@@ -186,7 +186,6 @@ GEM
encryptor (3.0.0)
equalizer (0.0.11)
erubi (1.7.1)
erubis (2.7.0)
escape_utils (1.2.1)
et-orbi (1.1.7)
tzinfo
Loading
Loading
@@ -257,8 +256,8 @@ GEM
fog-xml (0.1.3)
fog-core
nokogiri (>= 1.5.11, < 2.0.0)
font-awesome-rails (4.7.0.1)
railties (>= 3.2, < 5.1)
font-awesome-rails (4.7.0.4)
railties (>= 3.2, < 6.0)
foreman (0.84.0)
thor (~> 0.19.1)
formatador (0.2.5)
Loading
Loading
@@ -339,8 +338,8 @@ GEM
grape-entity (0.7.1)
activesupport (>= 4.0)
multi_json (>= 1.3.2)
grape-path-helpers (1.0.6)
activesupport (>= 4, < 5.1)
grape-path-helpers (1.1.0)
activesupport
grape (~> 1.0)
rake (~> 12)
grape_logging (1.7.0)
Loading
Loading
@@ -658,19 +657,19 @@ GEM
rack
rack-proxy (0.6.0)
rack
rack-test (0.6.3)
rack (>= 1.0)
rails (5.0.7.2)
actioncable (= 5.0.7.2)
actionmailer (= 5.0.7.2)
actionpack (= 5.0.7.2)
actionview (= 5.0.7.2)
activejob (= 5.0.7.2)
activemodel (= 5.0.7.2)
activerecord (= 5.0.7.2)
activesupport (= 5.0.7.2)
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (5.1.6.1)
actioncable (= 5.1.6.1)
actionmailer (= 5.1.6.1)
actionpack (= 5.1.6.1)
actionview (= 5.1.6.1)
activejob (= 5.1.6.1)
activemodel (= 5.1.6.1)
activerecord (= 5.1.6.1)
activesupport (= 5.1.6.1)
bundler (>= 1.3.0)
railties (= 5.0.7.2)
railties (= 5.1.6.1)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.2)
actionpack (~> 5.x, >= 5.0.1)
Loading
Loading
@@ -1067,7 +1066,7 @@ DEPENDENCIES
gpgme (~> 2.0.18)
grape (~> 1.1.0)
grape-entity (~> 0.7.1)
grape-path-helpers (~> 1.0)
grape-path-helpers (~> 1.1)
grape_logging (~> 1.7)
graphiql-rails (~> 1.4.10)
graphql (~> 1.8.0)
Loading
Loading
@@ -1142,7 +1141,7 @@ DEPENDENCIES
rack-cors (~> 1.0.0)
rack-oauth2 (~> 1.9.3)
rack-proxy (~> 0.6.0)
rails (= 5.0.7.2)
rails (= 5.1.6.1)
rails-controller-testing
rails-i18n (~> 5.1)
rainbow (~> 3.0)
Loading
Loading
Loading
Loading
@@ -56,7 +56,7 @@ module Ci
 
update_project_statistics stat: :build_artifacts_size
 
after_save :update_file_store, if: :file_changed?
after_save :update_file_store, if: :saved_change_to_file?
 
scope :with_files_stored_locally, -> { where(file_store: [nil, ::JobArtifactUploader::Store::LOCAL]) }
 
Loading
Loading
Loading
Loading
@@ -230,7 +230,7 @@ module Clusters
end
 
def update_kubernetes_namespace
return unless namespace_changed?
return unless saved_change_to_namespace?
 
run_after_commit do
ClusterConfigureWorker.perform_async(cluster_id)
Loading
Loading
Loading
Loading
@@ -13,8 +13,8 @@ module Storage
raise Gitlab::UpdatePathError.new("Namespace #{name} (#{id}) cannot be moved because at least one project (e.g. #{proj_with_tags.name} (#{proj_with_tags.id})) has tags in container registry")
end
 
parent_was = if parent_changed? && parent_id_was.present?
Namespace.find(parent_id_was) # raise NotFound early if needed
parent_was = if parent_changed? && parent_id_before_last_save.present?
Namespace.find(parent_id_before_last_save) # raise NotFound early if needed
end
 
move_repositories
Loading
Loading
Loading
Loading
@@ -61,7 +61,7 @@ class Group < Namespace
after_create :post_create_hook
after_destroy :post_destroy_hook
after_save :update_two_factor_requirement
after_update :path_changed_hook, if: :path_changed?
after_update :path_changed_hook, if: :saved_change_to_path?
 
class << self
def sort_by_attribute(method)
Loading
Loading
@@ -411,7 +411,7 @@ class Group < Namespace
private
 
def update_two_factor_requirement
return unless require_two_factor_authentication_changed? || two_factor_grace_period_changed?
return unless saved_change_to_require_two_factor_authentication? || saved_change_to_two_factor_grace_period?
 
users.find_each(&:update_two_factor_requirement)
end
Loading
Loading
Loading
Loading
@@ -13,7 +13,7 @@ class LfsObject < ApplicationRecord
 
mount_uploader :file, LfsObjectUploader
 
after_save :update_file_store, if: :file_changed?
after_save :update_file_store, if: :saved_change_to_file?
 
def update_file_store
# The file.object_store is set during `uploader.store!`
Loading
Loading
Loading
Loading
@@ -55,7 +55,7 @@ class GroupMember < Member
end
 
def post_update_hook
if access_level_changed?
if saved_change_to_access_level?
run_after_commit { notification_service.update_group_member(self) }
end
 
Loading
Loading
Loading
Loading
@@ -111,7 +111,7 @@ class ProjectMember < Member
end
 
def post_update_hook
if access_level_changed?
if saved_change_to_access_level?
run_after_commit { notification_service.update_project_member(self) }
end
 
Loading
Loading
Loading
Loading
@@ -698,7 +698,7 @@ class MergeRequest < ApplicationRecord
end
 
def reload_diff_if_branch_changed
if (source_branch_changed? || target_branch_changed?) &&
if (saved_change_to_source_branch? || saved_change_to_target_branch?) &&
(source_branch_head && target_branch_head)
reload_diff
end
Loading
Loading
Loading
Loading
@@ -50,6 +50,8 @@ class Namespace < ApplicationRecord
 
validate :nesting_level_allowed
 
validates_associated :runners
delegate :name, to: :owner, allow_nil: true, prefix: true
delegate :avatar_url, to: :owner, allow_nil: true
 
Loading
Loading
@@ -57,7 +59,7 @@ class Namespace < ApplicationRecord
 
before_create :sync_share_with_group_lock_with_parent
before_update :sync_share_with_group_lock_with_parent, if: :parent_changed?
after_update :force_share_with_group_lock_on_descendants, if: -> { share_with_group_lock_changed? && share_with_group_lock? }
after_update :force_share_with_group_lock_on_descendants, if: -> { saved_change_to_share_with_group_lock? && share_with_group_lock? }
 
# Legacy Storage specific hooks
 
Loading
Loading
@@ -292,7 +294,7 @@ class Namespace < ApplicationRecord
private
 
def path_or_parent_changed?
path_changed? || parent_changed?
saved_change_to_path? || saved_change_to_parent_id?
end
 
def refresh_access_of_projects_invited_groups
Loading
Loading
Loading
Loading
@@ -147,20 +147,20 @@ class PagesDomain < ApplicationRecord
# rubocop: enable CodeReuse/ServiceClass
 
def pages_config_changed?
project_id_changed? ||
domain_changed? ||
certificate_changed? ||
key_changed? ||
saved_change_to_project_id? ||
saved_change_to_domain? ||
saved_change_to_certificate? ||
saved_change_to_key? ||
became_enabled? ||
became_disabled?
end
 
def became_enabled?
enabled_until.present? && !enabled_until_was.present?
enabled_until.present? && !enabled_until_before_last_save.present?
end
 
def became_disabled?
!enabled_until.present? && enabled_until_was.present?
!enabled_until.present? && enabled_until_before_last_save.present?
end
 
def validate_matching_key
Loading
Loading
Loading
Loading
@@ -90,7 +90,7 @@ class Project < ApplicationRecord
 
before_save :ensure_runners_token
 
after_save :update_project_statistics, if: :namespace_id_changed?
after_save :update_project_statistics, if: :saved_change_to_namespace_id?
 
after_save :create_import_state, if: ->(project) { project.import? && project.import_state.nil? }
 
Loading
Loading
@@ -116,7 +116,7 @@ class Project < ApplicationRecord
after_initialize :use_hashed_storage
after_create :check_repository_absence!
after_create :ensure_storage_path_exists
after_save :ensure_storage_path_exists, if: :namespace_id_changed?
after_save :ensure_storage_path_exists, if: :saved_change_to_namespace_id?
 
acts_as_ordered_taggable
 
Loading
Loading
@@ -1430,7 +1430,7 @@ class Project < ApplicationRecord
 
# update visibility_level of forks
def update_forks_visibility_level
return unless visibility_level < visibility_level_was
return unless visibility_level < visibility_level_before_last_save
 
forks.each do |forked_project|
if forked_project.visibility_level > visibility_level
Loading
Loading
Loading
Loading
@@ -248,7 +248,7 @@ class RemoteMirror < ApplicationRecord
 
# Before adding a new remote we have to delete the data from
# the previous remote name
prev_remote_name = remote_name_was || fallback_remote_name
prev_remote_name = remote_name_before_last_save || fallback_remote_name
run_after_commit do
project.repository.async_remove_remote(prev_remote_name)
end
Loading
Loading
Loading
Loading
@@ -14,26 +14,26 @@ class Route < ApplicationRecord
 
before_validation :delete_conflicting_orphaned_routes
after_create :delete_conflicting_redirects
after_update :delete_conflicting_redirects, if: :path_changed?
after_update :delete_conflicting_redirects, if: :saved_change_to_path?
after_update :create_redirect_for_old_path
after_update :rename_descendants
 
scope :inside_path, -> (path) { where('routes.path LIKE ?', "#{sanitize_sql_like(path)}/%") }
 
def rename_descendants
return unless path_changed? || name_changed?
return unless saved_change_to_path? || saved_change_to_name?
 
descendant_routes = self.class.inside_path(path_was)
descendant_routes = self.class.inside_path(path_before_last_save)
 
descendant_routes.each do |route|
attributes = {}
 
if path_changed? && route.path.present?
attributes[:path] = route.path.sub(path_was, path)
if saved_change_to_path? && route.path.present?
attributes[:path] = route.path.sub(path_before_last_save, path)
end
 
if name_changed? && name_was.present? && route.name.present?
attributes[:name] = route.name.sub(name_was, name)
if saved_change_to_name? && name_before_last_save.present? && route.name.present?
attributes[:name] = route.name.sub(name_before_last_save, name)
end
 
if attributes.present?
Loading
Loading
@@ -65,7 +65,7 @@ class Route < ApplicationRecord
private
 
def create_redirect_for_old_path
create_redirect(path_was) if path_changed?
create_redirect(path_before_last_save) if saved_change_to_path?
end
 
def delete_conflicting_orphaned_routes
Loading
Loading
Loading
Loading
@@ -194,7 +194,7 @@ class User < ApplicationRecord
before_validation :ensure_namespace_correct
before_save :ensure_namespace_correct # in case validation is skipped
after_validation :set_username_errors
after_update :username_changed_hook, if: :username_changed?
after_update :username_changed_hook, if: :saved_change_to_username?
after_destroy :post_destroy_hook
after_destroy :remove_key_cache
after_commit(on: :update) do
Loading
Loading
Loading
Loading
@@ -80,7 +80,7 @@ module Projects
value = value.is_a?(Hash) ? value.to_json : value
 
service_hash[ActiveRecord::Base.connection.quote_column_name(key)] =
ActiveRecord::Base.sanitize(value)
ActiveRecord::Base.connection.quote(value)
end
end
end
Loading
Loading
---
title: Rails 5.1
merge_request: 24852
author: Jasper Maes
type: other
Loading
Loading
@@ -164,9 +164,6 @@ module Gitlab
# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
 
# Can be removed once upgraded to Rails 5.1 or higher
config.action_controller.raise_on_unfiltered_parameters = true
# Nokogiri is significantly faster and uses less memory than REXML
ActiveSupport::XmlMini.backend = 'Nokogiri'
 
Loading
Loading
# Remove once https://github.com/rails/rails/pull/32498
# is released on a 5.1.x rails version.
# Commit on 5-1-stable branch: https://github.com/rails/rails/commit/6ef736625eddf6700f2e67f7849c79c92381abee
module ActiveRecord
class AttributeMutationTracker
def changes
attr_names.each_with_object({}.with_indifferent_access) do |attr_name, result|
change = change_to_attribute(attr_name)
if change
result.merge!(attr_name => change)
end
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment