diff --git a/app/controllers/projects/refs_controller.rb b/app/controllers/projects/refs_controller.rb
index 5d9336bdc49b774782c307a8ab38f3d7886f5ce5..67665f5f60184a9ba0375dbcaa05860dbf0000f7 100644
--- a/app/controllers/projects/refs_controller.rb
+++ b/app/controllers/projects/refs_controller.rb
@@ -41,9 +41,9 @@ class Projects::RefsController < Projects::ApplicationController
     @path = params[:path]
 
     contents = []
-    contents += tree.trees
-    contents += tree.blobs
-    contents += tree.submodules
+    contents.push(*tree.trees)
+    contents.push(*tree.blobs)
+    contents.push(*tree.submodules)
 
     @logs = contents[@offset, @limit].to_a.map do |content|
       file = @path ? File.join(@path, content.name) : content.name
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 36adeadd8a5d7af0175ac28d89d3198e8944f22a..cf279823986fd913912a30d90caef51957c385cd 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -44,7 +44,7 @@ module CommitsHelper
       parts = @path.split('/')
 
       parts.each_with_index do |part, i|
-        crumbs += content_tag(:li) do
+        crumbs << content_tag(:li) do
           # The text is just the individual part, but the link needs all the parts before it
           link_to part, project_commits_path(@project, tree_join(@ref, parts[0..i].join('/')))
         end
diff --git a/app/helpers/graph_helper.rb b/app/helpers/graph_helper.rb
index 7cb1b6f8d1aca34e64a96bc870ca06777d2706bf..e1dda20de858708c6da9be66f40dce1149653bd0 100644
--- a/app/helpers/graph_helper.rb
+++ b/app/helpers/graph_helper.rb
@@ -1,10 +1,10 @@
 module GraphHelper
   def get_refs(repo, commit)
     refs = ""
-    refs += commit.ref_names(repo).join(" ")
+    refs << commit.ref_names(repo).join(' ')
 
     # append note count
-    refs += "[#{@graph.notes[commit.id]}]" if @graph.notes[commit.id] > 0
+    refs << "[#{@graph.notes[commit.id]}]" if @graph.notes[commit.id] > 0
 
     refs
   end
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index e489d431e84927f109a63e046dee690d73ae6f12..f7e01f90717c0321e94030cfbfd6c6437cd43bd0 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -86,7 +86,7 @@ module ProjectsHelper
 
   def link_to_toggle_star(title, starred, signed_in)
     cls = 'star-btn'
-    cls += ' disabled' unless signed_in
+    cls << ' disabled' unless signed_in
 
     toggle_html = content_tag('span', class: 'toggle') do
       toggle_text = if starred
diff --git a/app/helpers/tags_helper.rb b/app/helpers/tags_helper.rb
index ef89bb32c6d4fb82418dbe853bcb736a20510e77..fb85544df2d7a9da130de651631bf962562cfd6a 100644
--- a/app/helpers/tags_helper.rb
+++ b/app/helpers/tags_helper.rb
@@ -6,7 +6,7 @@ module TagsHelper
   def tag_list(project)
     html = ''
     project.tag_list.each do |tag|
-      html += link_to tag, tag_path(tag)
+      html << link_to(tag, tag_path(tag))
     end
 
     html.html_safe
diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb
index e32aeba5f8f0e6d33b1437644ea54b5317c6a0b8..8693acad994bee290a0e5f92b4aa4dea00cf7043 100644
--- a/app/helpers/tree_helper.rb
+++ b/app/helpers/tree_helper.rb
@@ -10,13 +10,16 @@ module TreeHelper
     tree = ""
 
     # Render folders if we have any
-    tree += render partial: 'projects/tree/tree_item', collection: folders, locals: {type: 'folder'} if folders.present?
+    tree << render(partial: 'projects/tree/tree_item', collection: folders,
+                   locals: { type: 'folder' }) if folders.present?
 
     # Render files if we have any
-    tree += render partial: 'projects/tree/blob_item', collection: files, locals: {type: 'file'} if files.present?
+    tree << render(partial: 'projects/tree/blob_item', collection: files,
+                   locals: { type: 'file' }) if files.present?
 
     # Render submodules if we have any
-    tree += render partial: 'projects/tree/submodule_item', collection: submodules if submodules.present?
+    tree << render(partial: 'projects/tree/submodule_item',
+                   collection: submodules) if submodules.present?
 
     tree.html_safe
   end
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 97a72bf3635b17ae61d5fab57284c9fd632c7762..890417e780dcbf64f9b6d508126ea28a3e862962 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -73,28 +73,28 @@ class Ability
 
         # Rules based on role in project
         if team.master?(user)
-          rules += project_master_rules
+          rules.push(*project_master_rules)
 
         elsif team.developer?(user)
-          rules += project_dev_rules
+          rules.push(*project_dev_rules)
 
         elsif team.reporter?(user)
-          rules += project_report_rules
+          rules.push(*project_report_rules)
 
         elsif team.guest?(user)
-          rules += project_guest_rules
+          rules.push(*project_guest_rules)
         end
 
         if project.public? || project.internal?
-          rules += public_project_rules
+          rules.push(*public_project_rules)
         end
 
         if project.owner == user || user.admin?
-          rules += project_admin_rules
+          rules.push(*project_admin_rules)
         end
 
         if project.group && project.group.has_owner?(user)
-          rules += project_admin_rules
+          rules.push(*project_admin_rules)
         end
 
         if project.archived?
@@ -193,17 +193,17 @@ class Ability
 
       # Only group masters and group owners can create new projects in group
       if group.has_master?(user) || group.has_owner?(user) || user.admin?
