From e6f1fdf673f0b7fb5e0959742d7bab83050cce00 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: May 22 2017 20:36:59 +0000 Subject: Make fork API async Signed-off-by: Patrick Uiterwijk --- diff --git a/pagure/api/fork.py b/pagure/api/fork.py index 7457fcb..9621731 100644 --- a/pagure/api/fork.py +++ b/pagure/api/fork.py @@ -15,6 +15,7 @@ from sqlalchemy.exc import SQLAlchemyError import pagure import pagure.exceptions import pagure.lib +import pagure.lib.tasks from pagure import APP, SESSION, is_repo_committer from pagure.api import (API, api_method, api_login_required, APIERROR, get_authorized_api_project) @@ -287,6 +288,8 @@ def api_pull_request_merge(repo, requestid, username=None, namespace=None): -------------------- Instruct Paugre to merge a pull request. + This is an asynchronous call. + :: POST /api/0//pull-request//merge @@ -303,7 +306,8 @@ def api_pull_request_merge(repo, requestid, username=None, namespace=None): :: { - "message": "Changes merged!" + "message": "Merging queued", + "taskid": "123-abcd" } """ # noqa @@ -345,10 +349,11 @@ def api_pull_request_merge(repo, requestid, username=None, namespace=None): raise pagure.exceptions.APIError(403, error_code=APIERROR.EPRSCORE) try: - message = pagure.lib.git.merge_pull_request( - SESSION, request, flask.g.fas_user.username, - APP.config['REQUESTS_FOLDER']) - output['message'] = message + taskid = pagure.lib.tasks.merge_pull_request.delay( + repo.name, namespace, username, requestid, + flask.g.fas_user.username) + output = {'message': 'Merging queued', + 'taskid': taskid} except pagure.exceptions.PagureException as err: raise pagure.exceptions.APIError( 400, error_code=APIERROR.ENOCODE, error=str(err))