reenhanced_bitbucket_api 0.1.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/bitbucket_rest_api/api/arguments.rb +248 -0
- data/lib/bitbucket_rest_api/api/config/property.rb +30 -0
- data/lib/bitbucket_rest_api/api/config/property_set.rb +118 -0
- data/lib/bitbucket_rest_api/api/config.rb +107 -0
- data/lib/bitbucket_rest_api/api/factory.rb +29 -0
- data/lib/bitbucket_rest_api/api.rb +155 -33
- data/lib/bitbucket_rest_api/{invitations.rb → client/invitations.rb} +4 -3
- data/lib/bitbucket_rest_api/{issues → client/issues}/comments.rb +2 -11
- data/lib/bitbucket_rest_api/{issues → client/issues}/components.rb +3 -6
- data/lib/bitbucket_rest_api/{issues → client/issues}/milestones.rb +3 -7
- data/lib/bitbucket_rest_api/{issues.rb → client/issues.rb} +9 -25
- data/lib/bitbucket_rest_api/{repos → client/repos}/changesets.rb +3 -2
- data/lib/bitbucket_rest_api/{repos → client/repos}/following.rb +2 -1
- data/lib/bitbucket_rest_api/{repos → client/repos}/keys.rb +2 -1
- data/lib/bitbucket_rest_api/client/repos/pull_requests/activity.rb +22 -0
- data/lib/bitbucket_rest_api/client/repos/pull_requests/comments.rb +40 -0
- data/lib/bitbucket_rest_api/client/repos/pull_requests/commits.rb +24 -0
- data/lib/bitbucket_rest_api/client/repos/pull_requests.rb +205 -0
- data/lib/bitbucket_rest_api/{repos → client/repos}/services.rb +2 -1
- data/lib/bitbucket_rest_api/{repos → client/repos}/sources.rb +2 -1
- data/lib/bitbucket_rest_api/{repos.rb → client/repos.rb} +26 -40
- data/lib/bitbucket_rest_api/{user.rb → client/user.rb} +2 -7
- data/lib/bitbucket_rest_api/{users → client/users}/account.rb +2 -1
- data/lib/bitbucket_rest_api/client/users.rb +14 -0
- data/lib/bitbucket_rest_api/client.rb +28 -32
- data/lib/bitbucket_rest_api/configuration.rb +24 -67
- data/lib/bitbucket_rest_api/connection.rb +15 -50
- data/lib/bitbucket_rest_api/constants.rb +1 -9
- data/lib/bitbucket_rest_api/core_ext/array.rb +1 -1
- data/lib/bitbucket_rest_api/error/invalid_options.rb +1 -1
- data/lib/bitbucket_rest_api/error/required_params.rb +1 -1
- data/lib/bitbucket_rest_api/error/unknown_value.rb +1 -1
- data/lib/bitbucket_rest_api/ext/faraday.rb +38 -0
- data/lib/bitbucket_rest_api/middleware.rb +31 -0
- data/lib/bitbucket_rest_api/null_encoder.rb +25 -0
- data/lib/bitbucket_rest_api/page_iterator.rb +90 -0
- data/lib/bitbucket_rest_api/page_links.rb +33 -0
- data/lib/bitbucket_rest_api/paged_request.rb +29 -0
- data/lib/bitbucket_rest_api/pagination.rb +98 -0
- data/lib/bitbucket_rest_api/parameter_filter.rb +1 -1
- data/lib/bitbucket_rest_api/params_hash.rb +100 -0
- data/lib/bitbucket_rest_api/request/basic_auth.rb +4 -2
- data/lib/bitbucket_rest_api/request/jsonize.rb +5 -0
- data/lib/bitbucket_rest_api/request/oauth.rb +3 -3
- data/lib/bitbucket_rest_api/request/verbs.rb +53 -0
- data/lib/bitbucket_rest_api/request.rb +60 -36
- data/lib/bitbucket_rest_api/response/header.rb +68 -0
- data/lib/bitbucket_rest_api/response_wrapper.rb +157 -0
- data/lib/bitbucket_rest_api/result.rb +5 -77
- data/lib/bitbucket_rest_api/users.rb +4 -8
- data/lib/bitbucket_rest_api/validations/presence.rb +16 -11
- data/lib/bitbucket_rest_api/validations.rb +6 -6
- data/lib/bitbucket_rest_api/version.rb +2 -2
- data/lib/bitbucket_rest_api.rb +89 -44
- metadata +39 -131
- data/lib/bitbucket_rest_api/api_factory.rb +0 -30
@@ -1,36 +1,43 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'bitbucket_rest_api/configuration'
|
4
|
-
require 'bitbucket_rest_api/connection'
|
5
|
-
require 'bitbucket_rest_api/validations'
|
6
|
-
require 'bitbucket_rest_api/request'
|
7
4
|
require 'bitbucket_rest_api/core_ext/hash'
|
8
5
|
require 'bitbucket_rest_api/core_ext/array'
|
9
6
|
require 'bitbucket_rest_api/compatibility'
|
7
|
+
require 'bitbucket_rest_api/null_encoder'
|
8
|
+
|
9
|
+
require 'bitbucket_rest_api/request/verbs'
|
10
|
+
|
10
11
|
require 'bitbucket_rest_api/api/actions'
|
11
|
-
require 'bitbucket_rest_api/
|
12
|
+
require 'bitbucket_rest_api/api/factory'
|
13
|
+
require 'bitbucket_rest_api/api/arguments'
|
12
14
|
|
13
15
|
module BitBucket
|
14
16
|
class API
|
17
|
+
extend BitBucket::ClassMethods
|
18
|
+
include Constants
|
15
19
|
include Authorization
|
16
|
-
include
|
17
|
-
include Request
|
20
|
+
include Request::Verbs
|
18
21
|
|
19
22
|
# TODO consider these optional in a stack
|
20
23
|
include Validations
|
21
24
|
include ParameterFilter
|
22
25
|
include Normalizer
|
23
26
|
|
24
|
-
|
27
|
+
@version = '1.0'
|
28
|
+
|
29
|
+
attr_reader *BitBucket.configuration.property_names
|
25
30
|
|
26
|
-
attr_accessor *VALID_API_KEYS
|
31
|
+
attr_accessor *Validations::VALID_API_KEYS
|
32
|
+
|
33
|
+
attr_accessor :current_options
|
27
34
|
|
28
35
|
# Callback to update global configuration options
|
29
36
|
class_eval do
|
30
|
-
|
37
|
+
BitBucket.configuration.property_names.each do |key|
|
31
38
|
define_method "#{key}=" do |arg|
|
32
39
|
self.instance_variable_set("@#{key}", arg)
|
33
|
-
|
40
|
+
self.current_options.merge!({:"#{key}" => arg})
|
34
41
|
end
|
35
42
|
end
|
36
43
|
end
|
@@ -38,15 +45,22 @@ module BitBucket
|
|
38
45
|
# Creates new API
|
39
46
|
def initialize(options={}, &block)
|
40
47
|
super()
|
41
|
-
setup
|
42
|
-
|
48
|
+
setup(options)
|
49
|
+
yield_or_eval(&block) if block_given?
|
50
|
+
end
|
43
51
|
|
44
|
-
|
52
|
+
def yield_or_eval(&block)
|
53
|
+
return unless block
|
54
|
+
block.arity > 0 ? yield(self) : self.instance_eval(&block)
|
45
55
|
end
|
46
56
|
|
47
57
|
def setup(options={})
|
48
|
-
options = BitBucket.
|
49
|
-
|
58
|
+
options = BitBucket.configuration.fetch.merge(options)
|
59
|
+
self.current_options = options
|
60
|
+
if self.class.instance_variable_get('@version') == '2.0'
|
61
|
+
options[:endpoint] = BitBucket.endpoint.gsub(/\/api\/[0-9.]+/, "/api/2.0")
|
62
|
+
end
|
63
|
+
BitBucket.configuration.property_names.each do |key|
|
50
64
|
send("#{key}=", options[key])
|
51
65
|
end
|
52
66
|
process_basic_auth(options[:basic_auth])
|
@@ -80,6 +94,99 @@ module BitBucket
|
|
80
94
|
end
|
81
95
|
end
|
82
96
|
|
97
|
+
# Acts as setter and getter for api requests arguments parsing.
|
98
|
+
#
|
99
|
+
# Returns Arguments instance.
|
100
|
+
#
|
101
|
+
def arguments(args=(not_set = true), options={}, &block)
|
102
|
+
if not_set
|
103
|
+
@arguments
|
104
|
+
else
|
105
|
+
@arguments = Arguments.new(options.merge!(api: self)).parse(*args, &block)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# Scope for passing request required arguments.
|
110
|
+
#
|
111
|
+
def with(args)
|
112
|
+
case args
|
113
|
+
when Hash
|
114
|
+
set args
|
115
|
+
when /.*\/.*/i
|
116
|
+
user, repo = args.split('/')
|
117
|
+
set :user => user, :repo => repo
|
118
|
+
else
|
119
|
+
::Kernel.raise ArgumentError, 'This api does not support passed in arguments'
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# Set a configuration option for a given namespace
|
124
|
+
#
|
125
|
+
# @param [String] option
|
126
|
+
# @param [Object] value
|
127
|
+
# @param [Boolean] ignore_setter
|
128
|
+
#
|
129
|
+
# @return [self]
|
130
|
+
#
|
131
|
+
# @api public
|
132
|
+
def set(option, value=(not_set=true), ignore_setter=false, &block)
|
133
|
+
raise ArgumentError, 'value not set' if block and !not_set
|
134
|
+
return self if !not_set and value.nil?
|
135
|
+
|
136
|
+
if not_set
|
137
|
+
set_options option
|
138
|
+
return self
|
139
|
+
end
|
140
|
+
|
141
|
+
if respond_to?("#{option}=") and not ignore_setter
|
142
|
+
return __send__("#{option}=", value)
|
143
|
+
end
|
144
|
+
|
145
|
+
define_accessors option, value
|
146
|
+
self
|
147
|
+
end
|
148
|
+
|
149
|
+
# Defines a namespace
|
150
|
+
#
|
151
|
+
# @param [Array[Symbol]] names
|
152
|
+
# the name for the scope
|
153
|
+
#
|
154
|
+
# @return [self]
|
155
|
+
#
|
156
|
+
# @api public
|
157
|
+
def self.namespace(*names)
|
158
|
+
options = names.last.is_a?(Hash) ? names.pop : {}
|
159
|
+
names = names.map(&:to_sym)
|
160
|
+
name = names.pop
|
161
|
+
return if public_method_defined?(name)
|
162
|
+
|
163
|
+
class_name = extract_class_name(name, options)
|
164
|
+
define_method(name) do |*args, &block|
|
165
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
166
|
+
API::Factory.new(class_name, current_options.merge(options), &block)
|
167
|
+
end
|
168
|
+
self
|
169
|
+
end
|
170
|
+
|
171
|
+
# Extracts class name from options
|
172
|
+
#
|
173
|
+
# @param [Hash] options
|
174
|
+
# @option options [String] :full_name
|
175
|
+
# the full name for the class
|
176
|
+
# @option options [Boolean] :root
|
177
|
+
# if the class is at the root or not
|
178
|
+
#
|
179
|
+
# @return [String]
|
180
|
+
#
|
181
|
+
# @api private
|
182
|
+
def self.extract_class_name(name, options)
|
183
|
+
converted = options.fetch(:full_name, name).to_s
|
184
|
+
converted = converted.split('_').map(&:capitalize).join
|
185
|
+
class_name = options.fetch(:root, false) ? '': "#{self.name}::"
|
186
|
+
class_name += converted
|
187
|
+
class_name
|
188
|
+
end
|
189
|
+
|
83
190
|
def _update_user_repo_params(user_name, repo_name=nil) # :nodoc:
|
84
191
|
self.user = user_name || self.user
|
85
192
|
self.repo = repo_name || self.repo
|
@@ -93,27 +200,42 @@ module BitBucket
|
|
93
200
|
{ 'user' => self.user, 'repo' => self.repo }.merge!(params)
|
94
201
|
end
|
95
202
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
when Array
|
106
|
-
val.each do |item|
|
107
|
-
_hash_traverse(item, &block)
|
108
|
-
end
|
109
|
-
end
|
203
|
+
|
204
|
+
private
|
205
|
+
|
206
|
+
# Set multiple options
|
207
|
+
#
|
208
|
+
# @api private
|
209
|
+
def set_options(options)
|
210
|
+
unless options.respond_to?(:each)
|
211
|
+
raise ArgumentError, 'cannot iterate over value'
|
110
212
|
end
|
111
|
-
|
213
|
+
options.each { |key, value| set(key, value) }
|
214
|
+
end
|
215
|
+
|
216
|
+
# Define setters and getters
|
217
|
+
#
|
218
|
+
# @api private
|
219
|
+
def define_accessors(option, value)
|
220
|
+
setter = proc { |val| set option, val, true }
|
221
|
+
getter = proc { value }
|
222
|
+
|
223
|
+
define_singleton_method("#{option}=", setter) if setter
|
224
|
+
define_singleton_method(option, getter) if getter
|
112
225
|
end
|
113
226
|
|
114
|
-
|
115
|
-
|
116
|
-
|
227
|
+
# Dynamically define a method for setting request option
|
228
|
+
#
|
229
|
+
# @api private
|
230
|
+
def define_singleton_method(method_name, content=Proc.new)
|
231
|
+
(class << self; self; end).class_eval do
|
232
|
+
undef_method(method_name) if method_defined?(method_name)
|
233
|
+
if String === content
|
234
|
+
class_eval("def #{method_name}() #{content}; end")
|
235
|
+
else
|
236
|
+
define_method(method_name, &content)
|
237
|
+
end
|
238
|
+
end
|
117
239
|
end
|
118
240
|
|
119
241
|
end # API
|
@@ -1,15 +1,16 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module BitBucket
|
4
|
-
class Invitations < API
|
4
|
+
class Client::Invitations < API
|
5
|
+
@version = '1.0'
|
6
|
+
|
5
7
|
def invite(user_name, repo_name, emailaddress, perm)
|
6
8
|
_update_user_repo_params(user_name, repo_name)
|
7
9
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
8
10
|
_validate_presence_of emailaddress
|
9
11
|
perm ||= "write"
|
10
12
|
|
11
|
-
post_request("/invitations/#{user}/#{repo.downcase}/#{emailaddress}",
|
12
|
-
permission: perm)
|
13
|
+
post_request("/invitations/#{user}/#{repo.downcase}/#{emailaddress}", permission: perm)
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
@@ -1,17 +1,13 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module BitBucket
|
4
|
-
class Issues::Comments < API
|
4
|
+
class Client::Issues::Comments < API
|
5
|
+
@version = '1.0'
|
5
6
|
|
6
7
|
VALID_ISSUE_COMMENT_PARAM_NAME = %w[
|
7
8
|
content
|
8
9
|
].freeze
|
9
10
|
|
10
|
-
# Creates new Issues::Comments API
|
11
|
-
def initialize(options = {})
|
12
|
-
super(options)
|
13
|
-
end
|
14
|
-
|
15
11
|
# List comments on an issue
|
16
12
|
#
|
17
13
|
# = Examples
|
@@ -25,7 +21,6 @@ module BitBucket
|
|
25
21
|
_validate_presence_of issue_id
|
26
22
|
|
27
23
|
normalize! params
|
28
|
-
# _merge_mime_type(:issue_comment, params)
|
29
24
|
|
30
25
|
response = get_request("/repositories/#{user}/#{repo.downcase}/issues/#{issue_id}/comments/", params)
|
31
26
|
return response unless block_given?
|
@@ -45,7 +40,6 @@ module BitBucket
|
|
45
40
|
_validate_presence_of comment_id
|
46
41
|
|
47
42
|
normalize! params
|
48
|
-
# _merge_mime_type(:issue_comment, params)
|
49
43
|
|
50
44
|
get_request("/repositories/#{user}/#{repo.downcase}/issues/comments/#{comment_id}", params)
|
51
45
|
end
|
@@ -67,7 +61,6 @@ module BitBucket
|
|
67
61
|
_validate_presence_of issue_id
|
68
62
|
|
69
63
|
normalize! params
|
70
|
-
# _merge_mime_type(:issue_comment, params)
|
71
64
|
filter! VALID_ISSUE_COMMENT_PARAM_NAME, params
|
72
65
|
assert_required_keys(%w[ content ], params)
|
73
66
|
|
@@ -90,7 +83,6 @@ module BitBucket
|
|
90
83
|
_validate_presence_of comment_id
|
91
84
|
|
92
85
|
normalize! params
|
93
|
-
# _merge_mime_type(:issue_comment, params)
|
94
86
|
filter! VALID_ISSUE_COMMENT_PARAM_NAME, params
|
95
87
|
assert_required_keys(%w[ content ], params)
|
96
88
|
|
@@ -109,7 +101,6 @@ module BitBucket
|
|
109
101
|
_validate_presence_of comment_id
|
110
102
|
|
111
103
|
normalize! params
|
112
|
-
# _merge_mime_type(:issue_comment, params)
|
113
104
|
|
114
105
|
delete_request("/repositories/#{user}/#{repo.downcase}/issues/comments/#{comment_id}", params)
|
115
106
|
end
|
@@ -1,14 +1,11 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module BitBucket
|
4
|
-
class Issues::Components < API
|
4
|
+
class Client::Issues::Components < API
|
5
|
+
@version = '1.0'
|
5
6
|
|
6
7
|
VALID_COMPONENT_INPUTS = %w[ name ].freeze
|
7
8
|
|
8
|
-
# Creates new Issues::Components API
|
9
|
-
def initialize(options = {})
|
10
|
-
super(options)
|
11
|
-
end
|
12
9
|
# List all components for a repository
|
13
10
|
#
|
14
11
|
# = Examples
|
@@ -103,4 +100,4 @@ module BitBucket
|
|
103
100
|
end
|
104
101
|
|
105
102
|
end # Issues::Components
|
106
|
-
end # BitBucket
|
103
|
+
end # BitBucket
|
@@ -1,17 +1,13 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module BitBucket
|
4
|
-
class Issues::Milestones < API
|
4
|
+
class Client::Issues::Milestones < API
|
5
|
+
@version = '1.0'
|
5
6
|
|
6
7
|
VALID_MILESTONE_INPUTS = %w[
|
7
8
|
name
|
8
9
|
].freeze # :nodoc:
|
9
10
|
|
10
|
-
# Creates new Issues::Milestones API
|
11
|
-
def initialize(options = {})
|
12
|
-
super(options)
|
13
|
-
end
|
14
|
-
|
15
11
|
# List milestones for a repository
|
16
12
|
#
|
17
13
|
# = Examples
|
@@ -104,4 +100,4 @@ module BitBucket
|
|
104
100
|
end
|
105
101
|
|
106
102
|
end # Issues::Milestones
|
107
|
-
end # BitBucket
|
103
|
+
end # BitBucket
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module BitBucket
|
4
|
-
class Issues < API
|
5
|
-
|
4
|
+
class Client::Issues < API
|
5
|
+
@version = '1.0'
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
require_all 'bitbucket_rest_api/client/issues',
|
8
|
+
'comments',
|
9
|
+
'components',
|
10
|
+
'milestones'
|
11
11
|
|
12
12
|
VALID_ISSUE_PARAM_NAMES = %w[
|
13
13
|
title
|
@@ -32,25 +32,14 @@ module BitBucket
|
|
32
32
|
'kind' => %w[ bug enhancement proposal task ]
|
33
33
|
}
|
34
34
|
|
35
|
-
# Creates new Issues API
|
36
|
-
def initialize(options = { })
|
37
|
-
super(options)
|
38
|
-
end
|
39
|
-
|
40
35
|
# Access to Issues::Comments API
|
41
|
-
|
42
|
-
@comments ||= ApiFactory.new 'Issues::Comments'
|
43
|
-
end
|
36
|
+
namespace :comments
|
44
37
|
|
45
38
|
# Access to Issues::Components API
|
46
|
-
|
47
|
-
@components ||= ApiFactory.new 'Issues::Components'
|
48
|
-
end
|
39
|
+
namespace :components
|
49
40
|
|
50
41
|
# Access to Issues::Milestones API
|
51
|
-
|
52
|
-
@milestones ||= ApiFactory.new 'Issues::Milestones'
|
53
|
-
end
|
42
|
+
namespace :milestones
|
54
43
|
|
55
44
|
# List issues for a repository
|
56
45
|
#
|
@@ -79,7 +68,6 @@ module BitBucket
|
|
79
68
|
|
80
69
|
normalize! params
|
81
70
|
filter! VALID_ISSUE_PARAM_NAMES, params
|
82
|
-
# _merge_mime_type(:issue, params)
|
83
71
|
assert_valid_values(VALID_ISSUE_PARAM_VALUES, params)
|
84
72
|
|
85
73
|
response = get_request("/repositories/#{user}/#{repo.downcase}/issues", params)
|
@@ -101,7 +89,6 @@ module BitBucket
|
|
101
89
|
_validate_presence_of issue_id
|
102
90
|
|
103
91
|
normalize! params
|
104
|
-
# _merge_mime_type(:issue, params)
|
105
92
|
|
106
93
|
get_request("/repositories/#{user}/#{repo.downcase}/issues/#{issue_id}", params)
|
107
94
|
end
|
@@ -120,7 +107,6 @@ module BitBucket
|
|
120
107
|
_validate_presence_of issue_id
|
121
108
|
|
122
109
|
normalize! params
|
123
|
-
# _merge_mime_type(:issue, params)
|
124
110
|
|
125
111
|
delete_request("/repositories/#{user}/#{repo}/issues/#{issue_id}", params)
|
126
112
|
end
|
@@ -169,7 +155,6 @@ module BitBucket
|
|
169
155
|
|
170
156
|
normalize! params
|
171
157
|
_merge_user_into_params!(params) unless params.has_key?('user')
|
172
|
-
# _merge_mime_type(:issue, params)
|
173
158
|
filter! VALID_ISSUE_PARAM_NAMES, params
|
174
159
|
assert_required_keys(%w[ title ], params)
|
175
160
|
|
@@ -220,7 +205,6 @@ module BitBucket
|
|
220
205
|
_validate_presence_of issue_id
|
221
206
|
|
222
207
|
normalize! params
|
223
|
-
# _merge_mime_type(:issue, params)
|
224
208
|
filter! VALID_ISSUE_PARAM_NAMES, params
|
225
209
|
|
226
210
|
put_request("/repositories/#{user}/#{repo.downcase}/issues/#{issue_id}/", params)
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module BitBucket
|
4
|
-
class Repos::Changesets < API
|
4
|
+
class Client::Repos::Changesets < API
|
5
|
+
@version = '1.0'
|
5
6
|
|
6
7
|
REQUIRED_COMMENT_PARAMS = %w[
|
7
8
|
body
|
@@ -51,4 +52,4 @@ module BitBucket
|
|
51
52
|
alias :find :get
|
52
53
|
|
53
54
|
end # Repos::Commits
|
54
|
-
end # BitBucket
|
55
|
+
end # BitBucket
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
class Client::Repos::PullRequests::Activity < API
|
5
|
+
@version = '2.0'
|
6
|
+
|
7
|
+
# Get the activity for a pull request
|
8
|
+
#
|
9
|
+
# = Examples
|
10
|
+
# bitbucket = BitBucket.new
|
11
|
+
# bitbucket.repos.pull_requests.activity 'user-name', 'repo-name', 'pull-request-id'
|
12
|
+
#
|
13
|
+
def list(user_name, repo_name, pull_request_id)
|
14
|
+
_update_user_repo_params(user_name, repo_name)
|
15
|
+
_validate_user_repo_params(user, repo) unless user? && repo?
|
16
|
+
_validate_presence_of pull_request_id
|
17
|
+
|
18
|
+
get_request("/repositories/#{user}/#{repo}/pullrequests/#{pull_request_id}/activity")
|
19
|
+
end
|
20
|
+
alias :all :list
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
class Client::Repos::PullRequests::Comments < API
|
5
|
+
@version = '2.0'
|
6
|
+
|
7
|
+
# List comments on a pull request
|
8
|
+
#
|
9
|
+
# = Examples
|
10
|
+
# bitbucket = BitBucket.new
|
11
|
+
# bitbucket.repos.pull_requests.comments.all 'user-name', 'repo-name', 'pull-request-id'
|
12
|
+
#
|
13
|
+
def list(user_name, repo_name, pull_request_id)
|
14
|
+
_update_user_repo_params(user_name, repo_name)
|
15
|
+
_validate_user_repo_params(user, repo) unless user? && repo?
|
16
|
+
_validate_presence_of pull_request_id
|
17
|
+
|
18
|
+
response = get_request("/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/comments")
|
19
|
+
return response unless block_given?
|
20
|
+
response.each { |el| yield el }
|
21
|
+
end
|
22
|
+
alias :all :list
|
23
|
+
|
24
|
+
# Gets a single comment
|
25
|
+
#
|
26
|
+
# = Examples
|
27
|
+
# @bitbucket = BitBucket.new
|
28
|
+
# @bitbucket.repos.pull_requests.comments.get 'user-name', 'repo-name', 'pull-request-id')
|
29
|
+
#
|
30
|
+
def get(user_name, repo_name, pull_request_id, comment_id)
|
31
|
+
_update_user_repo_params(user_name, repo_name)
|
32
|
+
_validate_user_repo_params(user, repo) unless user? && repo?
|
33
|
+
_validate_presence_of pull_request_id
|
34
|
+
_validate_presence_of comment_id
|
35
|
+
|
36
|
+
get_request("/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/comments/#{comment_id}")
|
37
|
+
end
|
38
|
+
alias :find :get
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
class Client::Repos::PullRequests::Commits < API
|
5
|
+
@version = '2.0'
|
6
|
+
|
7
|
+
# List commits on a pull request
|
8
|
+
#
|
9
|
+
# = Examples
|
10
|
+
# bitbucket = BitBucket.new
|
11
|
+
# bitbucket.repos.pull_requests.commits.all 'user-name', 'repo-name', 'pull-request-id'
|
12
|
+
#
|
13
|
+
def list(user_name, repo_name, pull_request_id)
|
14
|
+
_update_user_repo_params(user_name, repo_name)
|
15
|
+
_validate_user_repo_params(user, repo) unless user? && repo?
|
16
|
+
_validate_presence_of pull_request_id
|
17
|
+
|
18
|
+
response = get_request("/repositories/#{user}/#{repo.downcase}/pullrequests/#{pull_request_id}/commits")
|
19
|
+
return response unless block_given?
|
20
|
+
response.each { |el| yield el }
|
21
|
+
end
|
22
|
+
alias :all :list
|
23
|
+
end
|
24
|
+
end
|