mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-15 07:36:41 +10:00
Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
This commit is contained in:
@@ -16,6 +16,7 @@ v 7.14.0 (unreleased)
|
||||
- Expire Rails cache entries after two weeks to prevent endless Redis growth
|
||||
- Add support for destroying project milestones (Stan Hu)
|
||||
- Add fetch command to the MR page
|
||||
- Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
|
||||
|
||||
v 7.13.1
|
||||
- Fix: Label modifications are not reflected in existing notes and in the issue list
|
||||
|
||||
@@ -3,6 +3,7 @@ class Import::BitbucketController < Import::BaseController
|
||||
before_action :bitbucket_auth, except: :callback
|
||||
|
||||
rescue_from OAuth::Error, with: :bitbucket_unauthorized
|
||||
rescue_from Gitlab::BitbucketImport::Client::Unauthorized, with: :bitbucket_unauthorized
|
||||
|
||||
def callback
|
||||
request_token = session.delete(:oauth_request_token)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
module Gitlab
|
||||
module BitbucketImport
|
||||
class Client
|
||||
class Unauthorized < StandardError; end
|
||||
|
||||
attr_reader :consumer, :api
|
||||
|
||||
def initialize(access_token = nil, access_token_secret = nil)
|
||||
@@ -46,23 +48,23 @@ module Gitlab
|
||||
end
|
||||
|
||||
def user
|
||||
JSON.parse(api.get("/api/1.0/user").body)
|
||||
JSON.parse(get("/api/1.0/user").body)
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
end
|
||||
end
|
||||
@@ -82,11 +84,18 @@ module Gitlab
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
private
|
||||
|
||||
def get(url)
|
||||
response = api.get(url)
|
||||
raise Unauthorized if (400..499).include?(response.code.to_i)
|
||||
|
||||
response
|
||||
end
|
||||
|
||||
def config
|
||||
Gitlab.config.omniauth.providers.find { |provider| provider.name == "bitbucket"}
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user