class Github::Client::PullRequests

Public Instance Methods

all(*args)
Alias for: list
commits(*args) { |el| ... } click to toggle source

List commits on a pull request

@example

github = Github.new
github.pull_requests.commits 'user-name', 'repo-name', 'number'

@api public

# File lib/github_api/client/pull_requests.rb, line 128
def commits(*args)
  arguments(args, required: [:user, :repo, :number])

  response = get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/commits", arguments.params)
  return response unless block_given?
  response.each { |el| yield el }
end
create(*args) click to toggle source

Create a pull request

@param [Hash] params @option params [String] :title

Required string

@option params [String] :body

Optional string

@option params [String] :base

Required string - The branch you want your changes pulled into.

@option params [String] :head

Required string - The branch where your changes are implemented.

@note: head and base can be either a sha or a branch name. Typically you would namespace head with a user like this: username:branch.

Alternative Input You can also create a Pull Request from an existing Issue by passing an Issue number instead of title and body. @option params [Numeric] :issue

Required number - Issue number in this repository to turn into a Pull Request.

@example

github = Github.new oauth_token: '...'
github.pull_requests.create 'user-name', 'repo-name',
  title: "Amazing new feature",
  body: "Please pull this in!",
  head: "octocat:new-feature",
  base: "master"

@example

github.pull_requests.create 'user-name', 'repo-name',
  issue: "5",
  head: "octocat:new-feature",
  base: "master"

@api public

# File lib/github_api/client/pull_requests.rb, line 89
def create(*args)
  arguments(args, required: [:user, :repo])

  post_request("/repos/#{arguments.user}/#{arguments.repo}/pulls",
               arguments.params)
end
files(*args) { |el| ... } click to toggle source

List pull requests files

@example

github = Github.new
github.pull_requests.files 'user-name', 'repo-name', 'number'

@api public

# File lib/github_api/client/pull_requests.rb, line 143
def files(*args)
  arguments(args, required: [:user, :repo, :number])

  response = get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/files", arguments.params)
  return response unless block_given?
  response.each { |el| yield el }
end
find(*args)
Alias for: get
get(*args) click to toggle source

Get a single pull request

Examples

github = Github.new
github.pull_requests.get 'user-name', 'repo-name', 'number'

pulls = Github::PullRequests.new
pulls.get 'user-name', 'repo-name', 'number'
# File lib/github_api/client/pull_requests.rb, line 46
def get(*args)
  arguments(args, required: [:user, :repo, :number])

  get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}", arguments.params)
end
Also aliased as: find
list(*args) { |el| ... } click to toggle source

List pull requests

@example

github = Github.new user: 'user-name', repo: 'repo-name'
github.pull_requests.list
github.pull_requests.list { |req| ... }

@example

pulls = Github::PullRequests.new
pulls.pull_requests.list 'user-name', 'repo-name'

@api public

# File lib/github_api/client/pull_requests.rb, line 27
def list(*args)
  arguments(args, required: [:user, :repo])

  response = get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls",
                         arguments.params)
  return response unless block_given?
  response.each { |el| yield el }
end
Also aliased as: all
merge(*args) click to toggle source

Merge a pull request(Merge Button)

@param [Hash] params @option params [String] :commit_title

Optional string - The first line of the message that will be used for the merge commit

@option params [String] :commit_message

Optional string - The message that will be used for the merge commit

@option params [String] :sha

Optional string - The SHA that pull request head must match to allow merge

@option params [String] :merge_method

Optional string - Merge method to use.
Valid values are merge, squash, and rebase. Default is merge.

@example

github = Github.new
github.pull_requests.merge 'user-name', 'repo-name', 'number'

@api public

# File lib/github_api/client/pull_requests.rb, line 187
def merge(*args)
  arguments(args, required: [:user, :repo, :number])
  params = arguments.params
  params['accept'] ||= PREVIEW_MEDIA

  put_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/merge", params)
end
merged?(*args) click to toggle source

Check if pull request has been merged

@example

github = Github.new
github.pull_requests.merged? 'user-name', 'repo-name', 'number'

@api public

# File lib/github_api/client/pull_requests.rb, line 158
def merged?(*args)
  arguments(args, required: [:user, :repo, :number])

  get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/merge", arguments.params)
  true
rescue Github::Error::NotFound
  false
end
update(*args) click to toggle source

Update a pull request

@param [Hash] params @option params [String] :title

Optional string

@optoin params [String] :body

Optional string

@option params [String] :state

Optional string - State of this Pull Request.
Valid values are open and closed.

@example

github = Github.new oauth_token: '...'
github.pull_requests.update 'user-name', 'repo-name', 'number'
  title: "Amazing new title",
  body: "Update body",
  state: "open"

@api public

# File lib/github_api/client/pull_requests.rb, line 115
def update(*args)
  arguments(args, required: [:user, :repo, :number])

  patch_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}", arguments.params)
end