Module: Octokit::Client::Pulls

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

Instance Method Summary collapse

Instance Method Details

#create_pull_request(repo, base, head, title, body, options = {}) ⇒ Hashie::Mash

Create a pull request

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • base (String)

    The branch (or git ref) you want your changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repo that requests a merge to a base of another repo.

  • head (String)

    The branch (or git ref) where your changes are implemented.

  • title (String)

    Title for the pull request

  • body (String)

    The body for the pull request. Supports GFM.

Returns:

  • (Hashie::Mash)

    The newly created pull request

See Also:



41
42
43
44
45
46
47
48
49
# File 'lib/octokit/client/pulls.rb', line 41

def create_pull_request(repo, base, head, title, body, options={})
  pull = {
    :base  => base,
    :head  => head,
    :title => title,
    :body  => body,
  }
  post("repos/#{Repository.new(repo)}/pulls", options.merge(pull))
end

#create_pull_request_for_issue(repo, base, head, issue, options = {}) ⇒ Hashie::Mash

Create a pull request from existing issue

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • base (String)

    The branch (or git ref) you want your changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repo that requests a merge to a base of another repo.

  • head (String)

    The branch (or git ref) where your changes are implemented.

  • issue (Integer)

    Number of Issue on which to base this pull request

Returns:

  • (Hashie::Mash)

    The newly created pull request

See Also:



62
63
64
65
66
67
68
69
# File 'lib/octokit/client/pulls.rb', line 62

def create_pull_request_for_issue(repo, base, head, issue, options={})
  pull = {
    :base  => base,
    :head  => head,
    :issue => issue
  }
  post("repos/#{Repository.new(repo)}/pulls", options.merge(pull))
end

#merge_pull_request(repo, number, commit_message = '', options = {}) ⇒ Array<Hashie::Mash>

Merge a pull request

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • number (Integer)

    Number of pull request

  • commit_message (String) (defaults to: '')

    Optional commit message for the merge commit

Returns:

  • (Array<Hashie::Mash>)

    Merge commit info if successful

See Also:



139
140
141
# File 'lib/octokit/client/pulls.rb', line 139

def merge_pull_request(repo, number, commit_message='', options={})
  put("repos/#{Repository.new(repo)}/pulls/#{number}/merge", options.merge({:commit_message => commit_message}))
end

#pull_merged?(repo, number, options = {}) ⇒ Boolean Also known as: pull_request_merged?

Check pull request merge status

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • number (Integer)

    Number of pull request

Returns:

  • (Boolean)

    True if the pull request has been merged

See Also:



149
150
151
152
153
154
155
156
# File 'lib/octokit/client/pulls.rb', line 149

def pull_merged?(repo, number, options={})
  begin
    get("repos/#{Repository.new(repo)}/pulls/#{number}/merged", options)
    return true
  rescue Octokit::NotFound
    return false
  end
end

#pull_request(repo, number, options = {}) ⇒ Hashie::Mash Also known as: pull

Get a pull request

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • number (Integer)

    Number of the pull request to fetch

Returns:

  • (Hashie::Mash)

    Pull request info

See Also:



24
25
26
# File 'lib/octokit/client/pulls.rb', line 24

def pull_request(repo, number, options={})
  get("repos/#{Repository.new(repo)}/pulls/#{number}", options)
end

#pull_request_comments(repo, number, options = {}) ⇒ Array<Hashie::Mash> Also known as: pull_comments, review_comments

List comments on a pull request

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • number (Integer)

    Number of pull request

Returns:

  • (Array<Hashie::Mash>)

    List of comments

See Also:



114
115
116
117
# File 'lib/octokit/client/pulls.rb', line 114

def pull_request_comments(repo, number, options={})
  # return the comments for a pull request
  get("repos/#{Repository.new(repo)}/pulls/#{number}/comments", options)
end

#pull_request_commits(repo, number, options = {}) ⇒ Array<Hashie::Mash> Also known as: pull_commits

List commits on a pull request

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • number (Integer)

    Number of pull request

Returns:

  • (Array<Hashie::Mash>)

    List of commits

See Also:



103
104
105
# File 'lib/octokit/client/pulls.rb', line 103

def pull_request_commits(repo, number, options={})
  get("repos/#{Repository.new(repo)}/pulls/#{number}/commits", options)
end

#pull_request_files(repo, number, options = {}) ⇒ Array<Hashie::Mash> Also known as: pull_files

List files on a pull request

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

  • number (Integer)

    Number of pull request

Returns:

  • (Array<Hashie::Mash>)

    List of files

See Also:



127
128
129
# File 'lib/octokit/client/pulls.rb', line 127

def pull_request_files(repo, number, options={})
  get("repos/#{Repository.new(repo)}/pulls/#{number}/files", options)
end

#pull_requests(repo, state = 'open', options = {}) ⇒ Array<Hashie::Mash> Also known as: pulls

List pull requests for a repository

Examples:

Octokit.pull_requests('rails/rails')

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository

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

    Method options

Options Hash (options):

  • :state (String)

    ‘open` or `closed`. Default is `open`.

Returns:

  • (Array<Hashie::Mash>)

    Array of pulls

See Also:



13
14
15
# File 'lib/octokit/client/pulls.rb', line 13

def pull_requests(repo, state='open', options={})
  get("repos/#{Repository.new(repo)}/pulls", options.merge({:state => state}), 3)
end

#update_pull_request(repo, id, title = nil, body = nil, state = nil, options = {}) ⇒ Hashie::Mash

Update a pull request

Examples:

@client.update_pull_request('pengwynn/octokit', 67, 'new title', 'updated body', 'closed')

Passing nil for optional attributes to update specific attributes.

@client.update_pull_request('pengwynn/octokit', 67, nil, nil, 'open')

Empty body by passing empty string

@client.update_pull_request('pengwynn/octokit', 67, nil, '')

Parameters:

  • repo (String, Hash, Repository)

    A GitHub repository.

  • id (Integer)

    Id of pull request to update.

  • title (String) (defaults to: nil)

    Title for the pull request.

  • body (String) (defaults to: nil)

    Body content for pull request. Supports GFM.

  • state (String) (defaults to: nil)

    State of the pull request. ‘open` or `closed`.

Returns:

  • (Hashie::Mash)

    Hash representing updated pull request.

See Also:



86
87
88
89
90
91
92
93
94
# File 'lib/octokit/client/pulls.rb', line 86

def update_pull_request(repo, id, title=nil, body=nil, state=nil, options={})
  options.merge!({
    :title => title,
    :body => body,
    :state => state
  })
  options.reject! { |_, value| value.nil? }
  post("repos/#{Repository.new repo}/pulls/#{id}", options, 3)
end