Skip to content
Snippets Groups Projects
Commit 7a34c799 authored by Douglas Barbosa Alexandre's avatar Douglas Barbosa Alexandre
Browse files

Listing GH Webhooks doesn't stop import process for non GH admin users

parent 71ecd8c6
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -66,8 +66,7 @@ module Gitlab
end
 
def import_pull_requests
hooks = client.hooks(repo).map { |raw| HookFormatter.new(raw) }.select(&:valid?)
disable_webhooks(hooks)
disable_webhooks
 
pull_requests = client.pull_requests(repo, state: :all, sort: :created, direction: :asc, per_page: 100)
pull_requests = pull_requests.map { |raw| PullRequestFormatter.new(project, raw) }.select(&:valid?)
Loading
Loading
@@ -90,14 +89,14 @@ module Gitlab
raise Projects::ImportService::Error, e.message
ensure
clean_up_restored_branches(branches_removed)
clean_up_disabled_webhooks(hooks)
clean_up_disabled_webhooks
end
 
def disable_webhooks(hooks)
def disable_webhooks
update_webhooks(hooks, active: false)
end
 
def clean_up_disabled_webhooks(hooks)
def clean_up_disabled_webhooks
update_webhooks(hooks, active: true)
end
 
Loading
Loading
@@ -107,6 +106,20 @@ module Gitlab
end
end
 
def hooks
@hooks ||=
begin
client.hooks(repo).map { |raw| HookFormatter.new(raw) }.select(&:valid?)
# The GitHub Repository Webhooks API returns 404 for users
# without admin access to the repository when listing hooks.
# In this case we just want to return gracefully instead of
# spitting out an error and stop the import process.
rescue Octokit::NotFound
[]
end
end
def restore_branches(branches)
branches.each do |name, sha|
client.create_ref(repo, "refs/heads/#{name}", sha)
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment