diff --git a/.rubocop.yml b/.rubocop.yml
index d40e7b5698c7c740002bd459e99f4ce61eb6ee27..ee596679fd5dbdae7df95b2100621173ba596903 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -496,7 +496,13 @@ Style/TrailingBlankLines:
 
 # This cop checks for trailing comma in array and hash literals.
 Style/TrailingCommaInLiteral:
-  Enabled: false
+  Enabled: true
+  EnforcedStyleForMultiline: no_comma
+
+# This cop checks for trailing comma in argument lists.
+Style/TrailingCommaInArguments:
+  Enabled: true
+  EnforcedStyleForMultiline: no_comma
 
 # Checks for %W when interpolation is not needed.
 Style/UnneededCapitalW:
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 38b22afdf82dc522030625d21cd464db2e407fd8..7582f761bcb07b7d39b77b3b523b31a5609e184a 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -369,13 +369,6 @@ Style/SymbolProc:
 Style/TernaryParentheses:
   Enabled: false
 
-# Offense count: 53
-# Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyleForMultiline, SupportedStylesForMultiline.
-# SupportedStylesForMultiline: comma, consistent_comma, no_comma
-Style/TrailingCommaInArguments:
-  Enabled: false
-
 # Offense count: 18
 # Cop supports --auto-correct.
 # Configuration parameters: AllowNamedUnderscoreVariables.
diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb
index 8fdb887a7f9339041fa700ffd25c8830da3d0802..ad51fc835235ee6640d1e0bebbf51258062c76fa 100644
--- a/app/controllers/admin/application_settings_controller.rb
+++ b/app/controllers/admin/application_settings_controller.rb
@@ -174,7 +174,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
       :shared_runners_minutes,
       :minimum_mirror_sync_time,
       :geo_status_timeout,
-      :elasticsearch_experimental_indexer,
+      :elasticsearch_experimental_indexer
     ]
   end
 end
diff --git a/app/controllers/autocomplete_controller.rb b/app/controllers/autocomplete_controller.rb
index 74a2bfd4fe5ed793684f891316d71fda18f61593..776de95f22df45d99c1deaa692da7386b4f40b3d 100644
--- a/app/controllers/autocomplete_controller.rb
+++ b/app/controllers/autocomplete_controller.rb
@@ -45,7 +45,7 @@ class AutocompleteController < ApplicationController
 
     no_project = {
       id: 0,
-      name_with_namespace: 'No project',
+      name_with_namespace: 'No project'
     }
     projects.unshift(no_project) unless params[:offset_id].present?
 
diff --git a/app/controllers/concerns/lfs_request.rb b/app/controllers/concerns/lfs_request.rb
index 876285a44c52dcfbb7e7aa77b0ae1fcee198271b..166cedf42b391cdc547e255439e9269079109779 100644
--- a/app/controllers/concerns/lfs_request.rb
+++ b/app/controllers/concerns/lfs_request.rb
@@ -23,7 +23,7 @@ module LfsRequest
     render(
       json: {
         message: 'Git LFS is not enabled on this GitLab server, contact your admin.',
-        documentation_url: help_url,
+        documentation_url: help_url
       },
       status: 501
     )
@@ -48,7 +48,7 @@ module LfsRequest
     render(
       json: {
         message: 'Access forbidden. Check your access level.',
-        documentation_url: help_url,
+        documentation_url: help_url
       },
       content_type: "application/vnd.git-lfs+json",
       status: 403
@@ -59,7 +59,7 @@ module LfsRequest
     render(
       json: {
         message: 'Not found.',
-        documentation_url: help_url,
+        documentation_url: help_url
       },
       content_type: "application/vnd.git-lfs+json",
       status: 404
@@ -123,7 +123,7 @@ module LfsRequest
       render(
         json: {
           message: Gitlab::RepositorySizeError.new(project).push_error(@exceeded_limit),
-          documentation_url: help_url,
+          documentation_url: help_url
         },
         content_type: "application/vnd.git-lfs+json",
         status: 406
diff --git a/app/controllers/health_controller.rb b/app/controllers/health_controller.rb
index df0fc3132ed922941caac60b5685cf0b7d5b62ed..125746d04264bcf6ca87d9671aa1fa3e530500bb 100644
--- a/app/controllers/health_controller.rb
+++ b/app/controllers/health_controller.rb
@@ -5,7 +5,7 @@ class HealthController < ActionController::Base
   CHECKS = [
     Gitlab::HealthChecks::DbCheck,
     Gitlab::HealthChecks::RedisCheck,
-    Gitlab::HealthChecks::FsShardsCheck,
+    Gitlab::HealthChecks::FsShardsCheck
   ].freeze
 
   def readiness
diff --git a/app/controllers/jwt_controller.rb b/app/controllers/jwt_controller.rb
index 3109439b2ff4853e84ea9733100fdbd154d41933..1c01be0645103e2a278bbb95461986faccd9ef50 100644
--- a/app/controllers/jwt_controller.rb
+++ b/app/controllers/jwt_controller.rb
@@ -4,7 +4,7 @@ class JwtController < ApplicationController
   before_action :authenticate_project_or_user
 
   SERVICES = {
-    Auth::ContainerRegistryAuthenticationService::AUDIENCE => Auth::ContainerRegistryAuthenticationService,
+    Auth::ContainerRegistryAuthenticationService::AUDIENCE => Auth::ContainerRegistryAuthenticationService
   }.freeze
 
   def auth
diff --git a/app/controllers/profiles/preferences_controller.rb b/app/controllers/profiles/preferences_controller.rb
index 0d891ef4004ac3bca56d4a49f6a96ea05b7fe05d..5414142e2df068bd0dbd1d1ffb9150f885813488 100644
--- a/app/controllers/profiles/preferences_controller.rb
+++ b/app/controllers/profiles/preferences_controller.rb
@@ -33,7 +33,7 @@ class Profiles::PreferencesController < Profiles::ApplicationController
       :color_scheme_id,
       :layout,
       :dashboard,
-      :project_view,
+      :project_view
     )
   end
 end
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index 86cd3c5cd699d64e3d3a567e82c92c0d9bc48c23..d24f3390427496adc3be332f6e7c882ab7dd9307 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -217,7 +217,7 @@ class Projects::IssuesController < Projects::ApplicationController
       description_text: @issue.description,
       task_status: @issue.task_status,
       issue_number: @issue.iid,
-      updated_at: @issue.updated_at,
+      updated_at: @issue.updated_at
     }
   end
 
@@ -292,7 +292,7 @@ class Projects::IssuesController < Projects::ApplicationController
   def issue_params
     params.require(:issue).permit(
       :title, :position, :description, :confidential, :weight,
-      :milestone_id, :due_date, :state_event, :task_num, :lock_version, label_ids: [], assignee_ids: [],
+      :milestone_id, :due_date, :state_event, :task_num, :lock_version, label_ids: [], assignee_ids: []
     )
   end
 
diff --git a/app/controllers/projects/lfs_api_controller.rb b/app/controllers/projects/lfs_api_controller.rb
index 8a5a645ed0e4183b6ae27b9c7d51622dfd2367f7..1b0d3aab3fa4bfc833e99bdd08a739ededfa9070 100644
--- a/app/controllers/projects/lfs_api_controller.rb
+++ b/app/controllers/projects/lfs_api_controller.rb
@@ -22,7 +22,7 @@ class Projects::LfsApiController < Projects::GitHttpClientController
     render(
       json: {
         message: 'Server supports batch API only, please update your Git LFS client to version 1.0.1 and up.',
-        documentation_url: "#{Gitlab.config.gitlab.url}/help",
+        documentation_url: "#{Gitlab.config.gitlab.url}/help"
       },
       status: 501
     )
@@ -55,7 +55,7 @@ class Projects::LfsApiController < Projects::GitHttpClientController
       else
         object[:error] = {
           code: 404,
-          message: "Object does not exist on the server or you don't have permissions to access it",
+          message: "Object does not exist on the server or you don't have permissions to access it"
         }
       end
     end
diff --git a/app/controllers/projects/pipelines_controller.rb b/app/controllers/projects/pipelines_controller.rb
index d26ab77c7e78def768a8ff78ab81bc5fe207c5a6..1bf530495d82ad5b56a86cffcfc392842eedd142 100644
--- a/app/controllers/projects/pipelines_controller.rb
+++ b/app/controllers/projects/pipelines_controller.rb
@@ -42,7 +42,7 @@ class Projects::PipelinesController < Projects::ApplicationController
             all: @pipelines_count,
             running: @running_count,
             pending: @pending_count,
-            finished: @finished_count,
+            finished: @finished_count
           }
         }
       end
diff --git a/app/controllers/projects/tree_controller.rb b/app/controllers/projects/tree_controller.rb
index 5e2182c883e1d7c637156567de6d4ac70378c759..3ce65b29b3c02277dc425031c57f4aea75bedc55 100644
--- a/app/controllers/projects/tree_controller.rb
+++ b/app/controllers/projects/tree_controller.rb
@@ -48,7 +48,7 @@ class Projects::TreeController < Projects::ApplicationController
     @dir_name = File.join(@path, params[:dir_name])
     @commit_params = {
       file_path: @dir_name,
-      commit_message: params[:commit_message],
+      commit_message: params[:commit_message]
     }
   end
 end
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 8e37d559cf452f6c8074209437a7f0e30fab8aba..86c236b40afd5230cb39fe090be277fa6a2903d4 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -221,7 +221,7 @@ class ProjectsController < Projects::ApplicationController
     branches = BranchesFinder.new(@repository, params).execute.map(&:name)
 
     options = {
-      'Branches' => branches.take(100),
+      'Branches' => branches.take(100)
     }
 
     unless @repository.tag_count.zero?
diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb
index dc144906548a954115be44fa6b2d1789c51df431..63bc3b11b569304337818ccec224291b47c70a7c 100644
--- a/app/helpers/diff_helper.rb
+++ b/app/helpers/diff_helper.rb
@@ -98,7 +98,7 @@ module DiffHelper
     [
       content_tag(:span, link_to(truncate(blob.name, length: 40), tree)),
       '@',
-      content_tag(:span, commit_id, class: 'monospace'),
+      content_tag(:span, commit_id, class: 'monospace')
     ].join(' ').html_safe
   end
 
diff --git a/app/helpers/emails_helper.rb b/app/helpers/emails_helper.rb
index f927cfc998f0e6c952f20942160344b68ae1f2ce..3b24f183785b82ff5e5fcea0e4387408979a015a 100644
--- a/app/helpers/emails_helper.rb
+++ b/app/helpers/emails_helper.rb
@@ -12,7 +12,7 @@ module EmailsHelper
         "action" => {
           "@type" => "ViewAction",
           "name" => name,
-          "url" => url,
+          "url" => url
           }
         }
 
diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb
index 960111ca045439498959f5d8d04cd090ee61b2c5..c14438da281ab01f702ffa85c46d0e145dbad6fb 100644
--- a/app/helpers/events_helper.rb
+++ b/app/helpers/events_helper.rb
@@ -41,7 +41,7 @@ module EventsHelper
     link_opts = {
       class: "event-filter-link",
       id:    "#{key}_event_filter",
-      title: "Filter by #{tooltip.downcase}",
+      title: "Filter by #{tooltip.downcase}"
     }
 
     content_tag :li, class: active do
diff --git a/app/helpers/explore_helper.rb b/app/helpers/explore_helper.rb
index 7bd212a3ef9474788a08862be82a95a396eee02a..b981a1e8242af332fcdcde20a040c36e50bc9c22 100644
--- a/app/helpers/explore_helper.rb
+++ b/app/helpers/explore_helper.rb
@@ -10,7 +10,7 @@ module ExploreHelper
       personal: params[:personal],
       archived: params[:archived],
       shared: params[:shared],
-      namespace_id: params[:namespace_id],
+      namespace_id: params[:namespace_id]
     }
 
     options = exist_opts.merge(options).delete_if { |key, value| value.blank? }
diff --git a/app/helpers/markup_helper.rb b/app/helpers/markup_helper.rb
index b241a14740b34707d0e61acb3c54cc876ed17bd1..752d0079818c3b9493c03da96aeb9383d1855d4f 100644
--- a/app/helpers/markup_helper.rb
+++ b/app/helpers/markup_helper.rb
@@ -32,7 +32,7 @@ module MarkupHelper
     context = {
       project: @project,
       current_user: (current_user if defined?(current_user)),
-      pipeline: :single_line,
+      pipeline: :single_line
     }
     gfm_body = Banzai.render(body, context)
 
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index 5151ad79534ee24cd071b327ff4adb924e6a6838..5826f777f41488c9f93a981d93ce948450efc147 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -54,7 +54,7 @@ module MergeRequestsHelper
         source_project_id: merge_request.source_project_id,
         target_project_id: merge_request.target_project_id,
         source_branch: merge_request.source_branch,
-        target_branch: merge_request.target_branch,
+        target_branch: merge_request.target_branch
       },
       change_branches: true
     )
diff --git a/app/helpers/notes_helper.rb b/app/helpers/notes_helper.rb
index 52403640c053ecac4d12625576d879456b1eb367..375110b77e2317015573db279dc0ff97ffc7748c 100644
--- a/app/helpers/notes_helper.rb
+++ b/app/helpers/notes_helper.rb
@@ -19,7 +19,7 @@ module NotesHelper
       id: noteable.id,
       class: noteable.class.name,
       resources: noteable.class.table_name,
-      project_id: noteable.project.id,
+      project_id: noteable.project.id
     }.to_json
   end
 
@@ -34,7 +34,7 @@ module NotesHelper
 
     data = {
       line_code: line_code,
-      line_type: line_type,
+      line_type: line_type
     }
 
     if @use_legacy_diff_notes
diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb
index 9c1a2f2ae6df7a319056c14bb082a80e64f6123e..117cdd4a7afb15f00dec689d7709258f735c1132 100644
--- a/app/helpers/search_helper.rb
+++ b/app/helpers/search_helper.rb
@@ -50,7 +50,7 @@ module SearchHelper
       { category: "Settings", label: "User settings",    url: profile_path },
       { category: "Settings", label: "SSH Keys",         url: profile_keys_path },
       { category: "Settings", label: "Dashboard",        url: root_path },
-      { category: "Settings", label: "Admin Section",    url: admin_root_path },
+      { category: "Settings", label: "Admin Section",    url: admin_root_path }
     ]
   end
 
@@ -65,7 +65,7 @@ module SearchHelper
       { category: "Help", label: "SSH Keys Help",      url: help_page_path("ssh/README") },
       { category: "Help", label: "System Hooks Help",  url: help_page_path("system_hooks/system_hooks") },
       { category: "Help", label: "Webhooks Help",      url: help_page_path("user/project/integrations/webhooks") },
-      { category: "Help", label: "Workflow Help",      url: help_page_path("workflow/README") },
+      { category: "Help", label: "Workflow Help",      url: help_page_path("workflow/README") }
     ]
   end
 
@@ -84,7 +84,7 @@ module SearchHelper
         { category: "Current Project", label: "Milestones",     url: namespace_project_milestones_path(@project.namespace, @project) },
         { category: "Current Project", label: "Snippets",       url: namespace_project_snippets_path(@project.namespace, @project) },
         { category: "Current Project", label: "Members",        url: namespace_project_settings_members_path(@project.namespace, @project) },
-        { category: "Current Project", label: "Wiki",           url: namespace_project_wikis_path(@project.namespace, @project) },
+        { category: "Current Project", label: "Wiki",           url: namespace_project_wikis_path(@project.namespace, @project) }
       ]
     else
       []
diff --git a/app/helpers/selects_helper.rb b/app/helpers/selects_helper.rb
index e6dcc519b74e14dbb6b2c23f1bcfbf53fe96d616..caa28ee1bb095a39446ff682d54f9bf41f5b2ce0 100644
--- a/app/helpers/selects_helper.rb
+++ b/app/helpers/selects_helper.rb
@@ -84,7 +84,7 @@ module SelectsHelper
       current_user: opts[:current_user] || false,
       "push-code-to-protected-branches" => opts[:push_code_to_protected_branches],
       author_id: opts[:author_id] || '',
-      skip_users: opts[:skip_users] ? opts[:skip_users].map(&:id) : nil,
+      skip_users: opts[:skip_users] ? opts[:skip_users].map(&:id) : nil
     }
   end
 end
diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb
index c61170d711c2a65f4fc3d237635fc8a5b9d97d80..487bdf347bf13aeb44db07cc52b45776a981e789 100644
--- a/app/helpers/sorting_helper.rb
+++ b/app/helpers/sorting_helper.rb
@@ -60,7 +60,7 @@ module SortingHelper
       sort_value_due_date_soon => sort_title_due_date_soon,
       sort_value_due_date_later => sort_title_due_date_later,
       sort_value_start_date_soon => sort_title_start_date_soon,
-      sort_value_start_date_later => sort_title_start_date_later,
+      sort_value_start_date_later => sort_title_start_date_later
     }
   end
 
diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb
index f19e2f9db9c7c0b934e2bc22cde71b69c511caf3..0ff2d5ce4cd8c338d5f6ead5a2f150fef34fece2 100644
--- a/app/helpers/todos_helper.rb
+++ b/app/helpers/todos_helper.rb
@@ -63,7 +63,7 @@ module TodosHelper
       project_id: params[:project_id],
       author_id:  params[:author_id],
       type:       params[:type],
-      action_id:  params[:action_id],
+      action_id:  params[:action_id]
     }
   end
 
diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb
index 17338cea73e84aa6a3570322d0c7bc139f9effec..e31fa4e07fcb9b9dbdb4af506baafa13226e5068 100644
--- a/app/models/application_setting.rb
+++ b/app/models/application_setting.rb
@@ -318,7 +318,7 @@ class ApplicationSetting < ActiveRecord::Base
       aws:                   elasticsearch_aws,
       aws_access_key:        elasticsearch_aws_access_key,
       aws_secret_access_key: elasticsearch_aws_secret_access_key,
-      aws_region:            elasticsearch_aws_region,
+      aws_region:            elasticsearch_aws_region
     }
   end
 
