Reimplement GitLab trigger handler using the V4 API library
GitLab has deprecated and removed the V3 API entirely Fixes https://jira.coreos.com/browse/QUAY-966
This commit is contained in:
parent
b0489aa8b0
commit
bf966545ba
9 changed files with 912 additions and 393 deletions
|
@ -11,9 +11,7 @@ from app import app
|
|||
from auth.permissions import (UserAdminPermission, AdministerOrganizationPermission,
|
||||
ReadRepositoryPermission, AdministerRepositoryPermission)
|
||||
from buildtrigger.basehandler import BuildTriggerHandler
|
||||
from buildtrigger.triggerutil import (TriggerDeactivationException,
|
||||
TriggerActivationException, EmptyRepositoryException,
|
||||
RepositoryReadException, TriggerStartException)
|
||||
from buildtrigger.triggerutil import TriggerException, EmptyRepositoryException
|
||||
from data import model
|
||||
from data.model.build import update_build_trigger
|
||||
from endpoints.api import (RepositoryParamResource, nickname, resource, require_repo_admin,
|
||||
|
@ -118,7 +116,7 @@ class BuildTrigger(RepositoryParamResource):
|
|||
if handler.is_active():
|
||||
try:
|
||||
handler.deactivate()
|
||||
except TriggerDeactivationException as ex:
|
||||
except TriggerException as ex:
|
||||
# We are just going to eat this error
|
||||
logger.warning('Trigger deactivation problem: %s', ex)
|
||||
|
||||
|
@ -178,7 +176,7 @@ class BuildTriggerSubdirs(RepositoryParamResource):
|
|||
'contextMap': {},
|
||||
'dockerfile_paths': [],
|
||||
}
|
||||
except RepositoryReadException as exc:
|
||||
except TriggerException as exc:
|
||||
return {
|
||||
'status': 'error',
|
||||
'message': exc.message,
|
||||
|
@ -264,7 +262,7 @@ class BuildTriggerActivate(RepositoryParamResource):
|
|||
if 'private_key' in private_config:
|
||||
trigger.private_key = private_config['private_key']
|
||||
|
||||
except TriggerActivationException as exc:
|
||||
except TriggerException as exc:
|
||||
write_token.delete_instance()
|
||||
raise request_error(message=exc.message)
|
||||
|
||||
|
@ -332,7 +330,7 @@ class BuildTriggerAnalyze(RepositoryParamResource):
|
|||
new_config_dict,
|
||||
AdministerOrganizationPermission(namespace_name).can())
|
||||
return trigger_analyzer.analyze_trigger()
|
||||
except RepositoryReadException as rre:
|
||||
except TriggerException as rre:
|
||||
return {
|
||||
'status': 'error',
|
||||
'message': 'Could not analyze the repository: %s' % rre.message,
|
||||
|
@ -391,7 +389,7 @@ class ActivateBuildTrigger(RepositoryParamResource):
|
|||
run_parameters = request.get_json()
|
||||
prepared = handler.manual_start(run_parameters=run_parameters)
|
||||
build_request = start_build(repo, prepared, pull_robot_name=pull_robot_name)
|
||||
except TriggerStartException as tse:
|
||||
except TriggerException as tse:
|
||||
raise InvalidRequest(tse.message)
|
||||
except MaximumBuildsQueuedException:
|
||||
abort(429, message='Maximum queued build rate exceeded.')
|
||||
|
@ -494,7 +492,7 @@ class BuildTriggerSources(RepositoryParamResource):
|
|||
return {
|
||||
'sources': handler.list_build_sources_for_namespace(namespace)
|
||||
}
|
||||
except RepositoryReadException as rre:
|
||||
except TriggerException as rre:
|
||||
raise InvalidRequest(rre.message)
|
||||
else:
|
||||
raise Unauthorized()
|
||||
|
@ -522,7 +520,7 @@ class BuildTriggerSourceNamespaces(RepositoryParamResource):
|
|||
return {
|
||||
'namespaces': handler.list_build_source_namespaces()
|
||||
}
|
||||
except RepositoryReadException as rre:
|
||||
except TriggerException as rre:
|
||||
raise InvalidRequest(rre.message)
|
||||
else:
|
||||
raise Unauthorized()
|
||||
|
|
Reference in a new issue