From d63fd48dd53bb85f1aca5257272b6619d8aca22a Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: Dec 12 2018 14:34:42 +0000 Subject: PV endpoint: check score after the merge_status eval This change makes sure a PR got a merge status other than 'unknown' when minimal score to merge is set in the settings. Indeed, if set, the score is checked first, and merge_status is not set if score no reached. Even if the score is not reached it makes sense to known the mergeability. --- diff --git a/pagure/internal/__init__.py b/pagure/internal/__init__.py index 8ede612..976e2bb 100644 --- a/pagure/internal/__init__.py +++ b/pagure/internal/__init__.py @@ -303,21 +303,6 @@ def mergeable_request_pull(): response.status_code = 404 return response - threshold = request.project.settings.get( - "Minimum_score_to_merge_pull-request", -1 - ) - if threshold > 0 and int(request.score) < int(threshold): - response = flask.jsonify( - { - "code": "CONFLICTS", - "message": "Pull-Request does not meet the minimal " - "number of review required: %s/%s" - % (request.score, threshold), - } - ) - response.status_code = 400 - return response - merge_status = request.merge_status if not merge_status or force: try: @@ -340,6 +325,21 @@ def mergeable_request_pull(): response.status_code = 500 return response + threshold = request.project.settings.get( + "Minimum_score_to_merge_pull-request", -1 + ) + if threshold > 0 and int(request.score) < int(threshold): + response = flask.jsonify( + { + "code": "CONFLICTS", + "message": "Pull-Request does not meet the minimal " + "number of review required: %s/%s" + % (request.score, threshold), + } + ) + response.status_code = 400 + return response + return flask.jsonify(pagure.utils.get_merge_options(request, merge_status))