From c7686bd633c6c879cdf88ddf699f090c16c57f7c Mon Sep 17 00:00:00 2001 From: 6543 <6543@noreply.gitea.io> Date: Fri, 3 Jan 2020 06:22:50 +0000 Subject: [PATCH] update MergePullRequest (#207) update license header code format enforce enum Fix #137 Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Thomas Loubiou Reviewed-by: Andrew Thornton Reviewed-by: mrsdizzie --- gitea/pull.go | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/gitea/pull.go b/gitea/pull.go index 0e03a05..8d9c524 100644 --- a/gitea/pull.go +++ b/gitea/pull.go @@ -1,4 +1,5 @@ // Copyright 2016 The Gogs Authors. All rights reserved. +// Copyright 2019 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. @@ -124,10 +125,28 @@ func (c *Client) EditPullRequest(owner, repo string, index int64, opt EditPullRe jsonHeader, bytes.NewReader(body), pr) } +// MergePullRequestOption options when merging a pull request +type MergePullRequestOption struct { + // required: true + // enum: merge,rebase,rebase-merge,squash + Do string `json:"Do" binding:"Required;In(merge,rebase,rebase-merge,squash)"` + MergeTitleField string `json:"MergeTitleField"` + MergeMessageField string `json:"MergeMessageField"` +} + +// MergePullRequestResponse response when merging a pull request +type MergePullRequestResponse struct { +} + // MergePullRequest merge a PR to repository by PR id -func (c *Client) MergePullRequest(owner, repo string, index int64) error { - _, err := c.getResponse("POST", fmt.Sprintf("/repos/%s/%s/pulls/%d/merge", owner, repo, index), nil, nil) - return err +func (c *Client) MergePullRequest(owner, repo string, index int64, opt MergePullRequestOption) (*MergePullRequestResponse, error) { + body, err := json.Marshal(&opt) + if err != nil { + return nil, err + } + response := new(MergePullRequestResponse) + return response, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/pulls/%d/merge", owner, repo, index), + jsonHeader, bytes.NewReader(body), response) } // IsPullRequestMerged test if one PR is merged to one repository