Class: Github::GitData::Commits

Inherits:
API
  • Object
show all
Defined in:
lib/github_api/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 Request

Request::METHODS, Request::METHODS_WITH_BODIES

Constants included from Connection

Connection::ALLOWED_OPTIONS

Constants included from Constants

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

Constants included from MimeType

MimeType::MEDIA_LOOKUP

Instance Attribute Summary

Attributes inherited from API

#current_options

Attributes included from Authorization

#scopes

Instance Method Summary collapse

Methods inherited from API

#api_methods_in, #append_arguments, #arguments, inherited, #initialize, #method_missing, #process_basic_auth, #set, #setup, #with, #yield_or_eval

Methods included from RateLimit

#ratelimit, #ratelimit_remaining

Methods included from Request

#delete_request, #get_request, #patch_request, #post_request, #put_request, #request

Methods included from Connection

#caching?, #clear_cache, #connection, #default_middleware, #default_options, #stack

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

Parameters

  • message - String of the commit message

  • tree - String of the SHA of the tree object this commit points to

  • parents - Array of the SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided, for a merge commit, an array of more than one should be provided.

Optional Parameters

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.

  • author.name - String of the name of the author of the commit

  • author.email - String of the email of the author of the commit

  • author.date - Timestamp of when this commit was authored

  • committer.name - String of the name of the committer of the commit

  • committer.email - String of the email of the committer of the commit

  • committer.date - Timestamp of when this commit was committed

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"]


72
73
74
75
76
77
78
79
80
# File 'lib/github_api/git_data/commits.rb', line 72

def create(*args)
  arguments(args, :required => [:user, :repo]) do
    sift VALID_COMMIT_PARAM_NAMES
    assert_required REQUIRED_COMMIT_PARAMS
  end
  params = arguments.params

  post_request("/repos/#{user}/#{repo}/git/commits", 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: '...'


32
33
34
35
36
37
# File 'lib/github_api/git_data/commits.rb', line 32

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

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