Skip to content

Commit bcb1ad8

Browse files
committed
Merge pull request #41 from neilbartley/pull_requests
Added call to API 2.0 for pull requests
2 parents 2608428 + 7f68f2d commit bcb1ad8

File tree

2 files changed

+51
-2
lines changed

2 files changed

+51
-2
lines changed

lib/bitbucket_rest_api/repos.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ class Repos < API
1212
:Following => 'following',
1313
:Sources => 'sources',
1414
:Forks => 'forks',
15-
:Commits =>'commits',
16-
:Download=>'download'
15+
:Commits =>'commits',
16+
:Download=>'download',
17+
:PullRequest => 'pull_request'
1718

1819
DEFAULT_REPO_OPTIONS = {
1920
"website" => "",
@@ -75,6 +76,12 @@ def commits
7576
def download
7677
@services ||=ApiFactory.new "Repos::Download"
7778
end
79+
80+
# Access to Repos::PullRequests API
81+
def pull_request
82+
@pull_request ||= ApiFactory.new 'Repos::PullRequest'
83+
end
84+
7885
# List branches
7986
#
8087
# = Examples
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# encoding: utf-8
2+
3+
module BitBucket
4+
class Repos::PullRequest < API
5+
6+
# List pull requests
7+
#
8+
# = Examples
9+
# bitbucket = BitBucket.new
10+
# bitbucket.repos.pull_request.list 'user-name', 'repo-name'
11+
# bitbucket.repos.pull_request.list 'user-name', 'repo-name' { |status| ... }
12+
#
13+
def list(user_name, repo_name, params={})
14+
_update_user_repo_params(user_name, repo_name)
15+
_validate_user_repo_params(user, repo) unless user? && repo?
16+
normalize! params
17+
18+
response = get_request("/2.0/repositories/#{user}/#{repo.downcase}/pullrequests", params)
19+
return response unless block_given?
20+
response.each { |el| yield el }
21+
end
22+
alias :all :list
23+
24+
# List pull request participants
25+
#
26+
# = Examples
27+
# bitbucket = BitBucket.new
28+
# bitbucket.repos.pull_request.list 'user-name', 'repo-name'
29+
# bitbucket.repos.pull_request.list 'user-name', 'repo-name' { |status| ... }
30+
#
31+
def participants(user_name, repo_name, pull_request_id, params={})
32+
_update_user_repo_params(user_name, repo_name)
33+
_validate_user_repo_params(user, repo) unless user? && repo?
34+
normalize! params
35+
36+
response = get_request("/1.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/participants", params)
37+
return response unless block_given?
38+
response.each { |el| yield el }
39+
end
40+
41+
end # Repos::Keys
42+
end # BitBucket

0 commit comments

Comments
 (0)