From 932a247f5fb4a14b3e096ec88a73f8fce481eebb Mon Sep 17 00:00:00 2001
From: Jason Lee <huacnlee@gmail.com>
Date: Tue, 12 Jan 2016 17:32:25 +0800
Subject: [PATCH] Use CGI.escape instead of URI.escape, because URI is
 obsoleted.

ref: https://github.com/ruby/ruby/commit/238b979f1789f95262a267d8df6239806f2859cc
---
 app/models/hooks/web_hook.rb                   | 4 ++--
 app/models/project_services/hipchat_service.rb | 8 ++++----
 config/initializers/1_settings.rb              | 2 +-
 lib/gitlab/gitlab_import/importer.rb           | 2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/app/models/hooks/web_hook.rb b/app/models/hooks/web_hook.rb
index d0aadfc330a..3bb50c63cac 100644
--- a/app/models/hooks/web_hook.rb
+++ b/app/models/hooks/web_hook.rb
@@ -48,8 +48,8 @@ class WebHook < ActiveRecord::Base
     else
       post_url = url.gsub("#{parsed_url.userinfo}@", "")
       auth = {
-        username: URI.decode(parsed_url.user),
-        password: URI.decode(parsed_url.password),
+        username: CGI.unescape(parsed_url.user),
+        password: CGI.unescape(parsed_url.password),
       }
       response = WebHook.post(post_url,
                               body: data.to_json,
diff --git a/app/models/project_services/hipchat_service.rb b/app/models/project_services/hipchat_service.rb
index 32a81808930..0e3fa4a40fe 100644
--- a/app/models/project_services/hipchat_service.rb
+++ b/app/models/project_services/hipchat_service.rb
@@ -120,13 +120,13 @@ class HipchatService < Service
     message << "#{push[:user_name]} "
     if Gitlab::Git.blank_ref?(before)
       message << "pushed new #{ref_type} <a href=\""\
-                 "#{project_url}/commits/#{URI.escape(ref)}\">#{ref}</a>"\
+                 "#{project_url}/commits/#{CGI.escape(ref)}\">#{ref}</a>"\
                  " to #{project_link}\n"
     elsif Gitlab::Git.blank_ref?(after)
       message << "removed #{ref_type} <b>#{ref}</b> from <a href=\"#{project.web_url}\">#{project_name}</a> \n"
     else
       message << "pushed to #{ref_type} <a href=\""\
-                  "#{project.web_url}/commits/#{URI.escape(ref)}\">#{ref}</a> "
+                  "#{project.web_url}/commits/#{CGI.escape(ref)}\">#{ref}</a> "
       message << "of <a href=\"#{project.web_url}\">#{project.name_with_namespace.gsub!(/\s/,'')}</a> "
       message << "(<a href=\"#{project.web_url}/compare/#{before}...#{after}\">Compare changes</a>)"
 
@@ -255,8 +255,8 @@ class HipchatService < Service
     status = data[:commit][:status]
     duration = data[:commit][:duration]
 
-    branch_link = "<a href=\"#{project_url}/commits/#{URI.escape(ref)}\">#{ref}</a>"
-    commit_link = "<a href=\"#{project_url}/commit/#{URI.escape(sha)}/builds\">#{Commit.truncate_sha(sha)}</a>"
+    branch_link = "<a href=\"#{project_url}/commits/#{CGI.escape(ref)}\">#{ref}</a>"
+    commit_link = "<a href=\"#{project_url}/commit/#{CGI.escape(sha)}/builds\">#{Commit.truncate_sha(sha)}</a>"
 
     "#{project_link}: Commit #{commit_link} of #{branch_link} #{ref_type} by #{user_name} #{humanized_status(status)} in #{duration} second(s)"
   end
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index a9c5b2caf0a..d625a909bf1 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -11,7 +11,7 @@ class Settings < Settingslogic
 
     # get host without www, thanks to http://stackoverflow.com/a/6674363/1233435
     def get_host_without_www(url)
-      url = URI.encode(url)
+      url = CGI.escape(url)
       uri = URI.parse(url)
       uri = URI.parse("http://#{url}") if uri.scheme.nil?
       host = uri.host.downcase
diff --git a/lib/gitlab/gitlab_import/importer.rb b/lib/gitlab/gitlab_import/importer.rb
index e24b94d6159..59926084d07 100644
--- a/lib/gitlab/gitlab_import/importer.rb
+++ b/lib/gitlab/gitlab_import/importer.rb
@@ -12,7 +12,7 @@ module Gitlab
       end
 
       def execute
-        project_identifier = URI.encode(project.import_source, '/')
+        project_identifier = CGI.escape(project.import_source, '/')
 
         #Issues && Comments
         issues = client.issues(project_identifier)
-- 
GitLab