-        rules += [
+        rules.push(*[
           :create_projects,
-        ]
+        ])
       end
 
       # Only group owner and administrators can manage group
       if group.has_owner?(user) || user.admin?
-        rules += [
+        rules.push(*[
           :manage_group,
           :manage_namespace
-        ]
+        ])
       end
 
       rules.flatten
@@ -214,10 +214,10 @@ class Ability
 
       # Only namespace owner and administrators can manage it
       if namespace.owner == user || user.admin?
-        rules += [
+        rules.push(*[
           :create_projects,
           :manage_namespace
-        ]
+        ])
       end
 
       rules.flatten
diff --git a/app/models/concerns/mentionable.rb b/app/models/concerns/mentionable.rb
index 6c1aa99668a43c433a4a4ab2024731e624761658..66f83b932d4ba342b5e290f69985905e7a5c6cc5 100644
--- a/app/models/concerns/mentionable.rb
+++ b/app/models/concerns/mentionable.rb
@@ -50,7 +50,7 @@ module Mentionable
     matches.each do |match|
       identifier = match.delete "@"
       if identifier == "all"
-        users += project.team.members.flatten
+        users.push(*project.team.members.flatten)
       else
         id = User.find_by(username: identifier).try(:id)
         users << User.find(id) unless id.blank?
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 2cc427d35c23e65b195d058aba46264d26b2737a..5dc3c403b3be024c6a16bc23328e3fa23cddbadb 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -248,7 +248,8 @@ class MergeRequest < ActiveRecord::Base
   def closes_issues
     if target_branch == project.default_branch
       issues = commits.flat_map { |c| c.closes_issues(project) }
-      issues += Gitlab::ClosingIssueExtractor.closed_by_message_in_project(description, project)
+      issues.push(*Gitlab::ClosingIssueExtractor.
+                  closed_by_message_in_project(description, project))
       issues.uniq.sort_by(&:id)
     else
       []
diff --git a/app/models/network/graph.rb b/app/models/network/graph.rb
index 43979b5e8071b619a2176abb0e7ced0d3ad74c4c..f13a40cf4f61589ca42c958828016adcb5835922 100644
--- a/app/models/network/graph.rb
+++ b/app/models/network/graph.rb
@@ -226,7 +226,7 @@ module Network
 
       reserved = []
       for day in time_range
-        reserved += @reserved[day]
+        reserved.push(*@reserved[day])
       end
       reserved.uniq!
 
diff --git a/app/models/project.rb b/app/models/project.rb
index b0c379e6157374bbef63c7593ee33aec1359104f..67898955d63e66f25e403743cba04bff3a908438 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -170,7 +170,7 @@ class Project < ActiveRecord::Base
 
     def publicish(user)
       visibility_levels = [Project::PUBLIC]
-      visibility_levels += [Project::INTERNAL] if user
+      visibility_levels << Project::INTERNAL if user
       where(visibility_level: visibility_levels)
     end
 
diff --git a/app/models/project_team.rb b/app/models/project_team.rb
index 657ee23ae23a19ef1b4103900bf619032d467a9f..bc9c3ce58f68d92c8d133eea61f801ba342005c3 100644
--- a/app/models/project_team.rb
+++ b/app/models/project_team.rb
@@ -160,7 +160,7 @@ class ProjectTeam
     end
 
     user_ids = project_members.pluck(:user_id)
-    user_ids += group_members.pluck(:user_id) if group
+    user_ids.push(*group_members.pluck(:user_id)) if group
 
     User.where(id: user_ids)
   end
diff --git a/app/models/user.rb b/app/models/user.rb
index 7dae318e780d0782eb1a0038741e610687034198..33a0d03370ec5affb9ac18f080f5c686648a1e3c 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -297,8 +297,8 @@ class User < ActiveRecord::Base
   def authorized_projects
     @authorized_projects ||= begin
                                project_ids = personal_projects.pluck(:id)
-                               project_ids += groups_projects.pluck(:id)
-                               project_ids += projects.pluck(:id).uniq
+                               project_ids.push(*groups_projects.pluck(:id))
+                               project_ids.push(*projects.pluck(:id).uniq)
                                Project.where(id: project_ids).joins(:namespace).order('namespaces.name ASC')
                              end
   end
diff --git a/config/application.rb b/config/application.rb
index 8a280de6fac2f73738b660a64fd420de52a32395..a7d371c78ea5a67dacf87a57e59d8c47e5a00b08 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -12,11 +12,11 @@ module Gitlab
     # -- all .rb files in that directory are automatically loaded.
 
     # Custom directories with classes and modules you want to be autoloadable.
-    config.autoload_paths += %W(#{config.root}/lib
-                                #{config.root}/app/models/hooks
-                                #{config.root}/app/models/concerns
-                                #{config.root}/app/models/project_services
-                                #{config.root}/app/models/members)
+    config.autoload_paths.push(*%W(#{config.root}/lib
+                                   #{config.root}/app/models/hooks
+                                   #{config.root}/app/models/concerns
+                                   #{config.root}/app/models/project_services
+                                   #{config.root}/app/models/members))
 
     # Only load the plugins named here, in the order given (default is alphabetical).
     # :all can be used as a placeholder for all plugins not explicitly named.
@@ -31,7 +31,7 @@ module Gitlab
     config.encoding = "utf-8"
 
     # Configure sensitive parameters which will be filtered from the log file.
-    config.filter_parameters += [:password]
+    config.filter_parameters.push(*[:password])
 
     # Enable escaping HTML in JSON.
     config.active_support.escape_html_entities_in_json = true