diff --git a/app/models/blob.rb b/app/models/blob.rb
index eaf0b713122883f379a374d51195ba0def7b550a..8452a96e909c501b1310246257c59128f1f6beeb 100644
--- a/app/models/blob.rb
+++ b/app/models/blob.rb
@@ -33,7 +33,7 @@ class Blob < SimpleDelegator
     BlobViewer::PDF,
 
     BlobViewer::BinarySTL,
-    BlobViewer::TextSTL,
+    BlobViewer::TextSTL
   ].freeze
 
   BINARY_VIEWERS = RICH_VIEWERS.select(&:binary?).freeze
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 88a015cdb77b4dc70f530b01b6dafa830184a77f..58f646d3ef61931bf6c27b8ef708547e4c8ede6b 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -49,7 +49,7 @@ class Commit
     def max_diff_options
       {
         max_files: DIFF_HARD_LIMIT_FILES,
-        max_lines: DIFF_HARD_LIMIT_LINES,
+        max_lines: DIFF_HARD_LIMIT_LINES
       }
     end
 
diff --git a/app/models/diff_discussion.rb b/app/models/diff_discussion.rb
index d627fbe327fef7a1ce85ee988e6a8299cf170a45..14ddd2fcc884446d26bfde06fb4e5a4bbbedf12b 100644
--- a/app/models/diff_discussion.rb
+++ b/app/models/diff_discussion.rb
@@ -39,7 +39,7 @@ class DiffDiscussion < Discussion
   def reply_attributes
     super.merge(
       original_position: original_position.to_json,
-      position: position.to_json,
+      position: position.to_json
     )
   end
 end
diff --git a/app/models/environment.rb b/app/models/environment.rb
index fe8cad20c4da624a8107326ab837e0efa278ebc9..0124689f7f22fe01c9c4942f8def733353f0ba9e 100644
--- a/app/models/environment.rb
+++ b/app/models/environment.rb
@@ -62,7 +62,7 @@ class Environment < ActiveRecord::Base
   def predefined_variables
     [
       { key: 'CI_ENVIRONMENT_NAME', value: name, public: true },
-      { key: 'CI_ENVIRONMENT_SLUG', value: slug, public: true },
+      { key: 'CI_ENVIRONMENT_SLUG', value: slug, public: true }
     ]
   end
 
diff --git a/app/models/hooks/web_hook.rb b/app/models/hooks/web_hook.rb
index 595602e80fe6593cb154cde5ad766e6cc013f5b1..22a177ed36730b653cb70a5852519ad677e95ad1 100644
--- a/app/models/hooks/web_hook.rb
+++ b/app/models/hooks/web_hook.rb
@@ -31,7 +31,7 @@ class WebHook < ActiveRecord::Base
       post_url = url.gsub("#{parsed_url.userinfo}@", '')
       auth = {
         username: CGI.unescape(parsed_url.user),
-        password: CGI.unescape(parsed_url.password),
+        password: CGI.unescape(parsed_url.password)
       }
       response = WebHook.post(post_url,
                               body: data.to_json,
diff --git a/app/models/key.rb b/app/models/key.rb
index 8d547bed5f4f0c76a9d2555360ff493e96812476..93491728f754daf3b73f05ee3c593b31e60464af 100644
--- a/app/models/key.rb
+++ b/app/models/key.rb
@@ -76,7 +76,7 @@ class Key < ActiveRecord::Base
     GitlabShellWorker.perform_async(
       :remove_key,
       shell_id,
-      key,
+      key
     )
   end
 
diff --git a/app/models/license.rb b/app/models/license.rb
index e4fef845c68624f7b0c4b52a6a9062f1c0d2a6bc..76f7fd7f1f3be3eda606a7930244f170f3cd6e52 100644
--- a/app/models/license.rb
+++ b/app/models/license.rb
@@ -11,12 +11,12 @@ class License < ActiveRecord::Base
     { 'GitLab_FileLocks' => 1 },
     { 'GitLab_Geo' => 1 },
     { 'GitLab_Auditor_User' => 1 },
-    { 'GitLab_ServiceDesk' => 1 },
+    { 'GitLab_ServiceDesk' => 1 }
   ].freeze
 
   FEATURES_BY_PLAN = {
     'starter'  => EES_FEATURES,
-    'premium'  => EEP_FEATURES,
+    'premium'  => EEP_FEATURES
   }.freeze
 
   validate :valid_license
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index 041bda5c34313ffb7768b1e510f9266053c19bca..fdcaa15a00c76cad24d199918b88eb3b883d921b 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -57,7 +57,7 @@ class Namespace < ActiveRecord::Base
         'COALESCE(SUM(ps.storage_size), 0) AS storage_size',
         'COALESCE(SUM(ps.repository_size), 0) AS repository_size',
         'COALESCE(SUM(ps.lfs_objects_size), 0) AS lfs_objects_size',
-        'COALESCE(SUM(ps.build_artifacts_size), 0) AS build_artifacts_size',
+        'COALESCE(SUM(ps.build_artifacts_size), 0) AS build_artifacts_size'
       )
   end
 
diff --git a/app/models/project.rb b/app/models/project.rb
index c3c21c3fcd3d9cbc8cfe4287f3915ea12214c755..ecac00ff7b647e4c0a3b662f873bd67f15842a72 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1093,7 +1093,7 @@ class Project < ActiveRecord::Base
       namespace: namespace.name,
       visibility_level: visibility_level,
       path_with_namespace: path_with_namespace,
-      default_branch: default_branch,
+      default_branch: default_branch
     }
 
     # Backward compatibility
diff --git a/app/models/project_services/bamboo_service.rb b/app/models/project_services/bamboo_service.rb
index 400020ee04aa8ebd87a50159e84b433a106faf94..3f5b3eb159b5386eaea480ea2cf069e9b196c133 100644
--- a/app/models/project_services/bamboo_service.rb
+++ b/app/models/project_services/bamboo_service.rb
@@ -52,7 +52,7 @@ class BambooService < CiService
           placeholder: 'Bamboo build plan key like KEY' },
         { type: 'text', name: 'username',
           placeholder: 'A user with API access, if applicable' },
-        { type: 'password', name: 'password' },
+        { type: 'password', name: 'password' }
     ]
   end
 
diff --git a/app/models/project_services/chat_notification_service.rb b/app/models/project_services/chat_notification_service.rb
index fa782c6fbb7885b56b84405461d00144228fea3b..a81591eab58db89487e7c88a9866a3435072d6e2 100644
--- a/app/models/project_services/chat_notification_service.rb
+++ b/app/models/project_services/chat_notification_service.rb
@@ -39,7 +39,7 @@ class ChatNotificationService < Service
       { type: 'text', name: 'webhook', placeholder: "e.g. #{webhook_placeholder}" },
       { type: 'text', name: 'username', placeholder: 'e.g. GitLab' },
       { type: 'checkbox', name: 'notify_only_broken_pipelines' },
-      { type: 'checkbox', name: 'notify_only_default_branch' },
+      { type: 'checkbox', name: 'notify_only_default_branch' }
     ]
   end
 
diff --git a/app/models/project_services/emails_on_push_service.rb b/app/models/project_services/emails_on_push_service.rb
index f4f913ee0b60518488ee735d2cad40cfefe0b6d2..1a236e232f96e85ee5d2693b242dac9b6da4c26e 100644
--- a/app/models/project_services/emails_on_push_service.rb
+++ b/app/models/project_services/emails_on_push_service.rb
@@ -47,7 +47,7 @@ class EmailsOnPushService < Service
         help: "Send notifications from the committer's email address if the domain is part of the domain GitLab is running on (e.g. #{domains})." },
       { type: 'checkbox', name: 'disable_diffs', title: "Disable code diffs",
         help: "Don't include possibly sensitive code diffs in notification body." },
-      { type: 'textarea', name: 'recipients', placeholder: 'Emails separated by whitespace' },
+      { type: 'textarea', name: 'recipients', placeholder: 'Emails separated by whitespace' }
     ]
   end
 end
diff --git a/app/models/project_services/external_wiki_service.rb b/app/models/project_services/external_wiki_service.rb
index bdf6fa6a5860eba9b017a39d57cdae8745deb7e2..b4d7c977ce46fe1b9550474529f90fd15c4ba719 100644
--- a/app/models/project_services/external_wiki_service.rb
+++ b/app/models/project_services/external_wiki_service.rb
@@ -19,7 +19,7 @@ class ExternalWikiService < Service
 
   def fields
     [
-      { type: 'text', name: 'external_wiki_url', placeholder: 'The URL of the external Wiki' },
+      { type: 'text', name: 'external_wiki_url', placeholder: 'The URL of the external Wiki' }
     ]
   end
 
diff --git a/app/models/project_services/flowdock_service.rb b/app/models/project_services/flowdock_service.rb
index 10a13c3fbdcb57962dd6ebe0f71bddefe819b5ed..2a05d757eb4a7a70eadcf0355b1afdbda8af52a4 100644
--- a/app/models/project_services/flowdock_service.rb
+++ b/app/models/project_services/flowdock_service.rb
@@ -37,7 +37,7 @@ class FlowdockService < Service
       repo: project.repository.path_to_repo,
       repo_url: "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}",
       commit_url: "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}/commit/%s",
-      diff_url: "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}/compare/%s...%s",
+      diff_url: "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}/compare/%s...%s"
     )
   end
 end
diff --git a/app/models/project_services/hipchat_service.rb b/app/models/project_services/hipchat_service.rb
index 5173db4faae908f18a17f39ad0d69ea0159bf821..5023586b9d46f09015f20a492ac4059a6d029fac 100644
--- a/app/models/project_services/hipchat_service.rb
+++ b/app/models/project_services/hipchat_service.rb
@@ -41,7 +41,7 @@ class HipchatService < Service
         placeholder: 'Leave blank for default (v2)' },
       { type: 'text', name: 'server',
         placeholder: 'Leave blank for default. https://hipchat.example.com' },
-      { type: 'checkbox', name: 'notify_only_broken_pipelines' },
+      { type: 'checkbox', name: 'notify_only_broken_pipelines' }
     ]
   end
 
diff --git a/app/models/project_services/irker_service.rb b/app/models/project_services/irker_service.rb
index c62bb4fa120c29af99ac80c913a0234feab6faf7..a51d43adcb90c6f9e2546cb431d3d69ddacec269 100644
--- a/app/models/project_services/irker_service.rb
+++ b/app/models/project_services/irker_service.rb
@@ -58,7 +58,7 @@ class IrkerService < Service
         ' want to use a password, you have to omit the "#" on the channel). If you ' \
         ' specify a default IRC URI to prepend before each recipient, you can just ' \
         ' give a channel name.'  },
-      { type: 'checkbox', name: 'colorize_messages' },
+      { type: 'checkbox', name: 'colorize_messages' }
     ]
   end
 
diff --git a/app/models/project_services/jenkins_deprecated_service.rb b/app/models/project_services/jenkins_deprecated_service.rb
index 46873339e15cc6014daa0931b39a967996bc0526..5c5261cdea389d7d296c97f43ae2607ebf6d9acb 100644
--- a/app/models/project_services/jenkins_deprecated_service.rb
+++ b/app/models/project_services/jenkins_deprecated_service.rb
@@ -90,7 +90,7 @@ class JenkinsDeprecatedService < CiService
       get_url = build_page(sha, ref).gsub("#{parsed_url.userinfo}@", "")
       auth = {
         username: URI.decode(parsed_url.user),
-        password: URI.decode(parsed_url.password),
+        password: URI.decode(parsed_url.password)
       }
       response = HTTParty.get(get_url, verify: false, basic_auth: auth)
     end
diff --git a/app/models/project_services/jenkins_service.rb b/app/models/project_services/jenkins_service.rb
index 82500ba9669adbc0f57508f4dbe69ef88ccbd8aa..c2a00d36764a94f9111fab818c5158374872e388 100644
--- a/app/models/project_services/jenkins_service.rb
+++ b/app/models/project_services/jenkins_service.rb
@@ -83,7 +83,7 @@ class JenkinsService < CiService
         help: 'The URL-friendly project name. Example: my_project_name'
       },
       { type: 'text', name: 'username' },
-      { type: 'password', name: 'password' },
+      { type: 'password', name: 'password' }
     ]
   end
 end
diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb
index 97e997d38996f35aef60525dfbead9db16b2270f..f388773efee7431a67ee94f7ad4105e57b4ff3c2 100644
--- a/app/models/project_services/jira_service.rb
+++ b/app/models/project_services/jira_service.rb
@@ -149,7 +149,7 @@ class JiraService < IssueTrackerService
     data = {
       user: {
         name: author.name,
-        url: resource_url(user_path(author)),
+        url: resource_url(user_path(author))
       },
       project: {
         name: self.project.path_with_namespace,
diff --git a/app/models/project_services/kubernetes_service.rb b/app/models/project_services/kubernetes_service.rb
index ee8eb50c907ceeab26a19c953c017e48db23109a..c74d6e2e33e06a3bd03374a7ed8317f62da9ccd7 100644
--- a/app/models/project_services/kubernetes_service.rb
+++ b/app/models/project_services/kubernetes_service.rb
@@ -73,7 +73,7 @@ class KubernetesService < DeploymentService
         { type: 'textarea',
           name: 'ca_pem',
           title: 'Custom CA bundle',
-          placeholder: 'Certificate Authority bundle (PEM format)' },
+          placeholder: 'Certificate Authority bundle (PEM format)' }
     ]
   end
 
diff --git a/app/models/project_services/microsoft_teams_service.rb b/app/models/project_services/microsoft_teams_service.rb
index 9b218fd81b4c2bd61c269a163502889dad646a61..2facff53e26375db61f048869282d668900b35b1 100644
--- a/app/models/project_services/microsoft_teams_service.rb
+++ b/app/models/project_services/microsoft_teams_service.rb
@@ -35,7 +35,7 @@ class MicrosoftTeamsService < ChatNotificationService
     [
       { type: 'text', name: 'webhook', placeholder: "e.g. #{webhook_placeholder}" },
       { type: 'checkbox', name: 'notify_only_broken_pipelines' },
-      { type: 'checkbox', name: 'notify_only_default_branch' },
+      { type: 'checkbox', name: 'notify_only_default_branch' }
     ]
   end
 
diff --git a/app/models/project_services/mock_ci_service.rb b/app/models/project_services/mock_ci_service.rb
index a8d581a1f678f3f3f2fe058e4786e9ac8b66e20c..546b6e0a49890733cb84b375e5c978f07e7607c5 100644
--- a/app/models/project_services/mock_ci_service.rb
+++ b/app/models/project_services/mock_ci_service.rb
@@ -21,7 +21,7 @@ class MockCiService < CiService
     [
       { type: 'text',
         name: 'mock_service_url',
-        placeholder: 'http://localhost:4004' },
+        placeholder: 'http://localhost:4004' }
     ]
   end
 
diff --git a/app/models/project_services/pipelines_email_service.rb b/app/models/project_services/pipelines_email_service.rb
index ac617f409d9417bbf4cbdce6e37c27d1ada590ef..f824171ad097d3e22106e292d4755475de4c98a4 100644
--- a/app/models/project_services/pipelines_email_service.rb
+++ b/app/models/project_services/pipelines_email_service.rb
@@ -55,7 +55,7 @@ class PipelinesEmailService < Service
         name: 'recipients',
         placeholder: 'Emails separated by comma' },
       { type: 'checkbox',
-        name: 'notify_only_broken_pipelines' },
+        name: 'notify_only_broken_pipelines' }
     ]
   end
 
diff --git a/app/models/project_services/pushover_service.rb b/app/models/project_services/pushover_service.rb
index 3e618a8dbf1a86db492dc1819df6f685ef784a10..fc29a5277bbff9175e98c10d513fe6845631cfbf 100644
--- a/app/models/project_services/pushover_service.rb
+++ b/app/models/project_services/pushover_service.rb
@@ -55,7 +55,7 @@ class PushoverService < Service
           ['Pushover Echo (long)', 'echo'],
           ['Up Down (long)', 'updown'],
           ['None (silent)', 'none']
-        ] },
+        ] }
     ]
   end
 
diff --git a/app/models/project_services/teamcity_service.rb b/app/models/project_services/teamcity_service.rb
index cbaffb8ce48558370314be5056c0c94b9ec6ceb2..b16beb406b93228b9f1e84c6bf02bbe7da95a099 100644
--- a/app/models/project_services/teamcity_service.rb
+++ b/app/models/project_services/teamcity_service.rb
@@ -55,7 +55,7 @@ class TeamcityService < CiService
         placeholder: 'Build configuration ID' },
       { type: 'text', name: 'username',
         placeholder: 'A user with permissions to trigger a manual build' },
-      { type: 'password', name: 'password' },
+      { type: 'password', name: 'password' }
     ]
   end
 
@@ -78,7 +78,7 @@ class TeamcityService < CiService
 
     auth = {
       username: username,
-      password: password,
+      password: password
     }
 
     branch = Gitlab::Git.ref_name(data[:ref])
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 0efb2a78436f975687988e9276e1dd2be4508ae4..0fbe5bbbe60f0ff93747978392a777a153604f42 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -859,7 +859,7 @@ class Repository
 
       actual_options = options.merge(
         parents: [our_commit, their_commit],
-        tree: merge_index.write_tree(rugged),
+        tree: merge_index.write_tree(rugged)
       )
 
       commit_id = create_commit(actual_options)
diff --git a/app/models/sent_notification.rb b/app/models/sent_notification.rb
index bfaf0eb2fae152ad10766aabfef5fc5903847c2a..0ae5864615a5ee4bc79ef3534e410b7e257e0552 100644
--- a/app/models/sent_notification.rb
+++ b/app/models/sent_notification.rb
@@ -39,7 +39,7 @@ class SentNotification < ActiveRecord::Base
 
         noteable_type: noteable.class.name,
         noteable_id: noteable_id,
-        commit_id: commit_id,
+        commit_id: commit_id
       )
 
       create(attrs)
diff --git a/app/services/akismet_service.rb b/app/services/akismet_service.rb
index 76b9f1feda776b76b2fa55691ffae3a756100996..8e11a2a36a755feac27cd1e1db09a5fd424e6d32 100644
--- a/app/services/akismet_service.rb
+++ b/app/services/akismet_service.rb
@@ -16,7 +16,7 @@ class AkismetService
       created_at: DateTime.now,
       author: owner.name,
       author_email: owner.email,
-      referrer: options[:referrer],
+      referrer: options[:referrer]
     }
 
     begin
diff --git a/app/services/audit_event_service.rb b/app/services/audit_event_service.rb
index 36417f3f382854aa96c05024af3e6943d665fbf9..653a69150c1e26b18a4fe13ea4d9e9671e3ec0bf 100644
--- a/app/services/audit_event_service.rb
+++ b/app/services/audit_event_service.rb
@@ -18,7 +18,7 @@ class AuditEventService
           author_name: author_name,
           target_id: user_id,
           target_type: "User",
-          target_details: user_name,
+          target_details: user_name
         }
       when :create
         {
@@ -27,7 +27,7 @@ class AuditEventService
           author_name: author_name,
           target_id: user_id,
           target_type: "User",
-          target_details: user_name,
+          target_details: user_name
         }
       when :update
         {
@@ -37,7 +37,7 @@ class AuditEventService
           author_name: author_name,
           target_id: user_id,
           target_type: "User",
-          target_details: user_name,
+          target_details: user_name
         }
       end
 
@@ -56,7 +56,7 @@ class AuditEventService
           author_name: author_name,
           target_id: key_title,
           target_type: "DeployKey",
-          target_details: key_title,
+          target_details: key_title
         }
       when :create
         {
@@ -64,7 +64,7 @@ class AuditEventService
           author_name: author_name,
           target_id: key_title,
           target_type: "DeployKey",
-          target_details: key_title,
+          target_details: key_title
         }
       end
 
@@ -76,7 +76,7 @@ class AuditEventService
       with: @details[:with],
       target_id: @author.id,
       target_type: 'User',
-      target_details: @author.name,
+      target_details: @author.name
     }
 
     self
diff --git a/app/services/boards/issues/move_service.rb b/app/services/boards/issues/move_service.rb
index e73b1a4361ac68c3fa24d854c875475ac4f59839..ecabb2a48e4aca1dcf9873482714d93cd201a906 100644
--- a/app/services/boards/issues/move_service.rb
+++ b/app/services/boards/issues/move_service.rb
@@ -38,7 +38,7 @@ module Boards
           attrs.merge!(
             add_label_ids: add_label_ids,
             remove_label_ids: remove_label_ids,
-            state_event: issue_state,
+            state_event: issue_state
           )
         end
 
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index c4022c7c8e1d818b0ad38cd895412f319e503e42..3de65dd61296f288cfe57100f4183448c97db17d 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -321,7 +321,7 @@ class NotificationService
     recipients ||= NotificationRecipientService.new(pipeline.project).build_pipeline_recipients(
       pipeline,
       pipeline.user,
-      action: pipeline.status,
+      action: pipeline.status
     ).map(&:notification_email)
 
     if recipients.any?
diff --git a/app/services/projects/update_pages_configuration_service.rb b/app/services/projects/update_pages_configuration_service.rb
index eb4809afa857fb9acc6ccf80c686d5ec8eaea8a7..cacb74b12051ecbece9d0345466f3f02ec042106 100644
--- a/app/services/projects/update_pages_configuration_service.rb
+++ b/app/services/projects/update_pages_configuration_service.rb
@@ -27,7 +27,7 @@ module Projects
         {
           domain: domain.domain,
           certificate: domain.certificate,
-          key: domain.key,
+          key: domain.key
         }
       end
     end
diff --git a/app/services/system_hooks_service.rb b/app/services/system_hooks_service.rb
index af0ddbe59349a7aaa3428c961bf74fbf2851ba7e..ed476fc9d0cd68019f39aaedb208e9cfda8a2b18 100644
--- a/app/services/system_hooks_service.rb
+++ b/app/services/system_hooks_service.rb
@@ -51,7 +51,7 @@ class SystemHooksService
         path: model.path,
         group_id: model.id,
         owner_name: owner.respond_to?(:name) ? owner.name : nil,
-        owner_email: owner.respond_to?(:email) ? owner.email : nil,
+        owner_email: owner.respond_to?(:email) ? owner.email : nil
       )
     when GroupMember
       data.merge!(group_member_data(model))
@@ -113,7 +113,7 @@ class SystemHooksService
       user_name: model.user.name,
       user_email: model.user.email,
       user_id: model.user.id,
-      group_access: model.human_access,
+      group_access: model.human_access
     }
   end
 end
diff --git a/app/workers/repository_check/clear_worker.rb b/app/workers/repository_check/clear_worker.rb
index 1f1b38540eeef0d0acc5141b9b1939fb7f1bcdf4..85bc9103538dd3f3a61499d326aa8d85741ad5bc 100644
--- a/app/workers/repository_check/clear_worker.rb
+++ b/app/workers/repository_check/clear_worker.rb
@@ -8,7 +8,7 @@ module RepositoryCheck
       Project.select(:id).find_in_batches(batch_size: 100) do |batch|
         Project.where(id: batch.map(&:id)).update_all(
           last_repository_check_failed: nil,
-          last_repository_check_at: nil,
+          last_repository_check_at: nil
         )
       end
     end
diff --git a/app/workers/repository_check/single_repository_worker.rb b/app/workers/repository_check/single_repository_worker.rb
index 3d8bfc6fc6c4d1af52191cf0eb325c29101609e0..164586cf0b742b8b0b9e491b414a05f565b384b6 100644
--- a/app/workers/repository_check/single_repository_worker.rb
+++ b/app/workers/repository_check/single_repository_worker.rb
@@ -7,7 +7,7 @@ module RepositoryCheck
       project = Project.find(project_id)
       project.update_columns(
         last_repository_check_failed: !check(project),
-        last_repository_check_at: Time.now,
+        last_repository_check_at: Time.now
       )
     end
 
diff --git a/config/initializers/ar_monkey_patch.rb b/config/initializers/ar_monkey_patch.rb
index 6979f4641b013e591adff9d92e22618ff9f0ca40..9266ff0f615a486170d1160ee3c99371d1797aa9 100644
--- a/config/initializers/ar_monkey_patch.rb
+++ b/config/initializers/ar_monkey_patch.rb
@@ -33,7 +33,7 @@ module ActiveRecord
 
           affected_rows = relation.where(
             self.class.primary_key => id,
-            lock_col => previous_lock_value,
+            lock_col => previous_lock_value
           ).update_all(
             attributes_for_update(attribute_names).map do |name|
               [name, _read_attribute(name)]
diff --git a/config/initializers/hamlit.rb b/config/initializers/hamlit.rb
index 7b545d8c06c6eea5e53597d11b9867c013df2c8d..51dbffeda05030a8b79248241e3ffe92fe4f0057 100644
--- a/config/initializers/hamlit.rb
+++ b/config/initializers/hamlit.rb
@@ -3,7 +3,7 @@ module Hamlit
     def call(template)
       Engine.new(
         generator: Temple::Generators::RailsOutputBuffer,
-        attr_quote: '"',
+        attr_quote: '"'
       ).call(template.source)
     end
   end
@@ -11,7 +11,7 @@ end
 
 ActionView::Template.register_template_handler(
   :haml,
-  Hamlit::TemplateHandler.new,
+  Hamlit::TemplateHandler.new
 )
 
 Hamlit::Filters.remove_filter('coffee')
diff --git a/config/initializers/static_files.rb b/config/initializers/static_files.rb
index 74aba6c5d0611816dce7e47f6d756d59eb727576..9ed96ddb0b4b4ec7716a5a911bc469df5b9e7fab 100644
--- a/config/initializers/static_files.rb
+++ b/config/initializers/static_files.rb
@@ -23,21 +23,21 @@ if app.config.serve_static_files
       host: dev_server.host,
       port: dev_server.port,
       manifest_host: dev_server.host,
-      manifest_port: dev_server.port,
+      manifest_port: dev_server.port
     }
 
     if Rails.env.development?
       settings.merge!(
         host: Gitlab.config.gitlab.host,
         port: Gitlab.config.gitlab.port,
-        https: Gitlab.config.gitlab.https,
+        https: Gitlab.config.gitlab.https
       )
       app.config.middleware.insert_before(
         Gitlab::Middleware::Static,
         Gitlab::Middleware::WebpackProxy,
         proxy_path: app.config.webpack.public_path,
         proxy_host: dev_server.host,
-        proxy_port: dev_server.port,
+        proxy_port: dev_server.port
       )
     end
 
diff --git a/db/migrate/20160810142633_remove_redundant_indexes.rb b/db/migrate/20160810142633_remove_redundant_indexes.rb
index d7ab022d7bc06cefb570d3ef8a44dd95cfc484b9..ea7d1f9a4369c17f9b7aa76739afa856db29080e 100644
--- a/db/migrate/20160810142633_remove_redundant_indexes.rb
+++ b/db/migrate/20160810142633_remove_redundant_indexes.rb
@@ -69,7 +69,7 @@ class RemoveRedundantIndexes < ActiveRecord::Migration
       [:namespaces, 'index_namespaces_on_created_at_and_id'],
       [:notes, 'index_notes_on_created_at_and_id'],
       [:projects, 'index_projects_on_created_at_and_id'],
-      [:users, 'index_users_on_created_at_and_id'],
+      [:users, 'index_users_on_created_at_and_id']
     ]
 
     transaction do
diff --git a/db/migrate/20160829114652_add_markdown_cache_columns.rb b/db/migrate/20160829114652_add_markdown_cache_columns.rb
index 9cb44dfa9f9e9c1d80855d8b5fa6c5be9aca7aad..6ad7237f4cd7ae56511b0b1df05fc070eb5de34b 100644
--- a/db/migrate/20160829114652_add_markdown_cache_columns.rb
+++ b/db/migrate/20160829114652_add_markdown_cache_columns.rb
@@ -25,7 +25,7 @@ class AddMarkdownCacheColumns < ActiveRecord::Migration
     notes: [:note],
     projects: [:description],
     releases: [:description],
-    snippets: [:title, :content],
+    snippets: [:title, :content]
   }.freeze
 
   def change
diff --git a/db/migrate/20161021185735_migrate_ee_sidekiq_queues_from_default.rb b/db/migrate/20161021185735_migrate_ee_sidekiq_queues_from_default.rb
index 97a5428137a6594d3b8fc37ba35fcc89c77113a0..e04762268e698a1d2da4e0fdf9f1523f4c091b4b 100644
--- a/db/migrate/20161021185735_migrate_ee_sidekiq_queues_from_default.rb
+++ b/db/migrate/20161021185735_migrate_ee_sidekiq_queues_from_default.rb
@@ -22,7 +22,7 @@ class MigrateEESidekiqQueuesFromDefault < ActiveRecord::Migration
   RENAMED_QUEUES = {
     default: {
       'LdapGroupSyncWorker' => :cronjob,
-      'LdapSyncWorker'      => :cronjob,
+      'LdapSyncWorker'      => :cronjob
     }
   }.freeze
 
diff --git a/features/steps/explore/projects.rb b/features/steps/explore/projects.rb
index 7dc33ab5683469249b167f4340e1f07b563b3016..b2194275751013972855181bf285f5c1a2e81626 100644
--- a/features/steps/explore/projects.rb
+++ b/features/steps/explore/projects.rb
@@ -101,7 +101,7 @@ class Spinach::Features::ExploreProjects < Spinach::FeatureSteps
     create(:merge_request,
       title: "Bug fix for public project",
       source_project: public_project,
-      target_project: public_project,
+      target_project: public_project
           )
   end
 
diff --git a/lib/api/groups.rb b/lib/api/groups.rb
index 13ff8c9eec5f8d481cccc30b5990310ec74665bf..e3f0a5f69561d5d600c38876d87a529db9518e4e 100644
--- a/lib/api/groups.rb
+++ b/lib/api/groups.rb
@@ -32,7 +32,7 @@ module API
       def present_groups(groups, options = {})
         options = options.reverse_merge(
           with: Entities::Group,
-          current_user: current_user,
+          current_user: current_user
         )
 
         groups = groups.with_statistics if options[:statistics]
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 6f64dd6b217016038a24dea40695a3ac21cdcf3c..a5bf3a0cacb49c87075ec6fd0322079216df063d 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -310,7 +310,7 @@ module API
       UploadedFile.new(
         file_path,
         params["#{field}.name"],
-        params["#{field}.type"] || 'application/octet-stream',
+        params["#{field}.type"] || 'application/octet-stream'
       )
     end
 
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index 96c447cd9be7e08ea4cc847e8fa840bcc70f80d0..147b76620d220fbb649d3d5ccb012702d6780733 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -102,7 +102,7 @@ module API
         {
           api_version: API.version,
           gitlab_version: Gitlab::VERSION,
-          gitlab_rev: Gitlab::REVISION,
+          gitlab_rev: Gitlab::REVISION
         }
       end
 
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 37d7d3ebb5dcada868c986f1f91c8aea0b8a2965..befdaf3bbba4b3dce33d3b2019dd80badd707974 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -75,7 +75,7 @@ module API
           options = options.reverse_merge(
             with: Entities::Project,
             current_user: current_user,
-            simple: params[:simple],
+            simple: params[:simple]
           )
 
           projects = filter_projects(projects)
@@ -232,7 +232,7 @@ module API
             :shared_runners_enabled,
             :snippets_enabled,
             :visibility,
-            :wiki_enabled,
+            :wiki_enabled
           ]
         optional :name, type: String, desc: 'The name of the project'
         optional :default_branch, type: String, desc: 'The default branch of the project'
diff --git a/lib/api/services.rb b/lib/api/services.rb
index 6ea6cc14a1c9e3e2ff5f675281cf50263df04f03..d569d9d1648a316f8b6167845c611e46dd3a1099 100644
--- a/lib/api/services.rb
+++ b/lib/api/services.rb
@@ -355,7 +355,7 @@ module API
           name: :ca_pem,
           type: String,
           desc: 'A custom certificate authority bundle to verify the Kubernetes cluster with (PEM format)'
-        },
+        }
       ],
       'mattermost-slash-commands' => [
         {
@@ -561,13 +561,13 @@ module API
           required: true,
           name: :project_url,
           type: String,
-          desc: 'Jenkins project URL like http://jenkins.example.com/job/my-project/',
+          desc: 'Jenkins project URL like http://jenkins.example.com/job/my-project/'
         },
         {
           required: false,
           name: :pass_unstable,
           type: Boolean,
-          desc: 'Multi-project setup enabled?',
+          desc: 'Multi-project setup enabled?'
         },
         {
           required: false,
@@ -625,7 +625,7 @@ module API
       service_classes += [
         MockCiService,
         MockDeploymentService,
-        MockMonitoringService,
+        MockMonitoringService
       ]
     end
 
diff --git a/lib/api/subscriptions.rb b/lib/api/subscriptions.rb
index dbe54d3cd31af02c49a4dba764e676894ac4bbca..91567909998478124c7d4fb59500cbdd73a68d3d 100644
--- a/lib/api/subscriptions.rb
+++ b/lib/api/subscriptions.rb
@@ -5,7 +5,7 @@ module API
     subscribable_types = {
       'merge_requests' => proc { |id| find_merge_request_with_access(id, :update_merge_request) },
       'issues' => proc { |id| find_project_issue(id) },
-      'labels' => proc { |id| find_project_label(id) },
+      'labels' => proc { |id| find_project_label(id) }
     }
 
     params do
diff --git a/lib/api/v3/groups.rb b/lib/api/v3/groups.rb
index 665486915636092c04fcec470927fa18345aa5d2..d71e653cf107cd1246243273adec2673dedc0442 100644
--- a/lib/api/v3/groups.rb
+++ b/lib/api/v3/groups.rb
@@ -28,7 +28,7 @@ module API
         def present_groups(groups, options = {})
           options = options.reverse_merge(
             with: Entities::Group,
-            current_user: current_user,
+            current_user: current_user
           )
 
           groups = groups.with_statistics if options[:statistics]
diff --git a/lib/api/v3/projects.rb b/lib/api/v3/projects.rb
index 08fbe78c62ba2b61767748686cc91a9b8c12ea69..f91ed3ec24cc0af4ce4b20a871aac42a4f202072 100644
--- a/lib/api/v3/projects.rb
+++ b/lib/api/v3/projects.rb
@@ -92,7 +92,7 @@ module API
             options = options.reverse_merge(
               with: ::API::V3::Entities::Project,
               current_user: current_user,
-              simple: params[:simple],
+              simple: params[:simple]
             )
 
             projects = filter_projects(projects)
diff --git a/lib/api/v3/services.rb b/lib/api/v3/services.rb
index a7363de55406fad8d1165500d78d93bc0dc37eeb..61cca5bb029efc1b4677a5c8e7d487cb64e636b8 100644
--- a/lib/api/v3/services.rb
+++ b/lib/api/v3/services.rb
@@ -376,7 +376,7 @@ module API
             name: :ca_pem,
             type: String,
             desc: 'A custom certificate authority bundle to verify the Kubernetes cluster with (PEM format)'
-          },
+          }
         ],
         'mattermost-slash-commands' => [
           {
@@ -572,13 +572,13 @@ module API
             required: true,
             name: :project_url,
             type: String,
-            desc: 'Jenkins project URL like http://jenkins.example.com/job/my-project/',
+            desc: 'Jenkins project URL like http://jenkins.example.com/job/my-project/'
           },
           {
             required: false,
             name: :pass_unstable,
             type: Boolean,
-            desc: 'Multi-project setup enabled?',
+            desc: 'Multi-project setup enabled?'
           },
           {
             required: false,
diff --git a/lib/api/v3/subscriptions.rb b/lib/api/v3/subscriptions.rb
index 068750ec07755b0a7e1ecb9291cdde2034f22da8..690768db82f9a5d76eed736d52256deef5774634 100644
--- a/lib/api/v3/subscriptions.rb
+++ b/lib/api/v3/subscriptions.rb
@@ -7,7 +7,7 @@ module API
         'merge_request' => proc { |id| find_merge_request_with_access(id, :update_merge_request) },
         'merge_requests' => proc { |id| find_merge_request_with_access(id, :update_merge_request) },
         'issues' => proc { |id| find_project_issue(id) },
-        'labels' => proc { |id| find_project_label(id) },
+        'labels' => proc { |id| find_project_label(id) }
       }
 
       params do
diff --git a/lib/ci/ansi2html.rb b/lib/ci/ansi2html.rb
index b439b0ee29bfa0710f5392b1c0b4466fa9543337..55402101e438ce8a6b4bca0d2db19140a18b98bf 100644
--- a/lib/ci/ansi2html.rb
+++ b/lib/ci/ansi2html.rb
@@ -20,7 +20,7 @@ module Ci
       italic:     0x02,
       underline:  0x04,
       conceal:    0x08,
-      cross:      0x10,
+      cross:      0x10
     }.freeze
 
     def self.convert(ansi, state = nil)
diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index 15a461a16dd19ef746940a5ab0a140e83b7a1d1b..b06474cda7fe308fbfc0dd7c2f4e4a7724774967 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -70,7 +70,7 @@ module Ci
           cache: job[:cache],
           dependencies: job[:dependencies],
           after_script: job[:after_script],
-          environment: job[:environment],
+          environment: job[:environment]
         }.compact
       }
     end
diff --git a/lib/ee/gitlab/ldap/adapter.rb b/lib/ee/gitlab/ldap/adapter.rb
index c8b4675faf61290cd95018d25a897523b690bc98..34250a1e753829bfdc47534bc799ea0f7d02adbf 100644
--- a/lib/ee/gitlab/ldap/adapter.rb
+++ b/lib/ee/gitlab/ldap/adapter.rb
@@ -35,7 +35,7 @@ module EE
           ldap_search(
             base: dn,
             scope: Net::LDAP::SearchScope_BaseObject,
-            attributes: ["member;range=#{range_start}-*"],
+            attributes: ["member;range=#{range_start}-*"]
           ).first
         end
 
diff --git a/lib/elasticsearch/git/model.rb b/lib/elasticsearch/git/model.rb
index b58d3e7087112f8811b2298ab46b695c7c4a6c9e..5323a61fc0f1a5b101d2c7ae6796a7f4e2c34b78 100644
--- a/lib/elasticsearch/git/model.rb
+++ b/lib/elasticsearch/git/model.rb
@@ -53,7 +53,7 @@ module Elasticsearch
               path_tokenizer: {
                 type: 'path_hierarchy',
                 reverse: true
-              },
+              }
             },
             filter: {
               code: {
@@ -72,7 +72,7 @@ module Elasticsearch
                   ". => ' '"
                 ]
               }
-            },
+            }
           }
         }
       end
diff --git a/lib/elasticsearch/git/repository.rb b/lib/elasticsearch/git/repository.rb
index 3620800c502f4ee910ec5f8c1900f3d92c6f7d97..f9e866c3f5606af0d641fa3ef35a41f5607d9869 100644
--- a/lib/elasticsearch/git/repository.rb
+++ b/lib/elasticsearch/git/repository.rb
@@ -222,12 +222,12 @@ module Elasticsearch
                   author: {
                     name: encode!(author[:name]),
                     email: encode!(author[:email]),
-                    time: author[:time].strftime('%Y%m%dT%H%M%S%z'),
+                    time: author[:time].strftime('%Y%m%dT%H%M%S%z')
                   },
                   committer: {
                     name: encode!(committer[:name]),
                     email: encode!(committer[:email]),
-                    time: committer[:time].strftime('%Y%m%dT%H%M%S%z'),
+                    time: committer[:time].strftime('%Y%m%dT%H%M%S%z')
                   },
                   message: encode!(commit.message)
                 }
@@ -515,7 +515,7 @@ module Elasticsearch
               order: "score",
               fields: {
                 "blob.content" => {},
-                "blob.file_name" => {},
+                "blob.file_name" => {}
               }
             }
           end
@@ -534,7 +534,7 @@ module Elasticsearch
             query: {
                 fuzzy: {
                     'repository.blob.path' => { value: query }
-                },
+                }
             },
             filter: {
                 term: {
diff --git a/lib/gitlab/access.rb b/lib/gitlab/access.rb
index 8c28009b9c6518acde431540fe6374d0964833c8..4714ab18cc1cc208b2ab02e51a3d91516c6e1621 100644
--- a/lib/gitlab/access.rb
+++ b/lib/gitlab/access.rb
@@ -32,7 +32,7 @@ module Gitlab
           "Guest"     => GUEST,
           "Reporter"  => REPORTER,
           "Developer" => DEVELOPER,
-          "Master"    => MASTER,
+          "Master"    => MASTER
         }
       end
 
@@ -47,7 +47,7 @@ module Gitlab
           guest:     GUEST,
           reporter:  REPORTER,
           developer: DEVELOPER,
-          master:    MASTER,
+          master:    MASTER
         }
       end
 
@@ -60,7 +60,7 @@ module Gitlab
           "Not protected: Both developers and masters can push new commits, force push, or delete the branch." => PROTECTION_NONE,
           "Protected against pushes: Developers cannot push new commits, but are allowed to accept merge requests to the branch." => PROTECTION_DEV_CAN_MERGE,
           "Partially protected: Developers can push new commits, but cannot force push or delete the branch. Masters can do all of those." => PROTECTION_DEV_CAN_PUSH,
-          "Fully protected: Developers cannot push new commits, force push, or delete the branch. Only masters can do any of those." => PROTECTION_FULL,
+          "Fully protected: Developers cannot push new commits, force push, or delete the branch. Only masters can do any of those." => PROTECTION_FULL
         }
       end
 
diff --git a/lib/gitlab/chat_commands/command.rb b/lib/gitlab/chat_commands/command.rb
index f34ed0f4cf29c3574b78720a1f3530b8e80f9aa6..3e0c30c33b7414d48b1163a355c54792f8702ae5 100644
--- a/lib/gitlab/chat_commands/command.rb
+++ b/lib/gitlab/chat_commands/command.rb
@@ -5,7 +5,7 @@ module Gitlab
         Gitlab::ChatCommands::IssueShow,
         Gitlab::ChatCommands::IssueNew,
         Gitlab::ChatCommands::IssueSearch,
-        Gitlab::ChatCommands::Deploy,
+        Gitlab::ChatCommands::Deploy
       ].freeze
 
       def execute
diff --git a/lib/gitlab/cycle_analytics/permissions.rb b/lib/gitlab/cycle_analytics/permissions.rb
index bef3b95ff1bb53cfd4fc917123a095a414df11d4..1e11e84a9cb8b0ad61820a6bff87440e892c8f4f 100644
--- a/lib/gitlab/cycle_analytics/permissions.rb
+++ b/lib/gitlab/cycle_analytics/permissions.rb
@@ -7,7 +7,7 @@ module Gitlab
         test: :read_build,
         review: :read_merge_request,
         staging: :read_build,
-        production: :read_issue,
+        production: :read_issue
       }.freeze
 
       def self.get(*args)
diff --git a/lib/gitlab/data_builder/build.rb b/lib/gitlab/data_builder/build.rb
index f78106f5b1023c1c3de274e8ebefaec058835130..8e74e18a3115452a5a52985af70d63736d424d49 100644
--- a/lib/gitlab/data_builder/build.rb
+++ b/lib/gitlab/data_builder/build.rb
@@ -36,7 +36,7 @@ module Gitlab
           user: {
             id: user.try(:id),
             name: user.try(:name),
-            email: user.try(:email),
+            email: user.try(:email)
           },
 
           commit: {
@@ -49,7 +49,7 @@ module Gitlab
             status: commit.status,
             duration: commit.duration,
             started_at: commit.started_at,
-            finished_at: commit.finished_at,
+            finished_at: commit.finished_at
           },
 
           repository: {
@@ -60,7 +60,7 @@ module Gitlab
             git_http_url: project.http_url_to_repo,
             git_ssh_url: project.ssh_url_to_repo,
             visibility_level: project.visibility_level
-          },
+          }
         }
 
         data
diff --git a/lib/gitlab/email/handler.rb b/lib/gitlab/email/handler.rb
index 7d7d776da8585ac628571a4503da2613408c27af..96b1e3b1742fef6e8282e160e03f7e03ac533890 100644
--- a/lib/gitlab/email/handler.rb
+++ b/lib/gitlab/email/handler.rb
@@ -11,7 +11,7 @@ module Gitlab
         EE::ServiceDeskHandler,
         UnsubscribeHandler,
         CreateNoteHandler,
-        CreateIssueHandler,
+        CreateIssueHandler
       ].freeze
 
       def self.for(mail, mail_key)
diff --git a/lib/gitlab/email/handler/ee/service_desk_handler.rb b/lib/gitlab/email/handler/ee/service_desk_handler.rb
index b32a11122db6bc8738968a4b817f53701db9c73b..fa96cf72976607ed52cab95ee3834e575f232eee 100644
--- a/lib/gitlab/email/handler/ee/service_desk_handler.rb
+++ b/lib/gitlab/email/handler/ee/service_desk_handler.rb
@@ -46,7 +46,7 @@ module Gitlab
               title: issue_title,
               description: message,
               confidential: true,
-              service_desk_reply_to: from_address,
+              service_desk_reply_to: from_address
             ).execute
 
             raise InvalidIssueError unless @issue.persisted?
diff --git a/lib/gitlab/geo/jwt_request_decoder.rb b/lib/gitlab/geo/jwt_request_decoder.rb
index 39e7c3213437d0f39c4d0a5d40cac9667d20be5e..8b2b85adcf97cc027b5a84a0e7d33cee4b485322 100644
--- a/lib/gitlab/geo/jwt_request_decoder.rb
+++ b/lib/gitlab/geo/jwt_request_decoder.rb
@@ -33,7 +33,7 @@ module Gitlab
             encoded_message,
             secret,
             true,
-            { iat_leeway: IAT_LEEWAY, verify_iat: true, algorithm: 'HS256' },
+            { iat_leeway: IAT_LEEWAY, verify_iat: true, algorithm: 'HS256' }
           )
 
           message = decoded.first
diff --git a/lib/gitlab/git/blob.rb b/lib/gitlab/git/blob.rb
index 12458f9f41000bab8684cc2461b553e7a8a9b6ba..c1b31618e0d1827c75fcb01e7095d4418d9b4d16 100644
--- a/lib/gitlab/git/blob.rb
+++ b/lib/gitlab/git/blob.rb
@@ -90,7 +90,7 @@ module Gitlab
             name: blob_entry[:name],
             data: '',
             path: path,
-            commit_id: sha,
+            commit_id: sha
           )
         end
       end
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 6a0f12b7e50271f77ad85b26d5ec02f0024935f4..a3811bd787d39ea491760a83f6892b793401a024 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -258,7 +258,7 @@ module Gitlab
           'RepoPath' => path,
           'ArchivePrefix' => prefix,
           'ArchivePath' => archive_file_path(prefix, storage_path, format),
-          'CommitId' => commit.id,
+          'CommitId' => commit.id
         }
       end
 
diff --git a/lib/gitlab/git/tree.rb b/lib/gitlab/git/tree.rb
index b722d8a9f56a92b34e81ce8dc1f2af67e6be367b..d41256d9a84b86f49e96573221d2f212e93087ed 100644
--- a/lib/gitlab/git/tree.rb
+++ b/lib/gitlab/git/tree.rb
@@ -35,7 +35,7 @@ module Gitlab
               type: entry[:type],
               mode: entry[:filemode].to_s(8),
               path: path ? File.join(path, entry[:name]) : entry[:name],
-              commit_id: sha,
+              commit_id: sha
             )
           end
         end
diff --git a/lib/gitlab/gitaly_client/util.rb b/lib/gitlab/gitaly_client/util.rb
index 4acd297f5cba0a1fe8f60034290060bcf7d2de1f..86d055d35330c28d0ae6a3dea42c57c448e65876 100644
--- a/lib/gitlab/gitaly_client/util.rb
+++ b/lib/gitlab/gitaly_client/util.rb
@@ -6,7 +6,7 @@ module Gitlab
           Gitaly::Repository.new(
             path: File.join(Gitlab.config.repositories.storages[repository_storage]['path'], relative_path),
             storage_name: repository_storage,
-            relative_path: relative_path,
+            relative_path: relative_path
           )
         end
       end
diff --git a/lib/gitlab/kubernetes.rb b/lib/gitlab/kubernetes.rb
index 917d47b40d7f62068dfd08f4346ed2e40a6c0982..c56c1a4322f0320027fdf212f3baa45124e2f590 100644
--- a/lib/gitlab/kubernetes.rb
+++ b/lib/gitlab/kubernetes.rb
@@ -38,7 +38,7 @@ module Gitlab
           url:          container_exec_url(api_url, namespace, pod_name, container["name"]),
           subprotocols: ['channel.k8s.io'],
           headers:      Hash.new { |h, k| h[k] = [] },
-          created_at:   created_at,
+          created_at:   created_at
         }
       end
     end
@@ -64,7 +64,7 @@ module Gitlab
         tty: true,
         stdin: true,
         stdout: true,
-        stderr: true,
+        stderr: true
       }.to_query + '&' + EXEC_COMMAND
 
       case url.scheme
diff --git a/lib/gitlab/ldap/config.rb b/lib/gitlab/ldap/config.rb
index af63c39ca672ffac0892447baa55b7355339fe30..7b387db7f7f3274e0ba6ac8287dd7a44d8c79aef 100644
--- a/lib/gitlab/ldap/config.rb
+++ b/lib/gitlab/ldap/config.rb
@@ -44,7 +44,7 @@ module Gitlab
 
       def adapter_options
         opts = base_options.merge(
-          encryption: encryption,
+          encryption: encryption
         )
 
         opts.merge!(auth_options) if has_auth?
diff --git a/lib/gitlab/mirror.rb b/lib/gitlab/mirror.rb
index d9c257a8993255a8a1c8f66f014c1b2915de82d2..ca57e7b2237d185d421729a3b5166c059bbef12e 100644
--- a/lib/gitlab/mirror.rb
+++ b/lib/gitlab/mirror.rb
@@ -17,7 +17,7 @@ module Gitlab
       THREE   => "0 */3 * * *",
       SIX     => "0 */6 * * *",
       TWELVE  => "0 */12 * * *",
-      DAILY   => "0 0 * * *",
+      DAILY   => "0 0 * * *"
     }.freeze
 
     SYNC_TIME_OPTIONS = {
@@ -26,7 +26,7 @@ module Gitlab
       "Update every three hours"  => THREE,
       "Update every six hours"    => SIX,
       "Update every twelve hours" => TWELVE,
-      "Update every day"          => DAILY,
+      "Update every day"          => DAILY
     }.freeze
 
     class << self
diff --git a/lib/gitlab/sentry.rb b/lib/gitlab/sentry.rb
index 117fc5081359d70250f09ba27bde84982c775057..2442c2ded3bad804c120ca5df9812e375fcd3162 100644
--- a/lib/gitlab/sentry.rb
+++ b/lib/gitlab/sentry.rb
@@ -11,7 +11,7 @@ module Gitlab
         Raven.user_context(
           id: current_user.id,
           email: current_user.email,
-          username: current_user.username,
+          username: current_user.username
         )
       end
     end
diff --git a/lib/gitlab/workhorse.rb b/lib/gitlab/workhorse.rb
index 8c5ad01e8c2ee207be6c1f2277950252b98f6eec..351e2b1059524ad02eaafccf252d18831f64ea2f 100644
--- a/lib/gitlab/workhorse.rb
+++ b/lib/gitlab/workhorse.rb
@@ -22,7 +22,7 @@ module Gitlab
         params = {
           GL_ID: Gitlab::GlId.gl_id(user),
           GL_REPOSITORY: Gitlab::GlRepository.gl_repository(project, is_wiki),
-          RepoPath: repo_path,
+          RepoPath: repo_path
         }
 
         if Gitlab.config.gitaly.enabled
@@ -51,7 +51,7 @@ module Gitlab
         {
           StoreLFSPath: "#{Gitlab.config.lfs.storage_path}/tmp/upload",
           LfsOid: oid,
-          LfsSize: size,
+          LfsSize: size
         }
       end
 
@@ -62,7 +62,7 @@ module Gitlab
       def send_git_blob(repository, blob)
         params = {
           'RepoPath' => repository.path_to_repo,
-          'BlobId' => blob.id,
+          'BlobId' => blob.id
         }
 
         [
@@ -127,7 +127,7 @@ module Gitlab
             'Subprotocols' => terminal[:subprotocols],
             'Url' => terminal[:url],
             'Header' => terminal[:headers],
-            'MaxSessionTime' => terminal[:max_session_time],
+            'MaxSessionTime' => terminal[:max_session_time]
           }
         }
         details['Terminal']['CAPem'] = terminal[:ca_pem] if terminal.has_key?(:ca_pem)
@@ -165,7 +165,7 @@ module Gitlab
           encoded_message,
           secret,
           true,
-          { iss: 'gitlab-workhorse', verify_iss: true, algorithm: 'HS256' },
+          { iss: 'gitlab-workhorse', verify_iss: true, algorithm: 'HS256' }
         )
       end
 
diff --git a/lib/tasks/gemojione.rake b/lib/tasks/gemojione.rake
index b5572a39d309a064ede16490e9a82e3f16da7aa3..87ca39b079b1345845b54502c1e1362f19639b6a 100644
--- a/lib/tasks/gemojione.rake
+++ b/lib/tasks/gemojione.rake
@@ -21,7 +21,7 @@ namespace :gemojione do
           moji: emoji_hash['moji'],
           description: emoji_hash['description'],
           unicodeVersion: Gitlab::Emoji.emoji_unicode_version(name),
-          digest: hash_digest,
+          digest: hash_digest
         }
 
         resultant_emoji_map[name] = entry
diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake
index 67569568ff68a1452f6333400ace793402ead251..d5783fdc1b836fbbd0c03fb7ebd63de89456e874 100644
--- a/lib/tasks/gitlab/check.rake
+++ b/lib/tasks/gitlab/check.rake
@@ -1128,7 +1128,7 @@ namespace :gitlab do
       display_error.call(e)
 
       try_fixing_it(
-        'If you have a self-signed CA or certificate you need to whitelist it in Omnibus',
+        'If you have a self-signed CA or certificate you need to whitelist it in Omnibus'
       )
       for_more_information(see_custom_certificate_doc)
 
diff --git a/lib/tasks/gitlab/elastic.rake b/lib/tasks/gitlab/elastic.rake
index 3af7a39ea18d9b5865210d8d9eaeebbc3ccc0d3f..082721cff4974b46b091590ecf843b101e9a8aa2 100644
--- a/lib/tasks/gitlab/elastic.rake
+++ b/lib/tasks/gitlab/elastic.rake
@@ -64,7 +64,7 @@ namespace :gitlab do
       "MergeRequest" => "index_merge_requests",
       "Snippet"      => "index_snippets",
       "Note"         => "index_notes",
-      "Milestone"    => "index_milestones",
+      "Milestone"    => "index_milestones"
     }.freeze
 
     INDEXABLE_CLASSES.each do |klass_name, task_name|
diff --git a/lib/tasks/gitlab/update_templates.rake b/lib/tasks/gitlab/update_templates.rake
index 1b04e1350ed1283d97761f8707ee2ce18b55241c..59c32bbe7a493320211cbee22bd5a2fcc98beb27 100644
--- a/lib/tasks/gitlab/update_templates.rake
+++ b/lib/tasks/gitlab/update_templates.rake
@@ -49,7 +49,7 @@ namespace :gitlab do
     Template.new(
       "https://gitlab.com/gitlab-org/Dockerfile.git",
       /(\.{1,2}|LICENSE|CONTRIBUTING.md|\.Dockerfile)\z/
-    ),
+    )
   ].freeze
 
   def vendor_directory
diff --git a/lib/tasks/spec.rake b/lib/tasks/spec.rake
index 602c60be8281fee29348bd845596331038080b27..2eddcb3c777bd44bc2840ada27dff51c3d90a48c 100644
--- a/lib/tasks/spec.rake
+++ b/lib/tasks/spec.rake
@@ -60,7 +60,7 @@ desc "GitLab | Run specs"
 task :spec do
   cmds = [
     %w(rake gitlab:setup),
-    %w(rspec spec),
+    %w(rspec spec)
   ]
   run_commands(cmds)
 end
diff --git a/spec/controllers/groups/hooks_controller_spec.rb b/spec/controllers/groups/hooks_controller_spec.rb
index 2eb76b40ebaadb5f2bda3932458839b55b105278..b0c30efa96e0b7b7fcc5646221ccedc91390a8a2 100644
--- a/spec/controllers/groups/hooks_controller_spec.rb
+++ b/spec/controllers/groups/hooks_controller_spec.rb
@@ -23,7 +23,7 @@ describe Groups::HooksController do
         tag_push_events: true,
         token: "TEST TOKEN",
         url: "http://example.com",
-        wiki_page_events: true,
+        wiki_page_events: true
       }
 
       post :create, group_id: group.to_param, hook: hook_params
diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb
index 62206415c733c742fa6b47231faaf96a7c82da7e..8ac656b3387b91cbcd75ec8ce7eb4b53cfc496bc 100644
--- a/spec/controllers/groups_controller_spec.rb
+++ b/spec/controllers/groups_controller_spec.rb
@@ -33,7 +33,7 @@ describe GroupsController do
     before do
       create_list(:award_emoji, 3, awardable: issue_2)
       create_list(:award_emoji, 2, awardable: issue_1)
-      create_list(:award_emoji, 2, :downvote, awardable: issue_2,)
+      create_list(:award_emoji, 2, :downvote, awardable: issue_2)
 
       sign_in(user)
     end
diff --git a/spec/factories/services.rb b/spec/factories/services.rb
index 62aa71ae8d82ca19cbaf5b7d7e742543ee7ec90c..28ddd0da753ff4914fc9e207cc6983487472bc6b 100644
--- a/spec/factories/services.rb
+++ b/spec/factories/services.rb
@@ -22,7 +22,7 @@ FactoryGirl.define do
     properties({
       namespace: 'somepath',
       api_url: 'https://kubernetes.example.com',
-      token: 'a' * 40,
+      token: 'a' * 40
     })
   end
 
diff --git a/spec/features/admin/admin_uses_repository_checks_spec.rb b/spec/features/admin/admin_uses_repository_checks_spec.rb
index 855247de2ea73addc7948ae74dd3d4fa9f9322f9..ab5c42365fe6aa759706093da42ab306aaff4d57 100644
--- a/spec/features/admin/admin_uses_repository_checks_spec.rb
+++ b/spec/features/admin/admin_uses_repository_checks_spec.rb
@@ -23,7 +23,7 @@ feature 'Admin uses repository checks', feature: true do
     project = create(:empty_project)
     project.update_columns(
       last_repository_check_failed: true,
-      last_repository_check_at: Time.now,
+      last_repository_check_at: Time.now
     )
     visit_admin_project_page(project)
 
diff --git a/spec/features/auto_deploy_spec.rb b/spec/features/auto_deploy_spec.rb
index 67b0f00685428d084f7680f939308f02bba8b01f..eba1bca83a8d8e23da26902f667819afde96adc3 100644
--- a/spec/features/auto_deploy_spec.rb
+++ b/spec/features/auto_deploy_spec.rb
@@ -10,7 +10,7 @@ describe 'Auto deploy' do
       properties: {
         namespace: project.path,
         api_url: 'https://kubernetes.example.com',
-        token: 'a' * 40,
+        token: 'a' * 40
       }
     )
     project.team << [user, :master]
diff --git a/spec/features/copy_as_gfm_spec.rb b/spec/features/copy_as_gfm_spec.rb
index f197fb446081c356abe57530d075f1dac207f85e..be615519a09b5ac062d368d0bea5aa93137db4a5 100644
--- a/spec/features/copy_as_gfm_spec.rb
+++ b/spec/features/copy_as_gfm_spec.rb
@@ -96,7 +96,7 @@ describe 'Copy as GFM', feature: true, js: true do
         # issue link
         "[Issue](#{namespace_project_issue_url(@project.namespace, @project, @feat.issue)})",
         # issue link with note anchor
-        "[Issue](#{namespace_project_issue_url(@project.namespace, @project, @feat.issue, anchor: 'note_123')})",
+        "[Issue](#{namespace_project_issue_url(@project.namespace, @project, @feat.issue, anchor: 'note_123')})"
       )
 
       verify(
diff --git a/spec/features/merge_requests/conflicts_spec.rb b/spec/features/merge_requests/conflicts_spec.rb
index 43977ad2fc5773ca3da69a0f8dbd3ec67e1d273d..04b7593ce682b8990ece21ea00d2a52437e9aab4 100644
--- a/spec/features/merge_requests/conflicts_spec.rb
+++ b/spec/features/merge_requests/conflicts_spec.rb
@@ -151,7 +151,7 @@ feature 'Merge request conflict resolution', js: true, feature: true do
     'conflict-too-large' => 'when the conflicts contain a large file',
     'conflict-binary-file' => 'when the conflicts contain a binary file',
     'conflict-missing-side' => 'when the conflicts contain a file edited in one branch and deleted in another',
-    'conflict-non-utf8' => 'when the conflicts contain a non-UTF-8 file',
+    'conflict-non-utf8' => 'when the conflicts contain a non-UTF-8 file'
   }.freeze
 
   UNRESOLVABLE_CONFLICTS.each do |source_branch, description|
diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb
index e1781cf320ac539ac01eac65b73fec18ae4f38dd..4533a6fb144cbb96c9cb25c8ff88c9f7383e74ef 100644
--- a/spec/features/projects/features_visibility_spec.rb
+++ b/spec/features/projects/features_visibility_spec.rb
@@ -74,7 +74,7 @@ describe 'Edit Project Settings', feature: true do
         issues: namespace_project_issues_path(project.namespace, project),
         wiki: namespace_project_wiki_path(project.namespace, project, :home),
         snippets: namespace_project_snippets_path(project.namespace, project),
-        merge_requests: namespace_project_merge_requests_path(project.namespace, project),
+        merge_requests: namespace_project_merge_requests_path(project.namespace, project)
       }
     end
 
diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb
index 2272b19bc8f17a35561588c246239b18a00f1903..3d8c23a9392f0e59b5b64a4b1928c2be3b2c8801 100644
--- a/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/spec/features/projects/pipelines/pipelines_spec.rb
@@ -22,7 +22,7 @@ describe 'Pipelines', :feature, :js do
           project: project,
           ref: 'master',
           status: 'running',
-          sha: project.commit.id,
+          sha: project.commit.id
         )
       end
 
diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
index 53abc056602eb3a47378d588ea867e2432435da1..fe2c00bb2cad46545e481a7b2fbf331c0e40fb09 100644
--- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
+++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
@@ -225,7 +225,7 @@ module Ci
                                before_script: ["pwd"],
                                rspec: { script: "rspec", type: "test", only: %w(master deploy) },
                                staging: { script: "deploy", type: "deploy", only: %w(master deploy) },
-                               production: { script: "deploy", type: "deploy", only: ["master@path", "deploy"] },
+                               production: { script: "deploy", type: "deploy", only: ["master@path", "deploy"] }
                              })
 
           config_processor = GitlabCiYamlProcessor.new(config, 'fork')
@@ -381,7 +381,7 @@ module Ci
                                before_script: ["pwd"],
                                rspec: { script: "rspec", type: "test", except: ["master", "deploy", "test@fork"] },
                                staging: { script: "deploy", type: "deploy", except: ["master"] },
-                               production: { script: "deploy", type: "deploy", except: ["master@fork"] },
+                               production: { script: "deploy", type: "deploy", except: ["master@fork"] }
                              })
 
           config_processor = GitlabCiYamlProcessor.new(config, 'fork')
@@ -716,7 +716,7 @@ module Ci
         expect(config_processor.builds_for_stage_and_ref("test", "master").first[:options][:cache]).to eq(
           paths: ["logs/", "binaries/"],
           untracked: true,
-          key: 'key',
+          key: 'key'
         )
       end
 
@@ -734,7 +734,7 @@ module Ci
         expect(config_processor.builds_for_stage_and_ref("test", "master").first[:options][:cache]).to eq(
           paths: ["logs/", "binaries/"],
           untracked: true,
-          key: 'key',
+          key: 'key'
         )
       end
 
@@ -743,7 +743,7 @@ module Ci
                              cache: { paths: ["logs/", "binaries/"], untracked: true, key: 'global' },
                              rspec: {
                                script: "rspec",
-                               cache: { paths: ["test/"], untracked: false, key: 'local' },
+                               cache: { paths: ["test/"], untracked: false, key: 'local' }
                              }
                            })
 
@@ -753,7 +753,7 @@ module Ci
         expect(config_processor.builds_for_stage_and_ref("test", "master").first[:options][:cache]).to eq(
           paths: ["test/"],
           untracked: false,
-          key: 'local',
+          key: 'local'
         )
       end
     end
diff --git a/spec/lib/expand_variables_spec.rb b/spec/lib/expand_variables_spec.rb
index 906289179438a19c32025cfcd06bc04056c8e1bc..7faa0f31b682b9bfcd8c45434d15333d2f03b3d0 100644
--- a/spec/lib/expand_variables_spec.rb
+++ b/spec/lib/expand_variables_spec.rb
@@ -25,7 +25,7 @@ describe ExpandVariables do
         result: 'keyvalueresult',
         variables: [
           { key: 'variable', value: 'value' },
-          { key: 'variable2', value: 'result' },
+          { key: 'variable2', value: 'result' }
         ] },
       { value: 'key${variable}${variable2}',
         result: 'keyvalueresult',
@@ -37,7 +37,7 @@ describe ExpandVariables do
         result: 'keyresultvalue',
         variables: [
           { key: 'variable', value: 'value' },
-          { key: 'variable2', value: 'result' },
+          { key: 'variable2', value: 'result' }
         ] },
       { value: 'key${variable2}${variable}',
         result: 'keyresultvalue',
@@ -49,7 +49,7 @@ describe ExpandVariables do
         result: 'review/feature/add-review-apps',
         variables: [
           { key: 'CI_COMMIT_REF_NAME', value: 'feature/add-review-apps' }
-        ] },
+        ] }
     ]
 
     tests.each do |test|
diff --git a/spec/lib/gitlab/auth_spec.rb b/spec/lib/gitlab/auth_spec.rb
index d4a43192d03965d9b6f3d2b1264de626d600a58d..50bc3ef1b7c5d33d334c22efada62b0dc899dba1 100644
--- a/spec/lib/gitlab/auth_spec.rb
+++ b/spec/lib/gitlab/auth_spec.rb
@@ -175,7 +175,7 @@ describe Gitlab::Auth, lib: true do
         user = create(
           :user,
           username: 'normal_user',
-          password: 'my-secret',
+          password: 'my-secret'
         )
 
         expect(gl_auth.find_for_git_client(user.username, user.password, project: nil, ip: 'ip'))
@@ -186,7 +186,7 @@ describe Gitlab::Auth, lib: true do
         user = create(
           :user,
           username: 'oauth2',
-          password: 'my-secret',
+          password: 'my-secret'
         )
 
         expect(gl_auth.find_for_git_client(user.username, user.password, project: nil, ip: 'ip'))
diff --git a/spec/lib/gitlab/backup/manager_spec.rb b/spec/lib/gitlab/backup/manager_spec.rb
index f84782ab440b6f002a75741b4a3eb6f9c024c822..c59ff7fb290f87ce3e44595f8138e00f633907ff 100644
--- a/spec/lib/gitlab/backup/manager_spec.rb
+++ b/spec/lib/gitlab/backup/manager_spec.rb
@@ -151,7 +151,7 @@ describe Backup::Manager, lib: true do
         allow(Dir).to receive(:glob).and_return(
           [
             '1451606400_2016_01_01_gitlab_backup.tar',
-            '1451520000_2015_12_31_gitlab_backup.tar',
+            '1451520000_2015_12_31_gitlab_backup.tar'
           ]
         )
       end
diff --git a/spec/lib/gitlab/ci/config/entry/global_spec.rb b/spec/lib/gitlab/ci/config/entry/global_spec.rb
index 684d01e9056ebaac2f8cb625f844fd8617681044..cf03acbfd3ab1a034b23df0594019c257c02fbf3 100644
--- a/spec/lib/gitlab/ci/config/entry/global_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/global_spec.rb
@@ -167,7 +167,7 @@ describe Gitlab::Ci::Config::Entry::Global do
                          cache: { key: 'k', untracked: true, paths: ['public/'] },
                          variables: {},
                          ignore: false,
-                         after_script: ['make clean'] },
+                         after_script: ['make clean'] }
             )
           end
         end
diff --git a/spec/lib/gitlab/contributions_calendar_spec.rb b/spec/lib/gitlab/contributions_calendar_spec.rb
index e18a219ef36d91649686172a89e3ab0ef3ca6859..79632e2b6a3b6195cddc0a6b63b4daccadfbaaf1 100644
--- a/spec/lib/gitlab/contributions_calendar_spec.rb
+++ b/spec/lib/gitlab/contributions_calendar_spec.rb
@@ -47,7 +47,7 @@ describe Gitlab::ContributionsCalendar do
       action: Event::CREATED,
       target: @targets[project],
       author: contributor,
-      created_at: day,
+      created_at: day
     )
   end
 
diff --git a/spec/lib/gitlab/diff/position_tracer_spec.rb b/spec/lib/gitlab/diff/position_tracer_spec.rb
index a10a251dc4a04e9734db6a9e2a36c917df91a357..4d202a76e1b26abdf73f5497d8bff6d28bafe5bc 100644
--- a/spec/lib/gitlab/diff/position_tracer_spec.rb
+++ b/spec/lib/gitlab/diff/position_tracer_spec.rb
@@ -1372,7 +1372,7 @@ describe Gitlab::Diff::PositionTracer, lib: true do
           nil,
           { old_path: file_name, new_path: file_name, old_line: 5, new_line: 5 },
           { old_path: file_name,                      old_line: 6              },
-          {                      new_path: file_name,              new_line: 7 },
+          {                      new_path: file_name,              new_line: 7 }
         ]
 
         expect_positions(old_position_attrs, new_position_attrs)
@@ -1444,7 +1444,7 @@ describe Gitlab::Diff::PositionTracer, lib: true do
           nil,
           { old_path: file_name, new_path: file_name, old_line: 5, new_line: 5 },
           { old_path: file_name,                      old_line: 6              },
-          {                      new_path: file_name,              new_line: 7 },
+          {                      new_path: file_name,              new_line: 7 }
         ]
 
         expect_positions(old_position_attrs, new_position_attrs)
@@ -1498,7 +1498,7 @@ describe Gitlab::Diff::PositionTracer, lib: true do
           { old_path: file_name, new_path: file_name, old_line: 5, new_line: 4 },
           { old_path: file_name, new_path: file_name, old_line: 6, new_line: 5 },
           nil,
-          {                      new_path: file_name,              new_line: 6 },
+          {                      new_path: file_name,              new_line: 6 }
         ]
 
         expect_positions(old_position_attrs, new_position_attrs)
@@ -1746,7 +1746,7 @@ describe Gitlab::Diff::PositionTracer, lib: true do
           { old_path: file_name, new_path: file_name, old_line: 4, new_line: 5 },
           { old_path: file_name,                      old_line: 5              },
           {                      new_path: file_name,              new_line: 6 },
-          {                      new_path: file_name,              new_line: 7 },
+          {                      new_path: file_name,              new_line: 7 }
         ]
 
         expect_positions(old_position_attrs, new_position_attrs)
diff --git a/spec/lib/gitlab/elastic/client_spec.rb b/spec/lib/gitlab/elastic/client_spec.rb
index 3b19ef44a1a102e8d9662b90b794f2dc79296404..6b3be78661851bc6848bd17991a1ef212e9c0d97 100644
--- a/spec/lib/gitlab/elastic/client_spec.rb
+++ b/spec/lib/gitlab/elastic/client_spec.rb
@@ -23,7 +23,7 @@ describe Gitlab::Elastic::Client do
           aws: true,
           aws_region: 'us-east-1',
           aws_access_key: '0',
-          aws_secret_access_key: '0',
+          aws_secret_access_key: '0'
         }
       end
 
