class Github::Client::GitData::References

def create(*args)

Other tags:
    Api: - public

Parameters:
  • params (Hash) --
def create(*args)
  arguments(args, required: [:user, :repo]) do
    permit VALID_REF_PARAM_NAMES
    assert_required REQUIRED_REF_PARAMS
  end
  params = arguments.params
  validate_reference params['ref']
  post_request("/repos/#{arguments.user}/#{arguments.repo}/git/refs", params)
end

def delete(*args)

Other tags:
    Api: - public
def delete(*args)
  arguments(args, required: [:user, :repo, :ref])
  params = arguments.params
  delete_request("/repos/#{arguments.user}/#{arguments.repo}/git/refs/#{arguments.ref}", params)
end

def get(*args)

Other tags:
    Api: - public
def get(*args)
  arguments(args, required: [:user, :repo, :ref])
  validate_reference arguments.ref
  params = arguments.params
  get_request("/repos/#{arguments.user}/#{arguments.repo}/git/refs/#{arguments.ref}", params)
end

def list(*args)

Other tags:
    Api: - public
def list(*args)
  arguments(args, required: [:user, :repo])
  params = arguments.params
  user = arguments.user
  repo = arguments.repo
  response = if (ref = params.delete('ref'))
    validate_reference ref
    get_request("/repos/#{user}/#{repo}/git/refs/#{ref}", params)
  else
    get_request("/repos/#{user}/#{repo}/git/refs", params)
  end
  return response unless block_given?
  response.each { |el| yield el }
end

def update(*args)

Other tags:
    Api: - public

Parameters:
  • params (Hash) --
def update(*args)
  arguments(args, required: [:user, :repo, :ref]) do
    permit VALID_REF_PARAM_NAMES
    assert_required %w[ sha ]
  end
  patch_request("/repos/#{arguments.user}/#{arguments.repo}/git/refs/#{arguments.ref}", arguments.params)
end

def validate_reference(ref)

def validate_reference(ref)
  refs = (ref =~ (/^(\/)?refs.*/) ? ref : "refs/#{ref}").gsub(/(\/)+/, '/')
  refs.gsub!(/^\//, '')
  unless VALID_REF_PARAM_VALUES['ref'] =~ refs
    raise ArgumentError, "Provided 'reference' is invalid"
  end
end