Fix bugs with the custom git trigger and make error reporting better
This commit is contained in:
parent
f858caf6cd
commit
de6267700e
2 changed files with 12 additions and 8 deletions
|
@ -991,7 +991,7 @@ class CustomBuildTrigger(BuildTriggerHandler):
|
||||||
'required': ['url', 'message', 'date'],
|
'required': ['url', 'message', 'date'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'required': ['commits', 'ref', 'default_branch'],
|
'required': ['commit', 'ref', 'default_branch'],
|
||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -1005,15 +1005,15 @@ class CustomBuildTrigger(BuildTriggerHandler):
|
||||||
try:
|
try:
|
||||||
metadata = json.loads(payload)
|
metadata = json.loads(payload)
|
||||||
validate(metadata, self.payload_schema)
|
validate(metadata, self.payload_schema)
|
||||||
except:
|
except Exception as e:
|
||||||
raise InvalidPayloadException()
|
raise InvalidPayloadException(e.message)
|
||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
def handle_trigger_request(self, request):
|
def handle_trigger_request(self, request):
|
||||||
# Skip if there is no payload.
|
# Skip if there is no payload.
|
||||||
payload = request.get_json()
|
payload = request.data
|
||||||
if not payload:
|
if not payload:
|
||||||
raise SkipRequestException()
|
raise InvalidPayloadException()
|
||||||
|
|
||||||
logger.debug('Payload %s', payload)
|
logger.debug('Payload %s', payload)
|
||||||
|
|
||||||
|
@ -1028,9 +1028,10 @@ class CustomBuildTrigger(BuildTriggerHandler):
|
||||||
|
|
||||||
prepared = PreparedBuild(self.trigger)
|
prepared = PreparedBuild(self.trigger)
|
||||||
prepared.tags_from_ref(metadata['ref'])
|
prepared.tags_from_ref(metadata['ref'])
|
||||||
prepared.name_from_sha(metadata['commit_sha'])
|
prepared.name_from_sha(metadata['commit'])
|
||||||
prepared.subdirectory = config['subdir']
|
prepared.subdirectory = config['subdir']
|
||||||
prepared.metadata = metadata
|
prepared.metadata = metadata
|
||||||
|
prepared.is_manual = False
|
||||||
|
|
||||||
return prepared
|
return prepared
|
||||||
|
|
||||||
|
|
|
@ -89,14 +89,17 @@ def build_trigger_webhook(trigger_uuid, **kwargs):
|
||||||
try:
|
try:
|
||||||
prepared = handler.handle_trigger_request(request)
|
prepared = handler.handle_trigger_request(request)
|
||||||
except ValidationRequestException:
|
except ValidationRequestException:
|
||||||
|
logger.debug('Handler reported a validation exception: %s', handler)
|
||||||
# This was just a validation request, we don't need to build anything
|
# This was just a validation request, we don't need to build anything
|
||||||
return make_response('Okay')
|
return make_response('Okay')
|
||||||
except SkipRequestException:
|
except SkipRequestException:
|
||||||
|
logger.debug('Handler reported to skip the build: %s', handler)
|
||||||
# The build was requested to be skipped
|
# The build was requested to be skipped
|
||||||
return make_response('Okay')
|
return make_response('Okay')
|
||||||
except InvalidPayloadException:
|
except InvalidPayloadException as ipe:
|
||||||
|
logger.exception('Invalid payload')
|
||||||
# The payload was malformed
|
# The payload was malformed
|
||||||
abort(400)
|
abort(400, message=ipe.message)
|
||||||
|
|
||||||
pull_robot_name = model.get_pull_robot_name(trigger)
|
pull_robot_name = model.get_pull_robot_name(trigger)
|
||||||
repo = model.get_repository(namespace, repository)
|
repo = model.get_repository(namespace, repository)
|
||||||
|
|
Reference in a new issue