@@ -35,7 +35,7 @@ describe Gitlab::Elastic::Client do
                'Authorization'        => 'AWS4-HMAC-SHA256 Credential=0/20170303/us-east-1/es/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=4ba2aae19a476152dacf5a2191da67b0cf81b9d7152dab5c42b1bba701da19f1',
                'Content-Type'         => 'application/json',
                'X-Amz-Content-Sha256' => 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
-               'X-Amz-Date'           => '20170303T133952Z',
+               'X-Amz-Date'           => '20170303T133952Z'
             })
             .to_return(status: 200, body: [:fake_response])
 
diff --git a/spec/lib/gitlab/git/diff_spec.rb b/spec/lib/gitlab/git/diff_spec.rb
index 7253a2edeff0f0a0f2a444f12191320544edbbb6..4189aaef643f0f1fe84ddfc2015294b00be6635e 100644
--- a/spec/lib/gitlab/git/diff_spec.rb
+++ b/spec/lib/gitlab/git/diff_spec.rb
@@ -120,7 +120,7 @@ EOT
             new_mode: 0100644,
             from_id: '357406f3075a57708d0163752905cc1576fceacc',
             to_id: '8e5177d718c561d36efde08bad36b43687ee6bf0',
-            raw_chunks: raw_chunks,
+            raw_chunks: raw_chunks
           )
         )
       end
diff --git a/spec/lib/gitlab/git/encoding_helper_spec.rb b/spec/lib/gitlab/git/encoding_helper_spec.rb
index f6ac7b23d1de1538178a46ddbf18e9bd2743be76..1a3bf802a078beb7f65d385321e2abbafc6639e9 100644
--- a/spec/lib/gitlab/git/encoding_helper_spec.rb
+++ b/spec/lib/gitlab/git/encoding_helper_spec.rb
@@ -19,8 +19,8 @@ describe Gitlab::Git::EncodingHelper do
       [
         'removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.',
         "mu ns\xC3\n Lorem ipsum dolor sit amet, consectetur adipisicing ut\xC3\xA0y\xC3\xB9abcd\xC3\xB9efg kia elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non p\n {: .normal_pn}\n \n-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in\n# *Lorem ipsum\xC3\xB9l\xC3\xB9l\xC3\xA0 dolor\xC3\xB9k\xC3\xB9 sit\xC3\xA8b\xC3\xA8 N\xC3\xA8 amet b\xC3\xA0d\xC3\xAC*\n+# *consectetur\xC3\xB9l\xC3\xB9l\xC3\xA0 adipisicing\xC3\xB9k\xC3\xB9 elit\xC3\xA8b\xC3\xA8 N\xC3\xA8 sed do\xC3\xA0d\xC3\xAC*{: .italic .smcaps}\n \n \xEF\x9B\xA1 eiusmod tempor incididunt, ut\xC3\xAAn\xC3\xB9 labore et dolore. Tw\xC4\x83nj\xC3\xAC magna aliqua. Ut enim ad minim veniam\n {: .normal}\n@@ -9,5 +9,5 @@ quis nostrud\xC3\xAAt\xC3\xB9 exercitiation ullamco laboris m\xC3\xB9s\xC3\xB9k\xC3\xB9abc\xC3\xB9 nisi ".force_encoding('ASCII-8BIT'),
-        "mu ns\n Lorem ipsum dolor sit amet, consectetur adipisicing ut\xC3\xA0y\xC3\xB9abcd\xC3\xB9efg kia elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non p\n {: .normal_pn}\n \n-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in\n# *Lorem ipsum\xC3\xB9l\xC3\xB9l\xC3\xA0 dolor\xC3\xB9k\xC3\xB9 sit\xC3\xA8b\xC3\xA8 N\xC3\xA8 amet b\xC3\xA0d\xC3\xAC*\n+# *consectetur\xC3\xB9l\xC3\xB9l\xC3\xA0 adipisicing\xC3\xB9k\xC3\xB9 elit\xC3\xA8b\xC3\xA8 N\xC3\xA8 sed do\xC3\xA0d\xC3\xAC*{: .italic .smcaps}\n \n \xEF\x9B\xA1 eiusmod tempor incididunt, ut\xC3\xAAn\xC3\xB9 labore et dolore. Tw\xC4\x83nj\xC3\xAC magna aliqua. Ut enim ad minim veniam\n {: .normal}\n@@ -9,5 +9,5 @@ quis nostrud\xC3\xAAt\xC3\xB9 exercitiation ullamco laboris m\xC3\xB9s\xC3\xB9k\xC3\xB9abc\xC3\xB9 nisi ",
-      ],
+        "mu ns\n Lorem ipsum dolor sit amet, consectetur adipisicing ut\xC3\xA0y\xC3\xB9abcd\xC3\xB9efg kia elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non p\n {: .normal_pn}\n \n-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in\n# *Lorem ipsum\xC3\xB9l\xC3\xB9l\xC3\xA0 dolor\xC3\xB9k\xC3\xB9 sit\xC3\xA8b\xC3\xA8 N\xC3\xA8 amet b\xC3\xA0d\xC3\xAC*\n+# *consectetur\xC3\xB9l\xC3\xB9l\xC3\xA0 adipisicing\xC3\xB9k\xC3\xB9 elit\xC3\xA8b\xC3\xA8 N\xC3\xA8 sed do\xC3\xA0d\xC3\xAC*{: .italic .smcaps}\n \n \xEF\x9B\xA1 eiusmod tempor incididunt, ut\xC3\xAAn\xC3\xB9 labore et dolore. Tw\xC4\x83nj\xC3\xAC magna aliqua. Ut enim ad minim veniam\n {: .normal}\n@@ -9,5 +9,5 @@ quis nostrud\xC3\xAAt\xC3\xB9 exercitiation ullamco laboris m\xC3\xB9s\xC3\xB9k\xC3\xB9abc\xC3\xB9 nisi "
+      ]
     ].each do |description, test_string, xpect|
       it description do
         expect(ext_class.encode!(test_string)).to eq(xpect)
@@ -37,18 +37,18 @@ describe Gitlab::Git::EncodingHelper do
       [
         "encodes valid utf8 encoded string to utf8",
         "λ, λ, λ".encode("UTF-8"),
-        "λ, λ, λ".encode("UTF-8"),
+        "λ, λ, λ".encode("UTF-8")
       ],
       [
         "encodes valid ASCII-8BIT encoded string to utf8",
         "ascii only".encode("ASCII-8BIT"),
-        "ascii only".encode("UTF-8"),
+        "ascii only".encode("UTF-8")
       ],
       [
         "encodes valid ISO-8859-1 encoded string to utf8",
         "Rüby ist eine Programmiersprache. Wir verlängern den text damit ICU die Sprache erkennen kann.".encode("ISO-8859-1", "UTF-8"),
-        "Rüby ist eine Programmiersprache. Wir verlängern den text damit ICU die Sprache erkennen kann.".encode("UTF-8"),
-      ],
+        "Rüby ist eine Programmiersprache. Wir verlängern den text damit ICU die Sprache erkennen kann.".encode("UTF-8")
+      ]
     ].each do |description, test_string, xpect|
       it description do
         r = ext_class.encode_utf8(test_string.force_encoding('UTF-8'))
@@ -77,8 +77,8 @@ describe Gitlab::Git::EncodingHelper do
       [
         'removes invalid bytes from ASCII-8bit encoded multibyte string.',
         "Lorem ipsum\xC3\n dolor sit amet, xy\xC3\xA0y\xC3\xB9abcd\xC3\xB9efg".force_encoding('ASCII-8BIT'),
-        "Lorem ipsum\n dolor sit amet, xyàyùabcdùefg",
-      ],
+        "Lorem ipsum\n dolor sit amet, xyàyùabcdùefg"
+      ]
     ].each do |description, test_string, xpect|
       it description do
         expect(ext_class.encode!(test_string)).to eq(xpect)
diff --git a/spec/lib/gitlab/git/util_spec.rb b/spec/lib/gitlab/git/util_spec.rb
index 69d3ca5539724a61d42ce694ae0f7d3416cfcf53..88c871855df37d597cae269084cc401664089b5f 100644
--- a/spec/lib/gitlab/git/util_spec.rb
+++ b/spec/lib/gitlab/git/util_spec.rb
@@ -6,7 +6,7 @@ describe Gitlab::Git::Util do
       ["", 0],
       ["foo", 1],
       ["foo\n", 1],
-      ["foo\n\n", 2],
+      ["foo\n\n", 2]
     ].each do |string, line_count|
       it "counts #{line_count} lines in #{string.inspect}" do
         expect(described_class.count_lines(string)).to eq(line_count)
diff --git a/spec/lib/gitlab/gitaly_client/commit_spec.rb b/spec/lib/gitlab/gitaly_client/commit_spec.rb
index 58f11ff89063bda7776db3d0f4559e57bfcbe097..181213270c9b78e32af3761b72452d5f3815b422 100644
--- a/spec/lib/gitlab/gitaly_client/commit_spec.rb
+++ b/spec/lib/gitlab/gitaly_client/commit_spec.rb
@@ -17,7 +17,7 @@ describe Gitlab::GitalyClient::Commit do
         request = Gitaly::CommitDiffRequest.new(
           repository: repository_message,
           left_commit_id: 'cfe32cf61b73a0d5e9f13e774abde7ff789b1660',
-          right_commit_id: commit.id,
+          right_commit_id: commit.id
         )
 
         expect(diff_stub).to receive(:commit_diff).with(request)
@@ -32,7 +32,7 @@ describe Gitlab::GitalyClient::Commit do
         request        = Gitaly::CommitDiffRequest.new(
           repository: repository_message,
           left_commit_id: '4b825dc642cb6eb9a060e54bf8d69288fbee4904',
-          right_commit_id: initial_commit.id,
+          right_commit_id: initial_commit.id
         )
 
         expect(diff_stub).to receive(:commit_diff).with(request)
diff --git a/spec/lib/gitlab/import_export/relation_factory_spec.rb b/spec/lib/gitlab/import_export/relation_factory_spec.rb
index 06cd8ab87ed4f8cfcb15b3fd72bc8c19e9b4ff96..744fed449256921ebb9d7b0bdda42e20f8f8e8f6 100644
--- a/spec/lib/gitlab/import_export/relation_factory_spec.rb
+++ b/spec/lib/gitlab/import_export/relation_factory_spec.rb
@@ -95,7 +95,7 @@ describe Gitlab::ImportExport::RelationFactory, lib: true do
         'random_id' => 99,
         'milestone_id' => 99,
         'project_id' => 99,
-        'user_id' => 99,
+        'user_id' => 99
       }
     end
 
diff --git a/spec/lib/gitlab/kubernetes/deployment_spec.rb b/spec/lib/gitlab/kubernetes/deployment_spec.rb
index 29da22510ec213abc3e723f997dc8c83189e0b56..e39960d3d5755c527d707c9cc4b9e6418f1acca3 100644
--- a/spec/lib/gitlab/kubernetes/deployment_spec.rb
+++ b/spec/lib/gitlab/kubernetes/deployment_spec.rb
@@ -68,7 +68,7 @@ describe Gitlab::Kubernetes::Deployment do
           { status: 'waiting', tooltip: 'unknown (pod 0) Waiting', track: 'stable', stable: true },
           { status: 'waiting', tooltip: 'unknown (pod 1) Waiting', track: 'stable', stable: true },
           { status: 'waiting', tooltip: 'unknown (pod 2) Waiting', track: 'stable', stable: true },
-          { status: 'waiting', tooltip: 'unknown (pod 3) Waiting', track: 'stable', stable: true },
+          { status: 'waiting', tooltip: 'unknown (pod 3) Waiting', track: 'stable', stable: true }
         ]
 
         expect(deployment.instances).to eq(expected)
@@ -83,7 +83,7 @@ describe Gitlab::Kubernetes::Deployment do
           { status: 'waiting', tooltip: 'foo (pod 0) Waiting', track: 'stable', stable: true },
           { status: 'waiting', tooltip: 'foo (pod 1) Waiting', track: 'stable', stable: true },
           { status: 'waiting', tooltip: 'foo (pod 2) Waiting', track: 'stable', stable: true },
-          { status: 'waiting', tooltip: 'foo (pod 3) Waiting', track: 'stable', stable: true },
+          { status: 'waiting', tooltip: 'foo (pod 3) Waiting', track: 'stable', stable: true }
         ]
 
         expect(deployment.instances).to eq(expected)
@@ -98,7 +98,7 @@ describe Gitlab::Kubernetes::Deployment do
           { status: 'finished',  tooltip: 'foo (pod 0) Finished', track: 'stable', stable: true },
           { status: 'deploying', tooltip: 'foo (pod 1) Deploying', track: 'stable', stable: true },
           { status: 'waiting',   tooltip: 'foo (pod 2) Waiting', track: 'stable', stable: true },
-          { status: 'waiting',   tooltip: 'foo (pod 3) Waiting', track: 'stable', stable: true },
+          { status: 'waiting',   tooltip: 'foo (pod 3) Waiting', track: 'stable', stable: true }
         ]
 
         expect(deployment.instances).to eq(expected)
@@ -114,7 +114,7 @@ describe Gitlab::Kubernetes::Deployment do
 
         it 'returns all instances' do
           expected = [
-            { status: 'waiting',  tooltip: 'foo (pod 0) Waiting', track: 'stable', stable: true },
+            { status: 'waiting',  tooltip: 'foo (pod 0) Waiting', track: 'stable', stable: true }
           ]
 
           expect(deployment.instances).to eq(expected)
@@ -126,7 +126,7 @@ describe Gitlab::Kubernetes::Deployment do
 
         it 'returns all instances' do
           expected = [
-            { status: 'waiting',  tooltip: 'foo (pod 0) Waiting', track: 'canary', stable: false },
+            { status: 'waiting',  tooltip: 'foo (pod 0) Waiting', track: 'canary', stable: false }
           ]
 
           expect(deployment.instances).to eq(expected)
@@ -149,7 +149,7 @@ describe Gitlab::Kubernetes::Deployment do
   def instances(replicas = 4, available = 1, updated = 2, labels = {})
     combine(
       make('spec', 'replicas' => replicas),
-      make('status', 'availableReplicas' => available, 'updatedReplicas' => updated),
+      make('status', 'availableReplicas' => available, 'updatedReplicas' => updated)
     )
   end
 
diff --git a/spec/lib/gitlab/kubernetes/rollout_status_spec.rb b/spec/lib/gitlab/kubernetes/rollout_status_spec.rb
index ecb9269565efa3164d7046a6c40256900f9612f6..c245e8974f252d92fc266bc1678bc4fef5089e6a 100644
--- a/spec/lib/gitlab/kubernetes/rollout_status_spec.rb
+++ b/spec/lib/gitlab/kubernetes/rollout_status_spec.rb
@@ -41,7 +41,7 @@ describe Gitlab::Kubernetes::RolloutStatus do
           { status: 'finished', tooltip: 'one (pod 2) Finished', track: 'stable', stable: true },
           { status: 'finished', tooltip: 'two (pod 0) Finished', track: 'stable', stable: true },
           { status: 'finished', tooltip: 'two (pod 1) Finished', track: 'stable', stable: true },
-          { status: 'finished', tooltip: 'two (pod 2) Finished', track: 'stable', stable: true },
+          { status: 'finished', tooltip: 'two (pod 2) Finished', track: 'stable', stable: true }
         ]
 
         expect(rollout_status.instances).to eq(expected)
@@ -58,7 +58,7 @@ describe Gitlab::Kubernetes::RolloutStatus do
           { status: 'finished', tooltip: 'two (pod 2) Finished', track: 'canary', stable: false },
           { status: 'finished', tooltip: 'one (pod 0) Finished', track: 'stable', stable: true },
           { status: 'finished', tooltip: 'one (pod 1) Finished', track: 'stable', stable: true },
-          { status: 'finished', tooltip: 'one (pod 2) Finished', track: 'stable', stable: true },
+          { status: 'finished', tooltip: 'one (pod 2) Finished', track: 'stable', stable: true }
         ]
 
         expect(rollout_status.instances).to eq(expected)
diff --git a/spec/lib/gitlab/repo_path_spec.rb b/spec/lib/gitlab/repo_path_spec.rb
index f94c9c2e3155f146b376775d8f0b95c8eb46bc38..f90253971075d031ece9d211ab73e122eb6fa69b 100644
--- a/spec/lib/gitlab/repo_path_spec.rb
+++ b/spec/lib/gitlab/repo_path_spec.rb
@@ -29,7 +29,7 @@ describe ::Gitlab::RepoPath do
     before do
       allow(Gitlab.config.repositories).to receive(:storages).and_return({
         'storage1' => { 'path' => '/foo' },
-        'storage2' => { 'path' => '/bar' },
+        'storage2' => { 'path' => '/bar' }
       })
     end
 
diff --git a/spec/lib/gitlab/workhorse_spec.rb b/spec/lib/gitlab/workhorse_spec.rb
index beb1791a42968585c434ccbfc24e8fb63b8bb618..67b759f7dcd5267d4b4f8aeb04e93c626bdf52dc 100644
--- a/spec/lib/gitlab/workhorse_spec.rb
+++ b/spec/lib/gitlab/workhorse_spec.rb
@@ -202,7 +202,7 @@ describe Gitlab::Workhorse, lib: true do
     context 'when Gitaly is enabled' do
       let(:gitaly_params) do
         {
-          GitalyAddress: Gitlab::GitalyClient.get_address('default'),
+          GitalyAddress: Gitlab::GitalyClient.get_address('default')
         }
       end
 
@@ -214,7 +214,7 @@ describe Gitlab::Workhorse, lib: true do
         repo_param = { Repository: {
           path: repo_path,
           storage_name: 'default',
-          relative_path: project.full_path + '.git',
+          relative_path: project.full_path + '.git'
         } }
 
         expect(subject).to include(repo_param)
