mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-08-24 06:58:51 +00:00
Add support for deleting branches via the Bitbucket Server API
This commit is contained in:
@ -36,6 +36,15 @@ module BitbucketServer
|
||||
connection.post("/projects/#{project_key}/repos/#{repo}/branches", payload.to_json)
|
||||
end
|
||||
|
||||
def delete_branch(project_key, repo, branch_name, sha)
|
||||
payload = {
|
||||
name: Gitlab::Git::BRANCH_REF_PREFIX + branch_name,
|
||||
dryRun: false
|
||||
}
|
||||
|
||||
connection.delete(:branches, "/projects/#{project_key}/repos/#{repo}/branches", payload.to_json)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def get_collection(path, type)
|
||||
|
@ -36,10 +36,27 @@ module BitbucketServer
|
||||
response.parsed_response
|
||||
end
|
||||
|
||||
# We need to support two different APIs for deletion:
|
||||
#
|
||||
# /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/branches/default
|
||||
# /rest/branch-utils/1.0/projects/{projectKey}/repos/{repositorySlug}/branches
|
||||
def delete(resource, path, body)
|
||||
url = delete_url(resource, path)
|
||||
|
||||
response = Gitlab::HTTP.delete(url,
|
||||
basic_auth: auth,
|
||||
headers: post_headers,
|
||||
body: body)
|
||||
|
||||
check_errors!(response)
|
||||
|
||||
response.parsed_response
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def check_errors!(response)
|
||||
return if response.code == 200
|
||||
return if response.code >= 200 && response.code < 300
|
||||
|
||||
details =
|
||||
if response.parsed_response && response.parsed_response.is_a?(Hash)
|
||||
@ -68,5 +85,13 @@ module BitbucketServer
|
||||
def root_url
|
||||
"#{base_uri}/rest/api/#{api_version}"
|
||||
end
|
||||
|
||||
def delete_url(resource, path)
|
||||
if resource == :branches
|
||||
"#{base_uri}/branch-utils/#{api_version}#{path}"
|
||||
else
|
||||
build_url(path)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user