1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
# frozen_string_literal: true
module Octokit
class Client
# Methods for the Commit Statuses API
#
# @see https://developer.github.com/v3/repos/statuses/
module Statuses
# List all statuses for a given commit
#
# @param repo [Integer, String, Repository, Hash] A GitHub repository
# @param sha [String] The SHA1 for the commit
# @return [Array<Sawyer::Resource>] A list of statuses
# @see https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref
def statuses(repo, sha, options = {})
paginate "#{Repository.path repo}/statuses/#{sha}", options
end
alias list_statuses statuses
# Get the combined status for a ref
#
# @param repo [Integer, String, Repository, Hash] a GitHub repository
# @param ref [String] A Sha or Ref to fetch the status of
# @return [Sawyer::Resource] The combined status for the commit
# @see https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref
def combined_status(repo, ref, options = {})
get "#{Repository.path repo}/commits/#{ref}/status", options
end
alias status combined_status
# Create status for a commit
#
# @param repo [Integer, String, Repository, Hash] A GitHub repository
# @param sha [String] The SHA1 for the commit
# @param state [String] The state: pending, success, failure, error
# @option options [String] :context A context to differentiate this status from others
# @option options [String] :target_url A link to more details about this status
# @option options [String] :description A short human-readable description of this status
# @return [Sawyer::Resource] A status
# @see https://developer.github.com/v3/repos/statuses/#create-a-status
def create_status(repo, sha, state, options = {})
options = options.merge(state: state)
post "#{Repository.path repo}/statuses/#{sha}", options
end
end
end
end
|