diff --git a/spec/models/application_setting_spec.rb b/spec/models/application_setting_spec.rb
index 6a4154c0c18c92bbf76b27fd19303a88bf83b995..ad17f338f0bc5a76e9bbfd50dc8f108edeb97bb6 100644
--- a/spec/models/application_setting_spec.rb
+++ b/spec/models/application_setting_spec.rb
@@ -140,7 +140,7 @@ describe ApplicationSetting, models: true do
         storages = {
           'custom1' => 'tmp/tests/custom_repositories_1',
           'custom2' => 'tmp/tests/custom_repositories_2',
-          'custom3' => 'tmp/tests/custom_repositories_3',
+          'custom3' => 'tmp/tests/custom_repositories_3'
 
         }
         allow(Gitlab.config.repositories).to receive(:storages).and_return(storages)
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb
index 6e8845cdcf42db3493c11cd11bd46c6672ab318c..5111584bf51d0829ab9fe7831bbd4da69e8db168 100644
--- a/spec/models/ci/build_spec.rb
+++ b/spec/models/ci/build_spec.rb
@@ -986,7 +986,7 @@ describe Ci::Build, :models do
       'fix-1-foo' => 'fix-1-foo',
       'a' * 63    => 'a' * 63,
       'a' * 64    => 'a' * 63,
-      'FOO'       => 'foo',
+      'FOO'       => 'foo'
     }.each do |ref, slug|
       it "transforms #{ref} to #{slug}" do
         build.ref = ref
@@ -1158,7 +1158,7 @@ describe Ci::Build, :models do
         { key: 'CI_PIPELINE_ID', value: pipeline.id.to_s, public: true },
         { key: 'CI_REGISTRY_USER', value: 'gitlab-ci-token', public: true },
         { key: 'CI_REGISTRY_PASSWORD', value: build.token, public: false },
-        { key: 'CI_REPOSITORY_URL', value: build.repo_url, public: false },
+        { key: 'CI_REPOSITORY_URL', value: build.repo_url, public: false }
       ]
     end
 
diff --git a/spec/models/environment_spec.rb b/spec/models/environment_spec.rb
index 32ea66dcd505fa7b6022992944ca1f2f0e445bd6..2011a7e71f7609f9b3f7bc986c7048c9c83955ac 100644
--- a/spec/models/environment_spec.rb
+++ b/spec/models/environment_spec.rb
@@ -493,7 +493,7 @@ describe Environment, models: true do
       "foo**bar"                  => "foo-bar" + SUFFIX,
       "*-foo"                     => "env-foo" + SUFFIX,
       "staging-12345678-"         => "staging-12345678" + SUFFIX,
-      "staging-12345678-01234567" => "staging-12345678" + SUFFIX,
+      "staging-12345678-01234567" => "staging-12345678" + SUFFIX
     }.each do |name, matcher|
       it "returns a slug matching #{matcher}, given #{name}" do
         slug = described_class.new(name: name).generate_slug
diff --git a/spec/models/global_milestone_spec.rb b/spec/models/global_milestone_spec.rb
index 55b87d1c48a35cffa623758dbd47f9ace15e81c3..a14efda3eda787b99729357484d40f3e1a5f9163 100644
--- a/spec/models/global_milestone_spec.rb
+++ b/spec/models/global_milestone_spec.rb
@@ -137,7 +137,7 @@ describe GlobalMilestone, models: true do
         [
           milestone1_project1,
           milestone1_project2,
-          milestone1_project3,
+          milestone1_project3
         ]
       milestones_relation = Milestone.where(id: milestones.map(&:id))
 
diff --git a/spec/models/project_authorization_spec.rb b/spec/models/project_authorization_spec.rb
index 33ef67f97a7c11b28f8dbb5beb5278c434aa6aaa..cd0a4a94809082df692c1b7d2e4456e8d3bd7cd2 100644
--- a/spec/models/project_authorization_spec.rb
+++ b/spec/models/project_authorization_spec.rb
@@ -16,7 +16,7 @@ describe ProjectAuthorization do
     it 'inserts rows in batches' do
       described_class.insert_authorizations([
         [user.id, project1.id, Gitlab::Access::MASTER],
-        [user.id, project2.id, Gitlab::Access::MASTER],
+        [user.id, project2.id, Gitlab::Access::MASTER]
       ], 1)
 
       expect(user.project_authorizations.count).to eq(2)
diff --git a/spec/models/project_services/asana_service_spec.rb b/spec/models/project_services/asana_service_spec.rb
index 48aef3a93f2b699db05a708fbb67ee23572313eb..95c35162d96f3c5bd23525a736c41dff05b55204 100644
--- a/spec/models/project_services/asana_service_spec.rb
+++ b/spec/models/project_services/asana_service_spec.rb
@@ -28,7 +28,7 @@ describe AsanaService, models: true do
         commits: messages.map do |m|
           {
             message: m,
-            url: 'https://gitlab.com/',
+            url: 'https://gitlab.com/'
           }
         end
       }
diff --git a/spec/models/project_services/chat_message/issue_message_spec.rb b/spec/models/project_services/chat_message/issue_message_spec.rb
index 34e2d94b1ed7b1106dd8a4ed11f68d5b36b8ccf9..c159ab00ab1f61d167a68d6c009d8c7e34a88f81 100644
--- a/spec/models/project_services/chat_message/issue_message_spec.rb
+++ b/spec/models/project_services/chat_message/issue_message_spec.rb
@@ -48,7 +48,7 @@ describe ChatMessage::IssueMessage, models: true do
             title: "#100 Issue title",
             title_link: "http://url.com",
             text: "issue description",
-            color: color,
+            color: color
           }
         ])
       end
diff --git a/spec/models/project_services/chat_message/merge_message_spec.rb b/spec/models/project_services/chat_message/merge_message_spec.rb
index 5ab4a9a13443e8f36d50723be05fcc605cf624de..777c88e97642d625e383b5d8db7db7d823a02fef 100644
--- a/spec/models/project_services/chat_message/merge_message_spec.rb
+++ b/spec/models/project_services/chat_message/merge_message_spec.rb
@@ -22,7 +22,7 @@ describe ChatMessage::MergeMessage, models: true do
         state: 'opened',
         description: 'merge request description',
         source_branch: 'source_branch',
-        target_branch: 'target_branch',
+        target_branch: 'target_branch'
       }
     }
   end
diff --git a/spec/models/project_services/chat_message/note_message_spec.rb b/spec/models/project_services/chat_message/note_message_spec.rb
index 7cd9c61ee2b2ab1b89c160468a17c55ae0f7bd1c..7996536218ae1dae8df169578125a42867c39e5c 100644
--- a/spec/models/project_services/chat_message/note_message_spec.rb
+++ b/spec/models/project_services/chat_message/note_message_spec.rb
@@ -15,7 +15,7 @@ describe ChatMessage::NoteMessage, models: true do
       project_url: 'http://somewhere.com',
       repository: {
         name: 'project_name',
-        url: 'http://somewhere.com',
+        url: 'http://somewhere.com'
       },
       object_attributes: {
         id: 10,
diff --git a/spec/models/project_services/chat_message/push_message_spec.rb b/spec/models/project_services/chat_message/push_message_spec.rb
index 63eb078c44e32001d56044d19b6389dd3c61d663..c794f659c4175a3ae8d3a41b0c56275601612db1 100644
--- a/spec/models/project_services/chat_message/push_message_spec.rb
+++ b/spec/models/project_services/chat_message/push_message_spec.rb
@@ -21,7 +21,7 @@ describe ChatMessage::PushMessage, models: true do
     before do
       args[:commits] = [
         { message: 'message1', url: 'http://url1.com', id: 'abcdefghijkl', author: { name: 'author1' } },
-        { message: 'message2', url: 'http://url2.com', id: '123456789012', author: { name: 'author2' } },
+        { message: 'message2', url: 'http://url2.com', id: '123456789012', author: { name: 'author2' } }
       ]
     end
 
@@ -33,7 +33,7 @@ describe ChatMessage::PushMessage, models: true do
         expect(subject.attachments).to eq([{
           text: "<http://url1.com|abcdefgh>: message1 - author1\n\n"\
             "<http://url2.com|12345678>: message2 - author2",
-          color: color,
+          color: color
         }])
       end
     end
diff --git a/spec/models/project_services/chat_message/wiki_page_message_spec.rb b/spec/models/project_services/chat_message/wiki_page_message_spec.rb
index 0df7db2abc29b6ba35ab5be27f7d1be4454ffb1f..4ca1b8aa7b74bf8839d20abb923eb115eff935c3 100644
--- a/spec/models/project_services/chat_message/wiki_page_message_spec.rb
+++ b/spec/models/project_services/chat_message/wiki_page_message_spec.rb
@@ -53,7 +53,7 @@ describe ChatMessage::WikiPageMessage, models: true do
           expect(subject.attachments).to eq([
             {
               text: "Wiki page description",
-              color: color,
+              color: color
             }
           ])
         end
@@ -66,7 +66,7 @@ describe ChatMessage::WikiPageMessage, models: true do
           expect(subject.attachments).to eq([
             {
               text: "Wiki page description",
-              color: color,
+              color: color
             }
           ])
         end
diff --git a/spec/models/project_services/jenkins_service_spec.rb b/spec/models/project_services/jenkins_service_spec.rb
index e70757a5f5616d46ced64e45203821ffac5a778a..fda2b8640ff58a539e82d999b16d9963e730cc80 100644
--- a/spec/models/project_services/jenkins_service_spec.rb
+++ b/spec/models/project_services/jenkins_service_spec.rb
@@ -29,7 +29,7 @@ describe JenkinsService do
         properties: {
           jenkins_url: 'http://jenkins.example.com/',
           password: 'password',
-          username: 'username',
+          username: 'username'
         }
       )
     end
@@ -73,7 +73,7 @@ describe JenkinsService do
           jenkins_url: jenkins_url,
           project_name: 'my_project',
           username: username,
-          password: password,
+          password: password
         }
       )
     end
diff --git a/spec/models/project_services/kubernetes_service_spec.rb b/spec/models/project_services/kubernetes_service_spec.rb
index cef0fd8f0ed933f3b9c6209d09c77ae106d3fcee..25ce5e7faacca7cecc4267bd3a9166d8a607de39 100644
--- a/spec/models/project_services/kubernetes_service_spec.rb
+++ b/spec/models/project_services/kubernetes_service_spec.rb
@@ -36,7 +36,7 @@ describe KubernetesService, models: true, caching: true do
           'a' * 63 => true,
           'a' * 64 => false,
           'a.b' => false,
-          'a*b' => false,
+          'a*b' => false
         }.each do |namespace, validity|
           it "validates #{namespace} as #{validity ? 'valid' : 'invalid'}" do
             subject.namespace = namespace
@@ -153,7 +153,7 @@ describe KubernetesService, models: true, caching: true do
           { key: 'KUBE_TOKEN', value: 'token', public: false },
           { key: 'KUBE_NAMESPACE', value: 'my-project', public: true },
           { key: 'KUBE_CA_PEM', value: 'CA PEM DATA', public: true },
-          { key: 'KUBE_CA_PEM_FILE', value: 'CA PEM DATA', public: true, file: true },
+          { key: 'KUBE_CA_PEM_FILE', value: 'CA PEM DATA', public: true, file: true }
         )
       end
     end
@@ -164,7 +164,7 @@ describe KubernetesService, models: true, caching: true do
           { key: 'KUBE_URL', value: 'https://kube.domain.com', public: true },
           { key: 'KUBE_TOKEN', value: 'token', public: false },
           { key: 'KUBE_CA_PEM', value: 'CA PEM DATA', public: true },
-          { key: 'KUBE_CA_PEM_FILE', value: 'CA PEM DATA', public: true, file: true },
+          { key: 'KUBE_CA_PEM_FILE', value: 'CA PEM DATA', public: true, file: true }
         )
       end
 
diff --git a/spec/models/project_services/pivotaltracker_service_spec.rb b/spec/models/project_services/pivotaltracker_service_spec.rb
index 45b2f1068bffb13e72b6ee8074238a9413269314..a76e909d04debb1facd3823c11a04547a3855f1d 100644
--- a/spec/models/project_services/pivotaltracker_service_spec.rb
+++ b/spec/models/project_services/pivotaltracker_service_spec.rb
@@ -40,7 +40,7 @@ describe PivotaltrackerService, models: true do
               name: 'Some User'
             },
             url: 'https://example.com/commit',
-            message: 'commit message',
+            message: 'commit message'
           }
         ]
       }
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 6ff222dca457e33e1563e5a883e1e3867e70418a..fdc8804a0c291583f860437aa45221f5bdbe4b1b 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -1171,7 +1171,7 @@ describe Project, models: true do
     before do
       storages = {
         'default' => { 'path' => 'tmp/tests/repositories' },
-        'picked'  => { 'path' => 'tmp/tests/repositories' },
+        'picked'  => { 'path' => 'tmp/tests/repositories' }
       }
       allow(Gitlab.config.repositories).to receive(:storages).and_return(storages)
     end
diff --git a/spec/models/project_statistics_spec.rb b/spec/models/project_statistics_spec.rb
index ff29f6f66ba425019d87f9ab019f9b5fef803a91..c5ffbda982105bab212ffa931cc8f75cb5b05ca4 100644
--- a/spec/models/project_statistics_spec.rb
+++ b/spec/models/project_statistics_spec.rb
@@ -35,7 +35,7 @@ describe ProjectStatistics, models: true do
         commit_count: 8.exabytes - 1,
         repository_size: 2.exabytes,
         lfs_objects_size: 2.exabytes,
-        build_artifacts_size: 4.exabytes - 1,
+        build_artifacts_size: 4.exabytes - 1
       )
 
       statistics.reload
@@ -149,7 +149,7 @@ describe ProjectStatistics, models: true do
     it "sums all storage counters" do
       statistics.update!(
         repository_size: 2,
-        lfs_objects_size: 3,
+        lfs_objects_size: 3
       )
 
       statistics.reload
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index e09f3b4f6cd312b10b162f20c0666358f9a6aa84..4e70edbda91f6f51e078e575ec6c93dfbb717509 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -671,7 +671,7 @@ describe User, models: true do
       protocol_and_expectation = {
         'http' => false,
         'ssh' => true,
-        '' => true,
+        '' => true
       }
 
       protocol_and_expectation.each do |protocol, expected|
diff --git a/spec/requests/api/files_spec.rb b/spec/requests/api/files_spec.rb
index fa28047d49c29bbde0b8e8d77ab2283571d832d6..deb2cac6869aae2b19112c482f5d4dba85258d5a 100644
--- a/spec/requests/api/files_spec.rb
+++ b/spec/requests/api/files_spec.rb
@@ -329,7 +329,7 @@ describe API::Files do
     end
     let(:get_params) do
       {
-        ref: 'master',
+        ref: 'master'
       }
     end
 
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index 579b54e6fbe0309aa2d7d386ed98896bc71517d3..e3ed4c3232d3c7c80a50625c89341974b016a030 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -87,7 +87,7 @@ describe API::Groups do
           storage_size: 702,
           repository_size: 123,
           lfs_objects_size: 234,
-          build_artifacts_size: 345,
+          build_artifacts_size: 345
         }.stringify_keys
         exposed_attributes = attributes.dup
         exposed_attributes['job_artifacts_size'] = exposed_attributes.delete('build_artifacts_size')
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 246f1ecfbadd7e057c4f7bd4a3b1f682bac8cc89..e79e217a5b75a7edd06c6f9aa02613944bdec42b 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -711,7 +711,7 @@ describe API::Projects do
           'name' => user.namespace.name,
           'path' => user.namespace.path,
           'kind' => user.namespace.kind,
-          'full_path' => user.namespace.full_path,
+          'full_path' => user.namespace.full_path
         })
       end
 
diff --git a/spec/requests/api/v3/files_spec.rb b/spec/requests/api/v3/files_spec.rb
index 5bcbb4419791aaae78d1033052781839b4dab7f1..378ca1720ffca683303dc98d75895a3409bc72f9 100644
--- a/spec/requests/api/v3/files_spec.rb
+++ b/spec/requests/api/v3/files_spec.rb
@@ -53,7 +53,7 @@ describe API::V3::Files do
         let(:params) do
           {
             file_path: 'app/models/application.rb',
-            ref: 'master',
+            ref: 'master'
           }
         end
 
@@ -263,7 +263,7 @@ describe API::V3::Files do
     let(:get_params) do
       {
         file_path: file_path,
-        ref: 'master',
+        ref: 'master'
       }
     end
 
diff --git a/spec/requests/api/v3/groups_spec.rb b/spec/requests/api/v3/groups_spec.rb
index 9a8f2f1f5e4914049cda80c3026a88cccbbe003d..de5e6ad718767d601ad4e1fcbea58573cf4079ab 100644
--- a/spec/requests/api/v3/groups_spec.rb
+++ b/spec/requests/api/v3/groups_spec.rb
@@ -78,7 +78,7 @@ describe API::V3::Groups do
           storage_size: 702,
           repository_size: 123,
           lfs_objects_size: 234,
-          build_artifacts_size: 345,
+          build_artifacts_size: 345
         }.stringify_keys
 
         project1.statistics.update!(attributes)
@@ -201,7 +201,7 @@ describe API::V3::Groups do
           storage_size: 702,
           repository_size: 123,
           lfs_objects_size: 234,
-          build_artifacts_size: 345,
+          build_artifacts_size: 345
         }.stringify_keys
 
         project1.statistics.update!(attributes)
diff --git a/spec/requests/api/v3/projects_spec.rb b/spec/requests/api/v3/projects_spec.rb
index 10eaf7c8a976f4d59e010be4d3aff3d42b3df52a..9f380f50e8230d418cc94828382d2b74b52b2f13 100644
--- a/spec/requests/api/v3/projects_spec.rb
+++ b/spec/requests/api/v3/projects_spec.rb
@@ -227,7 +227,7 @@ describe API::V3::Projects do
           storage_size: 702,
           repository_size: 123,
           lfs_objects_size: 234,
-          build_artifacts_size: 345,
+          build_artifacts_size: 345
         }
 
         project4.statistics.update!(attributes)
@@ -757,7 +757,7 @@ describe API::V3::Projects do
           'name' => user.namespace.name,
           'path' => user.namespace.path,
           'kind' => user.namespace.kind,
-          'full_path' => user.namespace.full_path,
+          'full_path' => user.namespace.full_path
         })
       end
 
diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb
index 108f73bb965fbb7a25c5944322c1b52e3ebbe96b..286de277ae766ab4bea235a56c22d6ae35b5bcca 100644
--- a/spec/requests/ci/api/builds_spec.rb
+++ b/spec/requests/ci/api/builds_spec.rb
@@ -185,7 +185,7 @@ describe Ci::API::Builds do
             { "key" => "CI_PIPELINE_TRIGGERED", "value" => "true", "public" => true },
             { "key" => "DB_NAME", "value" => "postgres", "public" => true },
             { "key" => "SECRET_KEY", "value" => "secret_value", "public" => false },
-            { "key" => "TRIGGER_KEY_1", "value" => "TRIGGER_VALUE_1", "public" => false },
+            { "key" => "TRIGGER_KEY_1", "value" => "TRIGGER_VALUE_1", "public" => false }
           )
         end
       end
diff --git a/spec/requests/lfs_http_spec.rb b/spec/requests/lfs_http_spec.rb
index 545ffbefc627e354bcc96b840204abac0a75c75b..ce31b24a30d12f738b46d4fcdfbf9e07d263d61a 100644
--- a/spec/requests/lfs_http_spec.rb
+++ b/spec/requests/lfs_http_spec.rb
@@ -425,7 +425,7 @@ describe 'Git LFS API and storage' do
                   'size' => sample_size,
                   'error' => {
                     'code' => 404,
-                    'message' => "Object does not exist on the server or you don't have permissions to access it",
+                    'message' => "Object does not exist on the server or you don't have permissions to access it"
                   }
                 }
               ]
@@ -456,7 +456,7 @@ describe 'Git LFS API and storage' do
                   'size' => 1575078,
                   'error' => {
                     'code' => 404,
-                    'message' => "Object does not exist on the server or you don't have permissions to access it",
+                    'message' => "Object does not exist on the server or you don't have permissions to access it"
                   }
                 }
               ]
@@ -493,7 +493,7 @@ describe 'Git LFS API and storage' do
                   'size' => 1575078,
                   'error' => {
                     'code' => 404,
-                    'message' => "Object does not exist on the server or you don't have permissions to access it",
+                    'message' => "Object does not exist on the server or you don't have permissions to access it"
                   }
                 },
                 {
diff --git a/spec/requests/openid_connect_spec.rb b/spec/requests/openid_connect_spec.rb
index a4f85c22943093649aee25bfbe60875fe22bc266..68b55dfeff52762801f1c6c405ef24165c26eb78 100644
--- a/spec/requests/openid_connect_spec.rb
+++ b/spec/requests/openid_connect_spec.rb
@@ -61,7 +61,7 @@ describe 'OpenID Connect requests' do
           email: private_email.email,
           public_email: public_email.email,
           website_url: 'https://example.com',
-          avatar: fixture_file_upload(Rails.root + "spec/fixtures/dk.png"),
+          avatar: fixture_file_upload(Rails.root + "spec/fixtures/dk.png")
         )
       end
 
@@ -79,7 +79,7 @@ describe 'OpenID Connect requests' do
           'email_verified' => true,
           'website'        => 'https://example.com',
           'profile'        => 'http://localhost/alice',
-          'picture'        => "http://localhost/uploads/user/avatar/#{user.id}/dk.png",
+          'picture'        => "http://localhost/uploads/user/avatar/#{user.id}/dk.png"
         })
       end
     end
diff --git a/spec/serializers/analytics_issue_entity_spec.rb b/spec/serializers/analytics_issue_entity_spec.rb
index 68086216ba909841b6a3c1d4d182f18031c7f86d..75d606d5eb376e96ead5656c97d9d5762dd1cc2a 100644
--- a/spec/serializers/analytics_issue_entity_spec.rb
+++ b/spec/serializers/analytics_issue_entity_spec.rb
@@ -9,7 +9,7 @@ describe AnalyticsIssueEntity do
       iid: "1",
       id: "1",
       created_at: "2016-11-12 15:04:02.948604",
-      author: user,
+      author: user
     }
   end
 
diff --git a/spec/serializers/analytics_issue_serializer_spec.rb b/spec/serializers/analytics_issue_serializer_spec.rb
index ba24cf8e481604d69baf621bfcc9658554427501..7c14c198a7424249793f58f4924dfc4f89253b06 100644
--- a/spec/serializers/analytics_issue_serializer_spec.rb
+++ b/spec/serializers/analytics_issue_serializer_spec.rb
@@ -16,7 +16,7 @@ describe AnalyticsIssueSerializer do
       iid: "1",
       id: "1",
       created_at: "2016-11-12 15:04:02.948604",
-      author: user,
+      author: user
     }
   end
 
diff --git a/spec/services/boards/issues/list_service_spec.rb b/spec/services/boards/issues/list_service_spec.rb
index 77f77b66850d0f9ac0ab0df93dac126b36b9e6a9..8ccfe7b05dcfdf299fb15b83ae1cda9ae527cc80 100644
--- a/spec/services/boards/issues/list_service_spec.rb
+++ b/spec/services/boards/issues/list_service_spec.rb
@@ -22,7 +22,7 @@ describe Boards::Issues::ListService, services: true do
 
     let!(:opened_issue1) { create(:labeled_issue, project: project, milestone: m1, title: 'Issue 1', labels: [bug]) }
     let!(:opened_issue2) { create(:labeled_issue, project: project, milestone: m2, title: 'Issue 2', labels: [p2]) }
-    let!(:reopened_issue1) { create(:issue, :reopened, project: project, title: 'Issue 3', ) }
+    let!(:reopened_issue1) { create(:issue, :reopened, project: project, title: 'Issue 3' ) }
 
     let!(:list1_issue1) { create(:labeled_issue, project: project, milestone: m1, labels: [p2, development]) }
     let!(:list1_issue2) { create(:labeled_issue, project: project, milestone: m2, labels: [development]) }
diff --git a/spec/services/cohorts_service_spec.rb b/spec/services/cohorts_service_spec.rb
index 1e99442fdcbd1906dca525b4d6b0b1f4f1c0b42c..77595d7ba2df05475a4175ae2d84ba0d9cd6d6ef 100644
--- a/spec/services/cohorts_service_spec.rb
+++ b/spec/services/cohorts_service_spec.rb
@@ -89,7 +89,7 @@ describe CohortsService do
           activity_months: [{ total: 2, percentage: 100 }],
           total: 2,
           inactive: 1
-        },
+        }
       ]
 
       expect(described_class.new.execute).to eq(months_included: 12,
diff --git a/spec/services/create_deployment_service_spec.rb b/spec/services/create_deployment_service_spec.rb
index d8c716e4b1f55ec0bc2e68bff3719af7288549f6..5274beb5baae8d3a8c7b94a3e22c8e0a6ca029e3 100644
--- a/spec/services/create_deployment_service_spec.rb
+++ b/spec/services/create_deployment_service_spec.rb
@@ -255,7 +255,7 @@ describe CreateDeploymentService, services: true do
         environment: 'production',
         ref: 'master',
         tag: false,
-        sha: '97de212e80737a608d939f648d959671fb0a0142b',
+        sha: '97de212e80737a608d939f648d959671fb0a0142b'
       }
     end
 
diff --git a/spec/services/issuable/bulk_update_service_spec.rb b/spec/services/issuable/bulk_update_service_spec.rb
index 5b1639ca0d6e5fe04c174e2a73c2e603e50aabe5..3ddd0badd395cdb482cc9720d84b6a71bc7932f4 100644
--- a/spec/services/issuable/bulk_update_service_spec.rb
+++ b/spec/services/issuable/bulk_update_service_spec.rb
@@ -163,7 +163,7 @@ describe Issuable::BulkUpdateService, services: true do
       {
         label_ids:        labels.map(&:id),
         add_label_ids:    add_labels.map(&:id),
-        remove_label_ids: remove_labels.map(&:id),
+        remove_label_ids: remove_labels.map(&:id)
       }
     end
 
diff --git a/spec/services/issues/build_service_spec.rb b/spec/services/issues/build_service_spec.rb
index 47f4aabd6655b069a3ae0c183cf3bd8a0cc47e5b..74ff5cfb62e3092ad2959260329b75614ad45209 100644
--- a/spec/services/issues/build_service_spec.rb
+++ b/spec/services/issues/build_service_spec.rb
@@ -159,7 +159,7 @@ describe Issues::BuildService, services: true do
         user,
         title: 'Issue #1',
         description: 'Issue description',
-        milestone_id: milestone.id,
+        milestone_id: milestone.id
       ).execute
 
       expect(issue.title).to eq('Issue #1')
diff --git a/spec/services/issues/resolve_discussions_spec.rb b/spec/services/issues/resolve_discussions_spec.rb
index c3b4c2176eeba2934fe7f94018ae328100051eee..86f218dec122d761043f511baefc734d5728cc7f 100644
--- a/spec/services/issues/resolve_discussions_spec.rb
+++ b/spec/services/issues/resolve_discussions_spec.rb
@@ -77,7 +77,7 @@ describe Issues::ResolveDiscussions, services: true do
         _second_discussion = Discussion.new([create(:diff_note_on_merge_request, :resolved,
                                                    noteable: merge_request,
                                                    project: merge_request.target_project,
-                                                   line_number: 15,
+                                                   line_number: 15
                                                    )])
         service = DummyService.new(
           project,
diff --git a/spec/services/merge_requests/refresh_service_spec.rb b/spec/services/merge_requests/refresh_service_spec.rb
index a6103382a44894549434bb55eea7e40f8b9f21b7..fbe1c8ec732469e24333e8950966816753436bce 100644
--- a/spec/services/merge_requests/refresh_service_spec.rb
+++ b/spec/services/merge_requests/refresh_service_spec.rb
@@ -447,7 +447,7 @@ describe MergeRequests::RefreshService, services: true do
             title: 'fixup! Fix issue',
             work_in_progress?: true,
             to_reference: 'ccccccc'
-          ),
+          )
         ])
         refresh_service.execute(@oldrev, @newrev, 'refs/heads/wip')
         reload_mrs
diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb
index 5e8b54d2b6d4ba5597eae2a7450ff0633a6d5e1f..9d1b750c2f0d2c1a05f98ed126ef7a8157a44d12 100644
--- a/spec/services/notification_service_spec.rb
+++ b/spec/services/notification_service_spec.rb
@@ -350,7 +350,7 @@ describe NotificationService, services: true do
           create(:note_on_personal_snippet, noteable: snippet, note: 'note', author: @u_participant),
           create(:note_on_personal_snippet, noteable: snippet, note: 'note', author: @u_mentioned),
           create(:note_on_personal_snippet, noteable: snippet, note: 'note', author: @u_disabled),
-          create(:note_on_personal_snippet, noteable: snippet, note: 'note', author: @u_note_author),
+          create(:note_on_personal_snippet, noteable: snippet, note: 'note', author: @u_note_author)
         ]
       end
 
diff --git a/spec/services/search/group_service_spec.rb b/spec/services/search/group_service_spec.rb
index 523032528f129b51b9162b75dc2dc7b5af2e5df9..4311ae0b2138c3b6b9c9139e4609a5172d36af9c 100644
--- a/spec/services/search/group_service_spec.rb
+++ b/spec/services/search/group_service_spec.rb
@@ -46,7 +46,7 @@ describe Search::GroupService, services: true do
       # Ensure these are present when the index is refreshed
       _ = [
         outside_project, private_project, other_project,
-        project1, project2, project3,
+        project1, project2, project3
       ]
 
       Gitlab::Elastic::Helper.refresh_index
diff --git a/spec/support/kubernetes_helpers.rb b/spec/support/kubernetes_helpers.rb
index a8403c31d92077128434b9c8699ce4b7f09c3005..5c18199707f60c2b663d01756cc74eb01d062cc8 100644
--- a/spec/support/kubernetes_helpers.rb
+++ b/spec/support/kubernetes_helpers.rb
@@ -37,8 +37,8 @@ module KubernetesHelpers
       "kind" => "APIResourceList",
       "resources" => [
         { "name" => "pods", "namespaced" => true, "kind" => "Pod" },
-        { "name" => "deployments", "namespaced" => true, "kind" => "Deployment" },
-      ],
+        { "name" => "deployments", "namespaced" => true, "kind" => "Deployment" }
+      ]
     }
   end
 
@@ -47,8 +47,8 @@ module KubernetesHelpers
       "kind" => "APIResourceList",
       "resources" => [
         { "name" => "pods", "namespaced" => true, "kind" => "Pod" },
-        { "name" => "deployments", "namespaced" => true, "kind" => "Deployment" },
-      ],
+        { "name" => "deployments", "namespaced" => true, "kind" => "Deployment" }
+      ]
     }
   end
 
@@ -73,13 +73,13 @@ module KubernetesHelpers
       "metadata" => {
         "name" => name,
         "creationTimestamp" => "2016-11-25T19:55:19Z",
-        "labels" => { "app" => app },
+        "labels" => { "app" => app }
       },
       "spec" => {
         "containers" => [
           { "name" => "container-0" },
-          { "name" => "container-1" },
-        ],
+          { "name" => "container-1" }
+        ]
       },
       "status" => { "phase" => "Running" }
     }
@@ -93,15 +93,15 @@ module KubernetesHelpers
         "labels" => {
           "app" => app,
           "track" => track
-        }.compact,
+        }.compact
       },
       "spec" => { "replicas" => 3 },
       "status" => {
         "observedGeneration" => 4,
         "replicas" => 3,
         "updatedReplicas" => 3,
-        "availableReplicas" => 3,
-      },
+        "availableReplicas" => 3
+      }
     }
   end
 
diff --git a/spec/support/repo_helpers.rb b/spec/support/repo_helpers.rb
index e9d5c7b12ae62cb6fd1e82dafbca99944c28f124..3c6956cf5e04658b300a6846664b4b1841f94fe7 100644
--- a/spec/support/repo_helpers.rb
+++ b/spec/support/repo_helpers.rb
@@ -92,11 +92,11 @@ eos
     changes = [
       {
         line_code: 'a5cc2925ca8258af241be7e5b0381edf30266302_20_20',
-        file_path: '.gitignore',
+        file_path: '.gitignore'
       },
       {
         line_code: '7445606fbf8f3683cd42bdc54b05d7a0bc2dfc44_4_6',
-        file_path: '.gitmodules',
+        file_path: '.gitmodules'
       }
     ]
 
diff --git a/spec/support/test_env.rb b/spec/support/test_env.rb
index 8dc513be495fbb76690030b086551d515340f463..2d87b4ab6122cb1701ffc4d31735401de380807f 100644
--- a/spec/support/test_env.rb
+++ b/spec/support/test_env.rb
@@ -43,7 +43,7 @@ module TestEnv
     'v1.1.0'                             => 'b83d6e3',
     'add-ipython-files'                  => '6d85bb69',
     'add-pdf-file'                       => 'e774ebd3',
-    'squash-large-files'                 => '54cec52',
+    'squash-large-files'                 => '54cec52'
   }.freeze
 
   # gitlab-test-fork is a fork of gitlab-fork, but we don't necessarily
diff --git a/spec/support/workhorse_helpers.rb b/spec/support/workhorse_helpers.rb
index 47673cd4c3afe1d0311f9a7c2b039c5ffcf07ab2..ef1f9f686714d9b85b83ff1effe20e1da1f5a30a 100644
--- a/spec/support/workhorse_helpers.rb
+++ b/spec/support/workhorse_helpers.rb
@@ -9,7 +9,7 @@ module WorkhorseHelpers
       header = split_header.join(':')
       [
         type,
-        JSON.parse(Base64.urlsafe_decode64(header)),
+        JSON.parse(Base64.urlsafe_decode64(header))
       ]
     end
   end
diff --git a/spec/tasks/gitlab/gitaly_rake_spec.rb b/spec/tasks/gitlab/gitaly_rake_spec.rb
index aaf998a546f6f4ca7e0940f7ccd2be81b19ecfea..f035504320b2718275e9b5a315d78e27f3c53308 100644
--- a/spec/tasks/gitlab/gitaly_rake_spec.rb
+++ b/spec/tasks/gitlab/gitaly_rake_spec.rb
@@ -80,7 +80,7 @@ describe 'gitlab:gitaly namespace rake task' do
     it 'prints storage configuration in a TOML format' do
       config = {
         'default' => { 'path' => '/path/to/default' },
-        'nfs_01' => { 'path' => '/path/to/nfs_01' },
+        'nfs_01' => { 'path' => '/path/to/nfs_01' }
       }
       allow(Gitlab.config.repositories).to receive(:storages).and_return(config)
 
diff --git a/spec/workers/git_garbage_collect_worker_spec.rb b/spec/workers/git_garbage_collect_worker_spec.rb
index 7a590f64e3c602fd89c0213cb1605680c6b37c78..8c5303b61ccf9eb6ccc09510a46ffe7899dd7329 100644
--- a/spec/workers/git_garbage_collect_worker_spec.rb
+++ b/spec/workers/git_garbage_collect_worker_spec.rb
@@ -105,7 +105,7 @@ describe GitGarbageCollectWorker do
       author: Gitlab::Git.committer_hash(email: 'foo@bar', name: 'baz'),
       committer: Gitlab::Git.committer_hash(email: 'foo@bar', name: 'baz'),
       tree: old_commit.tree,
-      parents: [old_commit],
+      parents: [old_commit]
     )
     GitOperationService.new(nil, project.repository).send(
       :update_ref,
diff --git a/spec/workers/repository_check/clear_worker_spec.rb b/spec/workers/repository_check/clear_worker_spec.rb
index a3b70c74787f91304a3c3c561a4969318fd0b913..3b1a64c5057cef502ef6d578fa9d15394e155246 100644
--- a/spec/workers/repository_check/clear_worker_spec.rb
+++ b/spec/workers/repository_check/clear_worker_spec.rb
@@ -5,7 +5,7 @@ describe RepositoryCheck::ClearWorker do
     project = create(:empty_project)
     project.update_columns(
       last_repository_check_failed: true,
-      last_repository_check_at: Time.now,
+      last_repository_check_at: Time.now
     )
 
     described_class.new.perform