class BitBucket::Repos::Webhooks

Constants

EVENTS

Public Instance Methods

create(user_name_or_project_key, repo_name, params = {}) click to toggle source
# File lib/bitbucket_rest_api/repos/webhooks.rb, line 24
def create(user_name_or_project_key, repo_name, params = {})
  _update_user_repo_params(user_name_or_project_key, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  normalize! params
  assert_required_keys(%w[description url active events], params)
  _validate_given_events(params)
  assert_required_values_present(
    params,
    'description',
    'url',
    'active',
    'events'
  )
  options = { headers: { "Content-Type" => "application/json" } }
  url = if BitBucket.options[:bitbucket_server]
          "/1.0/projects/#{user_name_or_project_key}/repos/#{repo_name}/webhooks"
        else
          "/2.0/repositories/#{user_name_or_project_key}/#{repo_name}/hooks"
        end

  post_request(url, params, options)
end
delete(user_name_or_project_key, repo_name, hook_uuid) click to toggle source
# File lib/bitbucket_rest_api/repos/webhooks.rb, line 91
def delete(user_name_or_project_key, repo_name, hook_uuid)
  _update_user_repo_params(user_name_or_project_key, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?

  url = if BitBucket.options[:bitbucket_server]
          "/1.0/projects/#{user_name_or_project_key}/repos/#{repo_name}/webhooks/#{hook_uuid}"
        else
          "/2.0/repositories/#{user_name_or_project_key}/#{repo_name}/hooks/#{hook_uuid}"
        end

  delete_request(url)
end
edit(user_name, repo_name, hook_uuid, params = {}) click to toggle source
# File lib/bitbucket_rest_api/repos/webhooks.rb, line 69
def edit(user_name, repo_name, hook_uuid, params = {})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  normalize! params
  assert_required_keys(%w[description url active events], params)
  _validate_given_events(params)
  assert_required_values_present(
    params,
    'description',
    'url',
    'active',
    'events'
  )

  options = { headers: { "Content-Type" => "application/json" } }
  put_request(
    "/2.0/repositories/#{user_name}/#{repo_name}/hooks/#{hook_uuid}",
    params,
    options
  )
end
get(user_name_or_project_key, repo_name, hook_uuid) click to toggle source
# File lib/bitbucket_rest_api/repos/webhooks.rb, line 60
def get(user_name_or_project_key, repo_name, hook_uuid)
  _update_user_repo_params(user_name_or_project_key, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?

  get_request(
    "/2.0/repositories/#{user_name_or_project_key}/#{repo_name}/hooks/#{hook_uuid}"
  )
end
list(user_name_or_project_key, repo_name) click to toggle source
# File lib/bitbucket_rest_api/repos/webhooks.rb, line 47
def list(user_name_or_project_key, repo_name)
  _update_user_repo_params(user_name_or_project_key, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?

  url = if BitBucket.options[:bitbucket_server]
          "/1.0/projects/#{user_name_or_project_key}/repos/#{repo_name}/webhooks"
        else
          "/2.0/repositories/#{user_name_or_project_key}/#{repo_name}/hooks?pagelen=100"
        end

  get_request(url)
end

Private Instance Methods

_validate_given_events(params) click to toggle source
# File lib/bitbucket_rest_api/repos/webhooks.rb, line 105
def _validate_given_events(params)
  given_events = params['events']
  raise BitBucket::Error::NoEvents if given_events.empty?
  given_events.each do |k|
    unless EVENTS.include?(k)
      raise BitBucket::Error::BadEvents, k
    end
  end
end