Skip to content

Commit 24f6ce6

Browse files
Alfred Oliver Willderdmgarland
authored andcommitted
Adds support for pull_request endpoint
wip POST request Remove binding.pry Add endpoint to get a particular pull request Finish implement create endpoint Implement updating pull request endpoint Implement pull requests endpoints Fix encoding Remove wip rspec tags
1 parent 26b21db commit 24f6ce6

File tree

3 files changed

+368
-12
lines changed

3 files changed

+368
-12
lines changed

lib/bitbucket_rest_api/repos/pull_request.rb

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,123 @@ def participants(user_name, repo_name, pull_request_id, params={})
3838
response.each { |el| yield el }
3939
end
4040

41+
def get(user_name, repo_name, pull_request_id, params={})
42+
_update_user_repo_params(user_name, repo_name)
43+
_validate_user_repo_params(user, repo) unless user? && repo?
44+
normalize! params
45+
46+
response = request(:get, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}", params)
47+
return response unless block_given?
48+
end
49+
50+
def create(user_name, repo_name, params={})
51+
_update_user_repo_params(user_name, repo_name)
52+
_validate_user_repo_params(user, repo) unless user? && repo?
53+
normalize! params
54+
55+
response = request(:post, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests", params)
56+
return response unless block_given?
57+
end
58+
59+
def update(user_name, repo_name, pull_request_id, params={})
60+
_update_user_repo_params(user_name, repo_name)
61+
_validate_user_repo_params(user, repo) unless user? && repo?
62+
normalize! params
63+
64+
response = request(:put, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}", params)
65+
return response unless block_given?
66+
end
67+
68+
def get_commits(user_name, repo_name, pull_request_id, params={})
69+
_update_user_repo_params(user_name, repo_name)
70+
_validate_user_repo_params(user, repo) unless user? && repo?
71+
normalize! params
72+
73+
response = request(:get, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/commits", params)
74+
return response unless block_given?
75+
end
76+
77+
def approve(user_name, repo_name, pull_request_id, params={})
78+
_update_user_repo_params(user_name, repo_name)
79+
_validate_user_repo_params(user, repo) unless user? && repo?
80+
normalize! params
81+
82+
response = request(:post, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/approve", params)
83+
return response unless block_given?
84+
end
85+
86+
def delete_approval(user_name, repo_name, pull_request_id, params={})
87+
_update_user_repo_params(user_name, repo_name)
88+
_validate_user_repo_params(user, repo) unless user? && repo?
89+
normalize! params
90+
91+
response = request(:delete, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/approve", params)
92+
return response unless block_given?
93+
end
94+
95+
def diff(user_name, repo_name, pull_request_id, params={})
96+
_update_user_repo_params(user_name, repo_name)
97+
_validate_user_repo_params(user, repo) unless user? && repo?
98+
normalize! params
99+
100+
response = request(:get, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/diff", params)
101+
return response unless block_given?
102+
end
103+
104+
105+
def all_activity(user_name, repo_name, params={})
106+
_update_user_repo_params(user_name, repo_name)
107+
_validate_user_repo_params(user, repo) unless user? && repo?
108+
normalize! params
109+
110+
response = request(:get, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/activity", params)
111+
return response unless block_given?
112+
end
113+
114+
115+
def activity(user_name, repo_name, pull_request_id, params={})
116+
_update_user_repo_params(user_name, repo_name)
117+
_validate_user_repo_params(user, repo) unless user? && repo?
118+
normalize! params
119+
120+
response = request(:get, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/activity", params)
121+
return response unless block_given?
122+
end
123+
124+
def merge(user_name, repo_name, pull_request_id, params={})
125+
_update_user_repo_params(user_name, repo_name)
126+
_validate_user_repo_params(user, repo) unless user? && repo?
127+
normalize! params
128+
129+
response = request(:post, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/merge", params)
130+
return response unless block_given?
131+
end
132+
133+
def decline(user_name, repo_name, pull_request_id, params={})
134+
_update_user_repo_params(user_name, repo_name)
135+
_validate_user_repo_params(user, repo) unless user? && repo?
136+
normalize! params
137+
138+
response = request(:post, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/decline", params)
139+
return response unless block_given?
140+
end
141+
142+
def comments(user_name, repo_name, pull_request_id, params={})
143+
_update_user_repo_params(user_name, repo_name)
144+
_validate_user_repo_params(user, repo) unless user? && repo?
145+
normalize! params
146+
147+
response = request(:get, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/comments", params)
148+
return response unless block_given?
149+
end
150+
151+
def comment(user_name, repo_name, pull_request_id, comment_id, params={})
152+
_update_user_repo_params(user_name, repo_name)
153+
_validate_user_repo_params(user, repo) unless user? && repo?
154+
normalize! params
155+
156+
response = request(:get, "/2.0/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/comments/#{comment_id}", params)
157+
return response unless block_given?
158+
end
41159
end # Repos::Keys
42160
end # BitBucket

lib/bitbucket_rest_api/request.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def delete_request(path, params={}, options={})
2828
request(:delete, path, params, options)
2929
end
3030

31-
def request(method, path, params, options)
31+
def request(method, path, params, options={})
3232
if !METHODS.include?(method)
3333
raise ArgumentError, "unkown http method: #{method}"
3434
end

0 commit comments

Comments
 (0)