From 757a98f90c5582a932dcdda71da8dfc482a470b8 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jun 09 2015 09:26:30 +0000 Subject: [PATCH 1/2] Catch the GitError when merging and checking merge status of a PR --- diff --git a/pagure/internal/__init__.py b/pagure/internal/__init__.py index fe8dec5..114069e 100644 --- a/pagure/internal/__init__.py +++ b/pagure/internal/__init__.py @@ -205,6 +205,8 @@ def mergeable_request_pull(): username=flask.g.fas_user.username, request_folder=None, domerge=False) + except pygit2.GitError as err: + flask.abort(400, err.message) except pagure.exceptions.PagureException as err: flask.abort(400, err.message) diff --git a/pagure/ui/fork.py b/pagure/ui/fork.py index ffdab65..442915d 100644 --- a/pagure/ui/fork.py +++ b/pagure/ui/fork.py @@ -438,6 +438,11 @@ def merge_request_pull(repo, requestid, username=None): SESSION, request, flask.g.fas_user.username, APP.config['REQUESTS_FOLDER']) flask.flash(message) + except pygit2.GitError as err: + flask.flash(str(err.message), 'error') + return flask.redirect(flask.url_for( + 'request_pull', repo=repo.name, requestid=requestid, + username=username)) except pagure.exceptions.PagureException as err: flask.flash(str(err), 'error') return flask.redirect(flask.url_for( From a1e0a9f47fb276bb7ab10393b7fc1784d3708e0d Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jun 09 2015 10:43:23 +0000 Subject: [PATCH 2/2] Adjust the http error codes returned to reflect the state of the request --- diff --git a/pagure/internal/__init__.py b/pagure/internal/__init__.py index 114069e..5e1879a 100644 --- a/pagure/internal/__init__.py +++ b/pagure/internal/__init__.py @@ -112,7 +112,7 @@ def pull_request_add_comment(): except SQLAlchemyError, err: # pragma: no cover pagure.SESSION.rollback() pagure.APP.logger.exception(err) - flask.abort(400, 'Error when saving the request to the database') + flask.abort(500, 'Error when saving the request to the database') return flask.jsonify({'message': message}) @@ -167,7 +167,7 @@ def ticket_add_comment(): except SQLAlchemyError, err: # pragma: no cover pagure.SESSION.rollback() pagure.APP.logger.exception(err) - flask.abort(400, 'Error when saving the request to the database') + flask.abort(500, 'Error when saving the request to the database') return flask.jsonify({'message': message}) @@ -206,9 +206,9 @@ def mergeable_request_pull(): request_folder=None, domerge=False) except pygit2.GitError as err: - flask.abort(400, err.message) + flask.abort(409, err.message) except pagure.exceptions.PagureException as err: - flask.abort(400, err.message) + flask.abort(500, err.message) return flask.jsonify({ 'code': merge_status,