diff options
author | Stan Hu <stanhu@gmail.com> | 2018-07-13 15:39:24 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-07-13 15:39:24 -0700 |
commit | c793252e8b33a1b7d071aca90c9c05e54ad973b5 (patch) | |
tree | 238d0c479817abd68c23212e44d6484d27f9bb04 /lib/bitbucket_server/connection.rb | |
parent | ec4109d413f6161b43ad4cc1a6251af30d3bcf03 (diff) | |
download | gitlab-ce-c793252e8b33a1b7d071aca90c9c05e54ad973b5.tar.gz |
Add support for deleting branches via the Bitbucket Server API
Diffstat (limited to 'lib/bitbucket_server/connection.rb')
-rw-r--r-- | lib/bitbucket_server/connection.rb | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/lib/bitbucket_server/connection.rb b/lib/bitbucket_server/connection.rb index 853d09b776a..0b65203a824 100644 --- a/lib/bitbucket_server/connection.rb +++ b/lib/bitbucket_server/connection.rb @@ -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 |