You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.0 KiB
43 lines
1.0 KiB
# Merge a pull request
|
|
class Gitea::PullRequest::MergeService < Gitea::ClientService
|
|
attr_reader :user, :repo, :pull_request_id, :params
|
|
|
|
# parameters:
|
|
# repo: name of the repo
|
|
# pull_request_id: index of the pull request to merge
|
|
# params:
|
|
# title: merge标题
|
|
# message: merge说明
|
|
def initialize(user, repo, pull_request_id, params={})
|
|
@user = user
|
|
@repo = repo
|
|
@params = params
|
|
@pull_request_id = pull_request_id
|
|
end
|
|
|
|
def call
|
|
post(url, request_params)
|
|
end
|
|
|
|
private
|
|
def url
|
|
"/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}/merge"
|
|
end
|
|
|
|
def request_params
|
|
Hash.new.merge(token: user.gitea_token, data: body)
|
|
end
|
|
|
|
def body
|
|
# TODO
|
|
# 暂时只支持 merge模式
|
|
#params Do: Enum [ merge, rebase, rebase-merge, squash ], default merge
|
|
body = {
|
|
Do: 'merge'
|
|
}
|
|
body = body.merge(MergeTitleField: params[:title]) if params[:title]
|
|
body = body.merge(MergeMessageField: params[:message]) if params[:message]
|
|
body
|
|
end
|
|
end
|