Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
3d09ff274261
Commit
42ebd902
authored
Jul 28, 2015
by
Douwe Maan
Browse files
Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
parent
b5198f48b791
Changes
3
Hide whitespace changes
Inline
Side-by-side
CHANGELOG
View file @
3d09ff27
...
...
@@ -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
...
...
app/controllers/import/bitbucket_controller.rb
View file @
3d09ff27
...
...
@@ -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
)
...
...
lib/gitlab/bitbucket_import/client.rb
View file @
3d09ff27
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 @@ def get_token(request_token, oauth_verifier, redirect_uri)
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 @@ def delete_deploy_key(project_identifier, key)
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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment