Class: Github::Client::GitData::Commits

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

Constant Summary collapse

VALID_COMMIT_PARAM_NAMES =
%w[
  message
  tree
  parents
  author
  committer
  name
  email
  date
].freeze
REQUIRED_COMMIT_PARAMS =
%w[
  message
  tree
  parents
].freeze

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!, #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, root!, #run_callbacks, #set, #yield_or_eval

Methods included from Github::ClassMethods

#configuration, #configure, #require_all

Methods included from RateLimit

#ratelimit, #ratelimit_remaining, #ratelimit_reset

Methods included from Request::Verbs

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

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 commit

Optional Parameters

You can provide an additional commiter parameter, which is a hash containing information about the committer. Or, you can provide an author parameter, which is a hash containing information about the author.

The committer section is optional and will be filled with the author data if omitted. If the author section is omitted, it will be filled in with the authenticated users information and the current date.

Both the author and commiter parameters have the same keys:

Examples:

github = Github.new
github.git_data.commits.create 'user-name', 'repo-name',
  message: "my commit message",
  author: {
    name: "Scott Chacon",
    email: "[email protected]",
    date: "2008-07-09T16:13:30+12:00"
  },
  parents: [
    "7d1b31e74ee336d15cbd21741bc88a537ed063a0"
  ],
  tree: "827efc6d56897b048c772eb4087f854f46256132"]

Parameters:


90
91
92
93
94
95
96
97
# File 'lib/github_api/client/git_data/commits.rb', line 90

def create(*args)
  arguments(args, required: [:user, :repo]) do
    permit VALID_COMMIT_PARAM_NAMES
    assert_required REQUIRED_COMMIT_PARAMS
  end

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

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

Get a commit

Examples:

github = Github.new
github.git_data.commits.get 'user-name', 'repo-name', 'sha'
commits = Github::Commits.new user: 'user-name', repo: 'repo-name'
commits.get sha: '...'

34
35
36
37
38
39
# File 'lib/github_api/client/git_data/commits.rb', line 34

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

  get_request("/repos/#{arguments.user}/#{arguments.repo}/git/commits/#{arguments.sha}", params)
end