diff --git a/rhodecode/api/views/pull_request_api.py b/rhodecode/api/views/pull_request_api.py --- a/rhodecode/api/views/pull_request_api.py +++ b/rhodecode/api/views/pull_request_api.py @@ -574,7 +574,8 @@ def comment_pull_request( @jsonrpc_method() def create_pull_request( request, apiuser, source_repo, target_repo, source_ref, target_ref, - title=Optional(''), description=Optional(''), reviewers=Optional(None)): + title=Optional(''), description=Optional(''), description_renderer=Optional(''), + reviewers=Optional(None)): """ Creates a new pull request. @@ -599,6 +600,10 @@ def create_pull_request( :type title: str :param description: Set the pull request description. :type description: Optional(str) + :type description_renderer: Optional(str) + :param description_renderer: Set pull request renderer for the description. + It should be 'rst', 'markdown' or 'plain'. If not give default + system renderer will be used :param reviewers: Set the new pull request reviewers list. Reviewer defined by review rules will be added automatically to the defined list. @@ -679,7 +684,11 @@ def create_pull_request( source_ref=title_source_ref, target=target_repo ) + # fetch renderer, if set fallback to plain in case of PR + rc_config = SettingsModel().get_all_settings() + default_system_renderer = rc_config.get('rhodecode_markup_renderer', 'plain') description = Optional.extract(description) + description_renderer = Optional.extract(description_renderer) or default_system_renderer pull_request = PullRequestModel().create( created_by=apiuser.user_id, @@ -691,6 +700,7 @@ def create_pull_request( reviewers=reviewers, title=title, description=description, + description_renderer=description_renderer, reviewer_data=reviewer_rules, auth_user=apiuser ) @@ -706,8 +716,8 @@ def create_pull_request( @jsonrpc_method() def update_pull_request( request, apiuser, pullrequestid, repoid=Optional(None), - title=Optional(''), description=Optional(''), reviewers=Optional(None), - update_commits=Optional(None)): + title=Optional(''), description=Optional(''), description_renderer=Optional(''), + reviewers=Optional(None), update_commits=Optional(None)): """ Updates a pull request. @@ -721,6 +731,9 @@ def update_pull_request( :type title: str :param description: Update pull request description. :type description: Optional(str) + :type description_renderer: Optional(str) + :param description_renderer: Update pull request renderer for the description. + It should be 'rst', 'markdown' or 'plain' :param reviewers: Update pull request reviewers list with new value. :type reviewers: Optional(list) Accepts username strings or objects of the format: @@ -803,10 +816,15 @@ def update_pull_request( title = Optional.extract(title) description = Optional.extract(description) + description_renderer = Optional.extract(description_renderer) + if title or description: PullRequestModel().edit( - pull_request, title or pull_request.title, - description or pull_request.description, apiuser) + pull_request, + title or pull_request.title, + description or pull_request.description, + description_renderer or pull_request.description_renderer, + apiuser) Session().commit() commit_changes = {"added": [], "common": [], "removed": []}