Class: Github::Client::GitData::Trees

Inherits:
API
  • Object
show all
Defined in:
lib/github_api/client/git_data/trees.rb

Constant Summary collapse

VALID_TREE_PARAM_NAMES =
%w[
  base_tree
  tree
  path
  mode
  type
  sha
  content
  url
].freeze
VALID_TREE_PARAM_VALUES =
{
  'mode' => %w[ 100644 100755 040000 160000 120000 ],
  'type' => %w[ blob tree commit ]
}

Constants included from MimeType

MimeType::MEDIA_LOOKUP

Constants included from Github::Constants

Github::Constants::ACCEPT, Github::Constants::ACCEPTED_OAUTH_SCOPES, Github::Constants::ACCEPT_CHARSET, Github::Constants::CACHE_CONTROL, Github::Constants::CONTENT_LENGTH, Github::Constants::CONTENT_TYPE, Github::Constants::DATE, Github::Constants::ETAG, Github::Constants::HEADER_LAST, Github::Constants::HEADER_LINK, Github::Constants::HEADER_NEXT, Github::Constants::LOCATION, Github::Constants::META_FIRST, Github::Constants::META_LAST, Github::Constants::META_NEXT, Github::Constants::META_PREV, Github::Constants::META_REL, Github::Constants::OAUTH_SCOPES, Github::Constants::PARAM_PAGE, Github::Constants::PARAM_PER_PAGE, Github::Constants::PARAM_START_PAGE, Github::Constants::RATELIMIT_LIMIT, Github::Constants::RATELIMIT_REMAINING, Github::Constants::RATELIMIT_RESET, Github::Constants::SERVER, Github::Constants::USER_AGENT

Instance Attribute Summary

Attributes inherited from API

#current_options

Instance Method Summary collapse

Methods inherited from API

after_callbacks, after_request, #api_methods_in, #arguments, before_callbacks, before_request, clear_request_methods!, #disable_redirects, #execute, extend_with_actions, extra_methods, #extract_basic_auth, extract_class_name, #filter_callbacks, inherited, #initialize, internal_methods, method_added, #method_missing, #module_methods_in, namespace, request_methods, require_all, #respond_to?, root!, #run_callbacks, #set, #yield_or_eval

Methods included from Request::Verbs

#delete_request, #get_request, #head_request, #options_request, #patch_request, #post_request, #put_request

Methods included from RateLimit

#ratelimit, #ratelimit_remaining, #ratelimit_reset

Methods included from MimeType

#lookup_media, #parse

Methods included from Authorization

#auth_code, #authenticated?, #authentication, #authorize_url, #basic_authed?, #client, #get_token

Constructor Details

This class inherits a constructor from Github::API

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Github::API

Instance Method Details

#create(*args) ⇒ Object

Create a tree

The tree creation API will take nested entries as well. If both a tree and a nested path modifying that tree are specified, it will overwrite the contents of that tree with the new path contents and write a new tree out.

The tree parameter takes the following keys:

Examples:

github = Github.new
github.git_data.trees.create 'user-name', 'repo-name',
  tree: [
    {
      path: "file.rb",
      mode: "100644",
      type: "blob",
      sha: "44b4fc6d56897b048c772eb4087f854f46256132"
    },
    ...
  ]

Parameters:



103
104
105
106
107
108
109
110
111
# File 'lib/github_api/client/git_data/trees.rb', line 103

def create(*args)
  arguments(args, required: [:user, :repo]) do
    assert_required %w[ tree ]
    permit VALID_TREE_PARAM_NAMES, 'tree', { recursive: true }
    assert_values VALID_TREE_PARAM_VALUES, 'tree'
  end

  post_request("/repos/#{arguments.user}/#{arguments.repo}/git/trees", arguments.params)
end

#get(*args) ⇒ Object Also known as: find

Get a tree

Get a tree recursively

Examples:

github = Github.new
github.git_data.trees.get 'user-name', 'repo-name', 'sha'
github.git_data.trees.get 'user-name', 'repo-name', 'sha' do |file|
  file.path
end
github = Github.new
github.git_data.trees.get 'user-name', 'repo-name', 'sha', recursive: true


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/github_api/client/git_data/trees.rb', line 40

def get(*args)
  arguments(args, required: [:user, :repo, :sha])
  user   = arguments.user
  repo   = arguments.repo
  sha    = arguments.sha
  params = arguments.params

  response = if params['recursive']
    params['recursive'] = 1
    get_request("/repos/#{user}/#{repo}/git/trees/#{sha}", params)
  else
    get_request("/repos/#{user}/#{repo}/git/trees/#{sha.to_s}", params)
  end
  return response unless block_given?
  response.tree.each { |el| yield el }
end
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy