Commit 666e4437 authored by Valery Sizov's avatar Valery Sizov

Merge branch 'update_stable' into '7-13-stable'

Update stable 7.13.3



See merge request !1088
parents ce6fd30d 1fb04bcd
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
v 7.13.3
- Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
v 7.13.2 v 7.13.2
- Fix randomly failed spec - Fix randomly failed spec
......
...@@ -3,6 +3,7 @@ class Import::BitbucketController < Import::BaseController ...@@ -3,6 +3,7 @@ class Import::BitbucketController < Import::BaseController
before_action :bitbucket_auth, except: :callback before_action :bitbucket_auth, except: :callback
rescue_from OAuth::Error, with: :bitbucket_unauthorized rescue_from OAuth::Error, with: :bitbucket_unauthorized
rescue_from Gitlab::BitbucketImport::Client::Unauthorized, with: :bitbucket_unauthorized
def callback def callback
request_token = session.delete(:oauth_request_token) request_token = session.delete(:oauth_request_token)
......
module Gitlab module Gitlab
module BitbucketImport module BitbucketImport
class Client class Client
class Unauthorized < StandardError; end
attr_reader :consumer, :api attr_reader :consumer, :api
def initialize(access_token = nil, access_token_secret = nil) def initialize(access_token = nil, access_token_secret = nil)
...@@ -46,23 +48,23 @@ module Gitlab ...@@ -46,23 +48,23 @@ module Gitlab
end end
def user def user
JSON.parse(api.get("/api/1.0/user").body) JSON.parse(get("/api/1.0/user").body)
end end
def issues(project_identifier) def issues(project_identifier)
JSON.parse(api.get("/api/1.0/repositories/#{project_identifier}/issues").body) JSON.parse(get("/api/1.0/repositories/#{project_identifier}/issues").body)
end end
def issue_comments(project_identifier, issue_id) def issue_comments(project_identifier, issue_id)
JSON.parse(api.get("/api/1.0/repositories/#{project_identifier}/issues/#{issue_id}/comments").body) JSON.parse(get("/api/1.0/repositories/#{project_identifier}/issues/#{issue_id}/comments").body)
end end
def project(project_identifier) def project(project_identifier)
JSON.parse(api.get("/api/1.0/repositories/#{project_identifier}").body) JSON.parse(get("/api/1.0/repositories/#{project_identifier}").body)
end end
def find_deploy_key(project_identifier, key) def find_deploy_key(project_identifier, key)
JSON.parse(api.get("/api/1.0/repositories/#{project_identifier}/deploy-keys").body).find do |deploy_key| JSON.parse(get("/api/1.0/repositories/#{project_identifier}/deploy-keys").body).find do |deploy_key|
deploy_key["key"].chomp == key.chomp deploy_key["key"].chomp == key.chomp
end end
end end
...@@ -82,11 +84,18 @@ module Gitlab ...@@ -82,11 +84,18 @@ module Gitlab
end end
def projects def projects
JSON.parse(api.get("/api/1.0/user/repositories").body).select { |repo| repo["scm"] == "git" } JSON.parse(get("/api/1.0/user/repositories").body).select { |repo| repo["scm"] == "git" }
end end
private private
def get(url)
response = api.get(url)
raise Unauthorized if (400..499).include?(response.code.to_i)
response
end
def config def config
Gitlab.config.omniauth.providers.find { |provider| provider.name == "bitbucket"} Gitlab.config.omniauth.providers.find { |provider| provider.name == "bitbucket"}
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment