Module: Octokit::Client::Commits

Included in:
Octokit::Client
Defined in:
lib/octokit/client/commits.rb

Overview

Methods for the Commits API

Instance Method Summary collapse

Instance Method Details

#commit(repo, sha, options = {}) ⇒ Sawyer::Resource

Get a single commit

Parameters:

  • repo (Integer, String, Hash, Repository)

    A GitHub repository

  • sha (String)

    The SHA of the commit to fetch

Returns:

  • (Sawyer::Resource)

    A hash representing the commit

See Also:



151
152
153
# File 'lib/octokit/client/commits.rb', line 151

def commit(repo, sha, options = {})
  get "#{Repository.path repo}/commits/#{sha}", options
end

#commits(repo, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource> #commits(repo, options = {}) ⇒ Array<Sawyer::Resource> Also known as: list_commits

List commits

Overloads:

  • #commits(repo, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>
    Deprecated.

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • sha_or_branch (String)

      A commit SHA or branch name

    • options (String) (defaults to: {})

      :sha Commit SHA or branch name from which to start the list

  • #commits(repo, options = {}) ⇒ Array<Sawyer::Resource>

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • options (String) (defaults to: {})

      :sha Commit SHA or branch name from which to start the list

Returns:

  • (Array<Sawyer::Resource>)

    An array of hashes representing commits

See Also:



23
24
25
26
27
28
29
30
# File 'lib/octokit/client/commits.rb', line 23

def commits(*args)
  arguments = Octokit::RepoArguments.new(args)
  sha_or_branch = arguments.pop
  if sha_or_branch
    arguments.options[:sha] = sha_or_branch
  end
  paginate "#{Repository.new(arguments.repo).path}/commits", arguments.options
end

#commits_before(repo, date, options = {}) ⇒ Array<Sawyer::Resource> #commits_before(repo, date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>

Get commits before a specified date

Examples:

Octokit.commits_before('octokit/octokit.rb', '2012-10-01')

Overloads:

  • #commits_before(repo, date, options = {}) ⇒ Array<Sawyer::Resource>

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • date (String)

      Date on which we want to compare

  • #commits_before(repo, date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>
    Deprecated.

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • date (String)

      Date on which we want to compare

    • sha_or_branch (String)

      Commit SHA or branch name from which to start the list

Returns:

  • (Array<Sawyer::Resource>)

    An array of hashes representing commits

See Also:



75
76
77
78
79
80
81
82
83
84
85
# File 'lib/octokit/client/commits.rb', line 75

def commits_before(*args)
  arguments = Octokit::RepoArguments.new(args)
  date   = parse_date(arguments.shift)
  params = arguments.options
  params.merge!(:until => iso8601(date))
  sha_or_branch = arguments.pop
  if sha_or_branch
    params[:sha] = sha_or_branch
  end
  commits(arguments.repo, params)
end

#commits_between(repo, start_date, end_date, options = {}) ⇒ Array<Sawyer::Resource> #commits_between(repo, start_date, end_date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>

Get commits made between two nominated dates

Examples:

Octokit.commits_between('octokit/octokit.rb', '2012-10-01', '2012-11-01')

Overloads:

  • #commits_between(repo, start_date, end_date, options = {}) ⇒ Array<Sawyer::Resource>

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • start_date (String)

      Start Date on which we want to compare

    • end_date (String)

      End Date on which we want to compare

  • #commits_between(repo, start_date, end_date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>
    Deprecated.

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • start_date (String)

      Start Date on which we want to compare

    • end_date (String)

      End Date on which we want to compare

    • sha_or_branch (String)

      Commit SHA or branch name from which to start the list

Returns:

  • (Array<Sawyer::Resource>)

    An array of hashes representing commits

Raises:

  • (ArgumentError)

See Also:



130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/octokit/client/commits.rb', line 130

def commits_between(*args)
  arguments = Octokit::RepoArguments.new(args)
  date       = parse_date(arguments.shift)
  end_date   = parse_date(arguments.shift)
  raise ArgumentError, "Start date #{date} does not precede #{end_date}" if date > end_date

  params = arguments.options
  params.merge!(:since => iso8601(date), :until => iso8601(end_date))
  sha_or_branch = arguments.pop
  if sha_or_branch
    params[:sha] = sha_or_branch
  end
  commits(arguments.repo, params)
end

#commits_on(repo, date, options = {}) ⇒ Array<Sawyer::Resource> #commits_on(repo, date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>

Get commits on a specified date

Examples:

Octokit.commits_on('octokit/octokit.rb', '2012-10-01')

Overloads:

  • #commits_on(repo, date, options = {}) ⇒ Array<Sawyer::Resource>

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • date (String)

      Date on which we want to compare

  • #commits_on(repo, date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>
    Deprecated.

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • date (String)

      Date on which we want to compare

    • sha_or_branch (String)

      Commit SHA or branch name from which to start the list

Returns:

  • (Array<Sawyer::Resource>)

    An array of hashes representing commits

See Also:



101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/octokit/client/commits.rb', line 101

