class UniversalGitClient::Http::BitbucketServer

Public Instance Methods

branch(owner:, repo:, branch:) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 78
def branch(owner:, repo:, branch:)
  with_response_validation! do
    response = self.class.get(
      "/projects/#{owner}/repos/#{repo}/branches",
      default_options.merge(
        query: {
          filterText: branch,
          limit: 1
        }
      )
    )
    Helpers::DummyResponse.response(request: response.request, body: response.parsed_response['values'].first)
  end
end
branches(owner:, repo:, page: 1, per_page: nil) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 64
def branches(owner:, repo:, page: 1, per_page: nil)
  with_response_validation! do
    self.class.get(
      "/projects/#{owner}/repos/#{repo}/branches",
      default_options.merge(
        query: {
          start: limit(per_page) * (page - 1),
          limit: limit(per_page)
        }
      )
    )
  end
end
delete_repo_webhook(owner:, repo:, webhook_id:) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 118
def delete_repo_webhook(owner:, repo:, webhook_id:)
  with_response_validation! do
    self.class.delete(
      "/projects/#{owner}/repos/#{repo}/webhooks/#{webhook_id}",
      default_options
    )
  end
end
download_repo_archive(owner:, repo:, branch: nil) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 93
def download_repo_archive(owner:, repo:, branch: nil)
  Down.download("#{base_url}/projects/#{owner}/repos/#{repo}/archive?at=#{branch}&format=zip", down_default_options)
end
orga_repos(organization:, page: 1, per_page: nil) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 42
def orga_repos(organization:, page: 1, per_page: nil)
  options =  default_options.merge(
    query: {
      start: limit(per_page) * (page - 1),
      limit: limit(per_page)
    }
  )
  body = {
    size: 0,
    start: 0,
    limit: limit(per_page),
    values: []
  }
  Helpers::DummyResponse.response(body: body, options: options)
end
organizations(page: 1, per_page: nil) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 11
def organizations(page: 1, per_page: nil)
  options = default_options.merge(
    query: {
      start: limit(per_page) * (page - 1),
      limit: limit(per_page)
    }
  )
  body = {
    size: 0,
    start: 0,
    limit: limit(per_page),
    values: []
  }
  Helpers::DummyResponse.response(body: body, options: options)
end
repository(owner:, repo:) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 58
def repository(owner:, repo:)
  with_response_validation! do
    self.class.get("/projects/#{owner}/repos/#{repo}", default_options)
  end
end
setup_repo_webhook(owner:, repo:, webhook_url:, webhook_secret: nil) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 97
def setup_repo_webhook(owner:, repo:, webhook_url:, webhook_secret: nil)
  with_response_validation! do
    self.class.post(
      "/projects/#{owner}/repos/#{repo}/webhooks",
      default_options.merge(
        body: {
          name: 'webhook',
          url: webhook_url,
          active: true,
          events: [
            'repo:refs_changed'
          ],
          configuration: {
            secret: webhook_secret
          }
        }.to_json
      )
    )
  end
end
user() click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 7
def user
  Helpers::DummyResponse.response(options: default_options)
end
user_repos(page: 1, per_page: nil) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 27
def user_repos(page: 1, per_page: nil)
  with_response_validation! do
    self.class.get(
      '/repos',
      default_options.merge(
        query: {
          state: 'AVAILABLE',
          start: limit(per_page) * (page - 1),
          limit: limit(per_page)
        }
      )
    )
  end
end

Private Instance Methods

limit(per_page) click to toggle source
# File lib/universal-git-client/http/bitbucket_server.rb, line 129
def limit(per_page)
  per_page || default_elements_per_page
end