API
List commits on a pull request
github = Github.new github.pull_requests.commits 'user-name', 'repo-name', 'number'
# File lib/github_api/pull_requests.rb, line 134 def commits(*args) arguments(args, :required => [:user, :repo, :number]) response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/commits", arguments.params) return response unless block_given? response.each { |el| yield el } end
Create a pull request
:title - Required string
:body - Optional string
:base - Required string - The branch you want your changes pulled into.
: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.
You can also create a Pull Request from an existing Issue by passing an Issue number instead of title and body.
issue - Required number - Issue number in this repository to turn into a Pull Request.
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"
alternatively
github.pull_requests.create 'user-name', 'repo-name', "issue" => "5", "head" => "octocat:new-feature", "base" => "master"
# File lib/github_api/pull_requests.rb, line 97 def create(*args) arguments(args, :required => [:user, :repo]) do sift VALID_REQUEST_PARAM_NAMES end post_request("/repos/#{user}/#{repo}/pulls", arguments.params) end
List pull requests files
github = Github.new github.pull_requests.files 'user-name', 'repo-name', 'number'
# File lib/github_api/pull_requests.rb, line 149 def files(*args) arguments(args, :required => [:user, :repo, :number]) response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/files", arguments.params) return response unless block_given? response.each { |el| yield el } end
Get a single pull request
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/pull_requests.rb, line 61 def get(*args) arguments(args, :required => [:user, :repo, :number]) get_request("/repos/#{user}/#{repo}/pulls/#{number}", arguments.params) end
List pull requests
github = Github.new :user => 'user-name', :repo => 'repo-name' github.pull_requests.list github.pull_requests.list { |req| ... } pulls = Github::PullRequests.new pulls.pull_requests.list 'user-name', 'repo-name'
# File lib/github_api/pull_requests.rb, line 40 def list(*args) arguments(args, :required => [:user, :repo]) do sift VALID_REQUEST_PARAM_NAMES assert_values VALID_REQUEST_PARAM_VALUES end response = get_request("/repos/#{user}/#{repo}/pulls", arguments.params) return response unless block_given? response.each { |el| yield el } end
Merge a pull request(Merge Button)
<tt>:commit_message</tt> - Optional string - The message that will be used for the merge commit
github = Github.new github.pull_requests.merge 'user-name', 'repo-name', 'number'
# File lib/github_api/pull_requests.rb, line 183 def merge(*args) arguments(args, :required => [:user, :repo, :number]) do sift VALID_REQUEST_PARAM_NAMES end put_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", arguments.params) end
Check if pull request has been merged
github = Github.new github.pull_requests.merged? 'user-name', 'repo-name', 'number'
# File lib/github_api/pull_requests.rb, line 164 def merged?(*args) arguments(args, :required => [:user, :repo, :number]) get_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", arguments.params) true rescue Github::Error::NotFound false end
Update a pull request
:title - Optional string
:body - Optional string
:state - Optional string - State of this Pull Request. Valid values are open and closed.
github = Github.new :oauth_token => '...' github.pull_requests.update 'user-name', 'repo-name', 'number' "title" => "Amazing new title", "body" => "Update body", "state" => "open",
# File lib/github_api/pull_requests.rb, line 119 def update(*args) arguments(args, :required => [:user, :repo, :number]) do sift VALID_REQUEST_PARAM_NAMES assert_values VALID_REQUEST_PARAM_VALUES end patch_request("/repos/#{user}/#{repo}/pulls/#{number}", arguments.params) end
Generated with the Darkfish Rdoc Generator 2.
Access to PullRequests::Comments API