@@ -132,10 +132,27 @@ func (c *Client) EditPullRequest(owner, repo string, index int64, opt EditPullRe
132
132
jsonHeader , bytes .NewReader (body ), pr )
133
133
}
134
134
135
+ // MergePullRequestOption options when merging a pull request
136
+ type MergePullRequestOption struct {
137
+ // required: true
138
+ // enum: merge,rebase,rebase-merge,squash
139
+ Do string `json:"Do" binding:"Required"`
140
+ MergeTitleField string `json:"MergeTitleField"`
141
+ MergeMessageField string `json:"MergeMessageField"`
142
+ }
143
+ // MergePullRequestResponse response when merging a pull request
144
+ type MergePullRequestResponse struct {
145
+ }
146
+
135
147
// MergePullRequest merge a PR to repository by PR id
136
- func (c * Client ) MergePullRequest (owner , repo string , index int64 ) error {
137
- _ , err := c .getResponse ("POST" , fmt .Sprintf ("/repos/%s/%s/pulls/%d/merge" , owner , repo , index ), nil , nil )
138
- return err
148
+ func (c * Client ) MergePullRequest (owner , repo string , index int64 , opt MergePullRequestOption ) (* MergePullRequestResponse , error ) {
149
+ body , err := json .Marshal (& opt )
150
+ if err != nil {
151
+ return nil , err
152
+ }
153
+ response := new (MergePullRequestResponse )
154
+ return response , c .getParsedResponse ("POST" , fmt .Sprintf ("/repos/%s/%s/pulls/%d/merge" , owner , repo , index ),
155
+ jsonHeader , bytes .NewReader (body ), response )
139
156
}
140
157
141
158
// IsPullRequestMerged test if one PR is merged to one repository
0 commit comments