def commits_on(*args)
  arguments = Octokit::RepoArguments.new(args)
  date   = parse_date(arguments.shift)
  params = arguments.options
  end_date = date + 1
  params.merge!(:since => iso8601(date), :until => iso8601(end_date))
  sha_or_branch = arguments.pop
  if sha_or_branch
    params[:sha] = sha_or_branch
  end
  commits(arguments.repo, params)
end

#commits_since(repo, date, options = {}) ⇒ Array<Sawyer::Resource> #commits_since(repo, date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>

Get commits after a specified date

Examples:

Octokit.commits_since('octokit/octokit.rb', '2012-10-01')

Overloads:

  • #commits_since(repo, date, options = {}) ⇒ Array<Sawyer::Resource>

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • date (String)

      Date on which we want to compare

    • options (String) (defaults to: {})

      :sha Commit SHA or branch name from which to start the list

  • #commits_since(repo, date, sha_or_branch, options = {}) ⇒ Array<Sawyer::Resource>
    Deprecated.

    Parameters:

    • repo (Integer, String, Hash, Repository)

      A GitHub repository

    • date (String)

      Date on which we want to compare

    • sha_or_branch (String)

      A commit SHA or branch name

    • options (String) (defaults to: {})

      :sha Commit SHA or branch name from which to start the list

Returns:

  • (Array<Sawyer::Resource>)

    An array of hashes representing commits

See Also:



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/octokit/client/commits.rb', line 49

def commits_since(*args)
  arguments = Octokit::RepoArguments.new(args)
  date   = parse_date(arguments.shift)
  params = arguments.options
  params.merge!(:since => iso8601(date))
  sha_or_branch = arguments.pop
  if sha_or_branch
    params[:sha] = sha_or_branch
  end
  commits(arguments.repo, params)
end

#compare(repo, start, endd, options = {}) ⇒ Sawyer::Resource

Compare two commits

Parameters:

  • repo (Integer, String, Hash, Repository)

    A GitHub repository

  • start (String)

    The sha of the starting commit

  • endd (String)

    The sha of the ending commit

Returns:

  • (Sawyer::Resource)

    A hash representing the comparison

See Also:



197
198
199
# File 'lib/octokit/client/commits.rb', line 197

def compare(repo, start, endd, options = {})
  get "#{Repository.path repo}/compare/#{start}...#{endd}", options
end

#create_commit(repo, message, tree, parents = nil, options = {}) ⇒ Sawyer::Resource

Create a commit

Optionally pass author and committer hashes in options if you'd like manual control over those parameters. If absent, details will be inferred from the authenticated user. See GitHub's documentation for details about how to format committer identities.

Examples:

Create a commit

commit = Octokit.create_commit("octocat/Hello-World", "My commit message", "827efc6d56897b048c772eb4087f854f46256132", "7d1b31e74ee336d15cbd21741bc88a537ed063a0")
commit.sha # => "7638417db6d59f3c431d3e1f261cc637155684cd"
commit.tree.sha # => "827efc6d56897b048c772eb4087f854f46256132"
commit.message # => "My commit message"
commit.committer # => { "name" => "Wynn Netherland", "email" => "wynn@github.com", ... }

Parameters:

  • repo (Integer, String, Hash, Repository)

    A GitHub repository

  • message (String)

    The commit message

  • tree (String)

    The SHA of the tree object the new commit will point to

  • parents (String, Array) (defaults to: nil)

    One SHA (for a normal commit) or an array of SHAs (for a merge) of the new commit's parent commits. If ommitted or empty, a root commit will be created

Returns:

  • (Sawyer::Resource)

    A hash representing the new commit

See Also:



184
185
186
187
188
# File 'lib/octokit/client/commits.rb', line 184

def create_commit(repo, message, tree, parents=nil, options = {})
  params = { :message => message, :tree => tree }
  params[:parents] = [parents].flatten if parents
  post "#{Repository.path repo}/git/commits", options.merge(params)
end

#git_commit(repo, sha, options = {}) ⇒ Sawyer::Resource

Get a detailed git commit

Parameters:

  • repo (Integer, String, Hash, Repository)

    A GitHub repository

  • sha (String)

    The SHA of the commit to fetch

Returns:

  • (Sawyer::Resource)

    A hash representing the commit

See Also:



161
162
163
# File 'lib/octokit/client/commits.rb', line 161

def git_commit(repo, sha, options = {})
  get "#{Repository.path repo}/git/commits/#{sha}", options
end

#merge(repo, base, head, options = {}) ⇒ Sawyer::Resource

Merge a branch or sha

Parameters:

  • repo (Integer, String, Hash, Repository)

    A GitHub repository

  • base (String)

    The name of the base branch to merge into

  • head (String)

    The branch or SHA1 to merge

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :commit_message (String)

    The commit message for the merge

Returns:

  • (Sawyer::Resource)

    A hash representing the comparison

See Also:



209
210
211
212
213
214
215
# File 'lib/octokit/client/commits.rb', line 209

def merge(repo, base, head, options = {})
  params = {
    :base => base,
    :head => head
  }.merge(options)
  post "#{Repository.path repo}/merges", params
end