bitbuckets 0.2.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 +7 -0
- data/LICENSE.txt +7 -0
- data/README.md +169 -0
- data/Rakefile +1 -0
- data/lib/bitbucket_rest_api.rb +86 -0
- data/lib/bitbucket_rest_api/api.rb +104 -0
- data/lib/bitbucket_rest_api/api/actions.rb +32 -0
- data/lib/bitbucket_rest_api/api_factory.rb +29 -0
- data/lib/bitbucket_rest_api/authorization.rb +31 -0
- data/lib/bitbucket_rest_api/client.rb +53 -0
- data/lib/bitbucket_rest_api/configuration.rb +103 -0
- data/lib/bitbucket_rest_api/connection.rb +97 -0
- data/lib/bitbucket_rest_api/constants.rb +57 -0
- data/lib/bitbucket_rest_api/core_ext/array.rb +6 -0
- data/lib/bitbucket_rest_api/core_ext/hash.rb +58 -0
- data/lib/bitbucket_rest_api/deprecation.rb +36 -0
- data/lib/bitbucket_rest_api/error.rb +37 -0
- data/lib/bitbucket_rest_api/error/bad_events.rb +10 -0
- data/lib/bitbucket_rest_api/error/bad_request.rb +11 -0
- data/lib/bitbucket_rest_api/error/blank_value.rb +10 -0
- data/lib/bitbucket_rest_api/error/client_error.rb +19 -0
- data/lib/bitbucket_rest_api/error/forbidden.rb +11 -0
- data/lib/bitbucket_rest_api/error/internal_server_error.rb +11 -0
- data/lib/bitbucket_rest_api/error/invalid_options.rb +17 -0
- data/lib/bitbucket_rest_api/error/no_events.rb +10 -0
- data/lib/bitbucket_rest_api/error/not_found.rb +11 -0
- data/lib/bitbucket_rest_api/error/required_params.rb +17 -0
- data/lib/bitbucket_rest_api/error/service_error.rb +18 -0
- data/lib/bitbucket_rest_api/error/service_unavailable.rb +11 -0
- data/lib/bitbucket_rest_api/error/unauthorized.rb +11 -0
- data/lib/bitbucket_rest_api/error/unknown_value.rb +17 -0
- data/lib/bitbucket_rest_api/error/unprocessable_entity.rb +11 -0
- data/lib/bitbucket_rest_api/error/validations.rb +17 -0
- data/lib/bitbucket_rest_api/invitations.rb +14 -0
- data/lib/bitbucket_rest_api/issues.rb +229 -0
- data/lib/bitbucket_rest_api/issues/comments.rb +116 -0
- data/lib/bitbucket_rest_api/issues/components.rb +105 -0
- data/lib/bitbucket_rest_api/issues/milestones.rb +105 -0
- data/lib/bitbucket_rest_api/normalizer.rb +24 -0
- data/lib/bitbucket_rest_api/parameter_filter.rb +29 -0
- data/lib/bitbucket_rest_api/repos.rb +276 -0
- data/lib/bitbucket_rest_api/repos/changesets.rb +52 -0
- data/lib/bitbucket_rest_api/repos/commits.rb +38 -0
- data/lib/bitbucket_rest_api/repos/components.rb +35 -0
- data/lib/bitbucket_rest_api/repos/default_reviewers.rb +60 -0
- data/lib/bitbucket_rest_api/repos/download.rb +15 -0
- data/lib/bitbucket_rest_api/repos/following.rb +38 -0
- data/lib/bitbucket_rest_api/repos/forks.rb +66 -0
- data/lib/bitbucket_rest_api/repos/keys.rb +86 -0
- data/lib/bitbucket_rest_api/repos/pull_request.rb +158 -0
- data/lib/bitbucket_rest_api/repos/services.rb +101 -0
- data/lib/bitbucket_rest_api/repos/sources.rb +36 -0
- data/lib/bitbucket_rest_api/repos/webhooks.rb +99 -0
- data/lib/bitbucket_rest_api/request.rb +71 -0
- data/lib/bitbucket_rest_api/request/basic_auth.rb +30 -0
- data/lib/bitbucket_rest_api/request/jsonize.rb +39 -0
- data/lib/bitbucket_rest_api/request/oauth.rb +50 -0
- data/lib/bitbucket_rest_api/response.rb +26 -0
- data/lib/bitbucket_rest_api/response/helpers.rb +18 -0
- data/lib/bitbucket_rest_api/response/jsonize.rb +25 -0
- data/lib/bitbucket_rest_api/response/mashify.rb +23 -0
- data/lib/bitbucket_rest_api/response/raise_error.rb +28 -0
- data/lib/bitbucket_rest_api/response/xmlize.rb +25 -0
- data/lib/bitbucket_rest_api/result.rb +136 -0
- data/lib/bitbucket_rest_api/teams.rb +91 -0
- data/lib/bitbucket_rest_api/user.rb +87 -0
- data/lib/bitbucket_rest_api/users.rb +20 -0
- data/lib/bitbucket_rest_api/users/account.rb +50 -0
- data/lib/bitbucket_rest_api/utils/url.rb +61 -0
- data/lib/bitbucket_rest_api/validations.rb +23 -0
- data/lib/bitbucket_rest_api/validations/format.rb +21 -0
- data/lib/bitbucket_rest_api/validations/presence.rb +21 -0
- data/lib/bitbucket_rest_api/validations/required.rb +37 -0
- data/lib/bitbucket_rest_api/validations/token.rb +38 -0
- data/lib/bitbucket_rest_api/version.rb +10 -0
- data/lib/bitbuckets.rb +2 -0
- data/spec/bitbucket_rest_api/api/actions_spec.rb +18 -0
- data/spec/bitbucket_rest_api/api_factory_spec.rb +28 -0
- data/spec/bitbucket_rest_api/api_spec.rb +87 -0
- data/spec/bitbucket_rest_api/authorization_spec.rb +74 -0
- data/spec/bitbucket_rest_api/client_spec.rb +17 -0
- data/spec/bitbucket_rest_api/core_ext/array_spec.rb +13 -0
- data/spec/bitbucket_rest_api/core_ext/hash_spec.rb +47 -0
- data/spec/bitbucket_rest_api/deprecation_spec.rb +31 -0
- data/spec/bitbucket_rest_api/error/bad_events_spec.rb +11 -0
- data/spec/bitbucket_rest_api/error/blank_value_spec.rb +14 -0
- data/spec/bitbucket_rest_api/error/no_events_spec.rb +11 -0
- data/spec/bitbucket_rest_api/invitations_spec.rb +21 -0
- data/spec/bitbucket_rest_api/issues/comments_spec.rb +89 -0
- data/spec/bitbucket_rest_api/issues/components_spec.rb +89 -0
- data/spec/bitbucket_rest_api/issues/milestones_spec.rb +89 -0
- data/spec/bitbucket_rest_api/issues_spec.rb +91 -0
- data/spec/bitbucket_rest_api/normalizer_spec.rb +29 -0
- data/spec/bitbucket_rest_api/parameter_filter_spec.rb +42 -0
- data/spec/bitbucket_rest_api/repos/changesets_spec.rb +44 -0
- data/spec/bitbucket_rest_api/repos/commits_spec.rb +21 -0
- data/spec/bitbucket_rest_api/repos/components_spec.rb +43 -0
- data/spec/bitbucket_rest_api/repos/default_reviewers_spec.rb +65 -0
- data/spec/bitbucket_rest_api/repos/download_spec.rb +10 -0
- data/spec/bitbucket_rest_api/repos/following_spec.rb +53 -0
- data/spec/bitbucket_rest_api/repos/forks_spec.rb +46 -0
- data/spec/bitbucket_rest_api/repos/keys_spec.rb +73 -0
- data/spec/bitbucket_rest_api/repos/pull_request_spec.rb +283 -0
- data/spec/bitbucket_rest_api/repos/sources_spec.rb +78 -0
- data/spec/bitbucket_rest_api/repos/webhooks_spec.rb +245 -0
- data/spec/bitbucket_rest_api/repos_spec.rb +158 -0
- data/spec/bitbucket_rest_api/request/jsonize_spec.rb +19 -0
- data/spec/bitbucket_rest_api/request/oauth_spec.rb +26 -0
- data/spec/bitbucket_rest_api/request_spec.rb +88 -0
- data/spec/bitbucket_rest_api/response/jsonize_spec.rb +13 -0
- data/spec/bitbucket_rest_api/response/mashify_spec.rb +33 -0
- data/spec/bitbucket_rest_api/response/raise_error_spec.rb +42 -0
- data/spec/bitbucket_rest_api/teams_spec.rb +136 -0
- data/spec/bitbucket_rest_api/user_spec.rb +78 -0
- data/spec/bitbucket_rest_api/utils/url_spec.rb +34 -0
- data/spec/bitbucket_rest_api/validations/format_spec.rb +30 -0
- data/spec/bitbucket_rest_api/validations/presence_spec.rb +13 -0
- data/spec/bitbucket_rest_api/validations/required_spec.rb +44 -0
- data/spec/bitbucket_rest_api/validations/token_spec.rb +17 -0
- data/spec/bitbucket_rest_api_spec.rb +17 -0
- data/spec/spec_helper.rb +24 -0
- metadata +358 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe BitBucket::Repos::Keys do
|
|
5
|
+
let(:deploy_keys) { described_class.new }
|
|
6
|
+
describe '.list' do
|
|
7
|
+
before do
|
|
8
|
+
expect(deploy_keys).to receive(:request).with(
|
|
9
|
+
:get,
|
|
10
|
+
'/1.0/repositories/mock_username/mock_repo/deploy-keys/',
|
|
11
|
+
{},
|
|
12
|
+
{}
|
|
13
|
+
).and_return(%w[key1 key2 key3])
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
context 'without a block' do
|
|
17
|
+
it 'should make a GET request for the deploy keys belonging to the given repo' do
|
|
18
|
+
deploy_keys.list('mock_username', 'mock_repo')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context 'with a block' do
|
|
23
|
+
it 'should make a GET request for the deploy keys belonging to the given repo' do
|
|
24
|
+
deploy_keys.list('mock_username', 'mock_repo') { |key| key }
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe '.create' do
|
|
30
|
+
before do
|
|
31
|
+
expect(deploy_keys).to receive(:request).with(
|
|
32
|
+
:post,
|
|
33
|
+
'/1.0/repositories/mock_username/mock_repo/deploy-keys/',
|
|
34
|
+
{ 'key' => 'mock_ssh_key', 'label' => 'mock_label' },
|
|
35
|
+
headers: { 'Content-Type' => 'application/json' }
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it 'should make a POST request for the deploy keys belonging to the given repo' do
|
|
40
|
+
deploy_keys.create('mock_username', 'mock_repo', key: 'mock_ssh_key', label: 'mock_label')
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe '.edit' do
|
|
45
|
+
before do
|
|
46
|
+
expect(deploy_keys).to receive(:request).with(
|
|
47
|
+
:put,
|
|
48
|
+
'/1.0/repositories/mock_username/mock_repo/deploy-keys/1',
|
|
49
|
+
{ 'key' => 'mock_ssh_key', 'label' => 'mock_label' },
|
|
50
|
+
{}
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'should make a PUT request for the deploy keys belonging to the given repo' do
|
|
55
|
+
deploy_keys.edit('mock_username', 'mock_repo', 1, key: 'mock_ssh_key', label: 'mock_label')
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
describe '.delete' do
|
|
60
|
+
before do
|
|
61
|
+
expect(deploy_keys).to receive(:request).with(
|
|
62
|
+
:delete,
|
|
63
|
+
'/1.0/repositories/mock_username/mock_repo/deploy-keys/mock_id',
|
|
64
|
+
{ 'key' => 'mock_ssh_key', 'label' => 'mock_label' },
|
|
65
|
+
{}
|
|
66
|
+
)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'should make a DELETE request for the deploy keys belonging to the given repo' do
|
|
70
|
+
deploy_keys.delete('mock_username', 'mock_repo', 'mock_id', key: 'mock_ssh_key', label: 'mock_label')
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe BitBucket::Repos::PullRequest do
|
|
5
|
+
subject { described_class.new }
|
|
6
|
+
describe '#list' do
|
|
7
|
+
before do
|
|
8
|
+
expect(subject).to receive(:request).with(
|
|
9
|
+
:get,
|
|
10
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests',
|
|
11
|
+
{},
|
|
12
|
+
{}
|
|
13
|
+
).and_return(%w[pr1 pr2 pr3])
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
context 'without a block' do
|
|
17
|
+
it 'makes a GET request for all pull requests belonging to the repo' do
|
|
18
|
+
subject.list('mock_user', 'mock_repo')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context 'with a block' do
|
|
23
|
+
it 'makes a GET request for all pull requests belonging to the repo' do
|
|
24
|
+
subject.list('mock_user', 'mock_repo') { |pr| pr }
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe '#participants' do
|
|
30
|
+
before do
|
|
31
|
+
expect(subject).to receive(:request).with(
|
|
32
|
+
:get,
|
|
33
|
+
'/1.0/repositories/mock_user/mock_repo/pullrequests/mock_pull_request_id/participants',
|
|
34
|
+
{},
|
|
35
|
+
{}
|
|
36
|
+
).and_return(%w[participant1 participant2 participant3])
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
context 'without a block' do
|
|
40
|
+
it 'makes a GET request for all participants belonging to the repo' do
|
|
41
|
+
subject.participants('mock_user', 'mock_repo', 'mock_pull_request_id')
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
context 'with a block' do
|
|
46
|
+
it 'makes a GET request for all participants belonging to the repo' do
|
|
47
|
+
subject.participants('mock_user', 'mock_repo', 'mock_pull_request_id') { |p| p }
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
describe '#get' do
|
|
53
|
+
before do
|
|
54
|
+
expect(subject).to receive(:request).with(
|
|
55
|
+
:get,
|
|
56
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_pull_request_id',
|
|
57
|
+
{}
|
|
58
|
+
)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'makes a GET request for the pull request belonging to the repo' do
|
|
62
|
+
subject.get('mock_user', 'mock_repo', 'mock_pull_request_id')
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
describe '#create' do
|
|
67
|
+
before do
|
|
68
|
+
@params = {
|
|
69
|
+
title: 'mock_pr_title',
|
|
70
|
+
description: 'mock_pull_request_description',
|
|
71
|
+
source: {
|
|
72
|
+
branch: {
|
|
73
|
+
name: 'mock_source_branch_name'
|
|
74
|
+
},
|
|
75
|
+
repository: {
|
|
76
|
+
full_name: 'mock_owner/mock_repo'
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
destination: {
|
|
80
|
+
branch: {
|
|
81
|
+
name: 'mock_destination_branch_name'
|
|
82
|
+
},
|
|
83
|
+
commit: {
|
|
84
|
+
hash: 'mock_uuid'
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
close_source_branch: true
|
|
88
|
+
}
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it 'makes a POST request to create a new pull request' do
|
|
92
|
+
expect(subject).to receive(:request).with(
|
|
93
|
+
:post,
|
|
94
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests',
|
|
95
|
+
@params
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
subject.create('mock_user', 'mock_repo', @params)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it 'validates presence of required params' do
|
|
102
|
+
expect do
|
|
103
|
+
subject.create(
|
|
104
|
+
'mock_user',
|
|
105
|
+
'mock_repo',
|
|
106
|
+
title: '',
|
|
107
|
+
description: 'mock_pull_request_description',
|
|
108
|
+
source: {
|
|
109
|
+
branch: {
|
|
110
|
+
name: 'mock_source_branch_name'
|
|
111
|
+
},
|
|
112
|
+
repository: {
|
|
113
|
+
full_name: 'mock_owner/mock_repo'
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
destination: {
|
|
117
|
+
branch: {
|
|
118
|
+
name: 'mock_destination_branch_name'
|
|
119
|
+
},
|
|
120
|
+
commit: {
|
|
121
|
+
hash: 'mock_uuid'
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
close_source_branch: true
|
|
125
|
+
)
|
|
126
|
+
end.to raise_error
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
describe '.put' do
|
|
131
|
+
before do
|
|
132
|
+
expect(subject).to receive(:request).with(
|
|
133
|
+
:put,
|
|
134
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id',
|
|
135
|
+
{}
|
|
136
|
+
)
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it 'makes a PUT request for the given pull request' do
|
|
140
|
+
subject.update('mock_user', 'mock_repo', 'mock_id')
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
describe '.commits' do
|
|
145
|
+
before do
|
|
146
|
+
expect(subject).to receive(:request).with(
|
|
147
|
+
:get,
|
|
148
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/commits',
|
|
149
|
+
{}
|
|
150
|
+
)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
it 'makes a GET request for the commits' do
|
|
154
|
+
subject.commits('mock_user', 'mock_repo', 'mock_id')
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
describe '.commits' do
|
|
159
|
+
before do
|
|
160
|
+
expect(subject).to receive(:request).with(
|
|
161
|
+
:post,
|
|
162
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/approve',
|
|
163
|
+
{}
|
|
164
|
+
)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
it 'makes a POST request' do
|
|
168
|
+
subject.approve('mock_user', 'mock_repo', 'mock_id')
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
describe '.delete_approval' do
|
|
173
|
+
before do
|
|
174
|
+
expect(subject).to receive(:request).with(
|
|
175
|
+
:delete,
|
|
176
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/approve',
|
|
177
|
+
{}
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
it 'makes a DELTE request' do
|
|
182
|
+
subject.delete_approval('mock_user', 'mock_repo', 'mock_id')
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
describe '.diff' do
|
|
187
|
+
before do
|
|
188
|
+
expect(subject).to receive(:request).with(
|
|
189
|
+
:get,
|
|
190
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/diff',
|
|
191
|
+
{}
|
|
192
|
+
)
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
it 'makes a GET request for the diff of the pull request' do
|
|
196
|
+
subject.diff('mock_user', 'mock_repo', 'mock_id')
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
describe '.all_activity' do
|
|
201
|
+
before do
|
|
202
|
+
expect(subject).to receive(:request).with(
|
|
203
|
+
:get,
|
|
204
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/activity',
|
|
205
|
+
{}
|
|
206
|
+
)
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
it 'makes a GET request' do
|
|
210
|
+
subject.all_activity('mock_user', 'mock_repo')
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
describe '.activity' do
|
|
215
|
+
before do
|
|
216
|
+
expect(subject).to receive(:request).with(
|
|
217
|
+
:get,
|
|
218
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/activity',
|
|
219
|
+
{}
|
|
220
|
+
)
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
it 'makes a GET request' do
|
|
224
|
+
subject.activity('mock_user', 'mock_repo', 'mock_id')
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
describe '.accept_and_merge' do
|
|
229
|
+
before do
|
|
230
|
+
expect(subject).to receive(:request).with(
|
|
231
|
+
:post,
|
|
232
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/merge',
|
|
233
|
+
{}
|
|
234
|
+
)
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
it 'makes a POST request' do
|
|
238
|
+
subject.merge('mock_user', 'mock_repo', 'mock_id')
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
describe '.decline' do
|
|
243
|
+
before do
|
|
244
|
+
expect(subject).to receive(:request).with(
|
|
245
|
+
:post,
|
|
246
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/decline',
|
|
247
|
+
{}
|
|
248
|
+
)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
it 'makes a POST request' do
|
|
252
|
+
subject.decline('mock_user', 'mock_repo', 'mock_id')
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
describe '.comments' do
|
|
257
|
+
before do
|
|
258
|
+
expect(subject).to receive(:request).with(
|
|
259
|
+
:get,
|
|
260
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/comments',
|
|
261
|
+
{}
|
|
262
|
+
)
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
it 'makes a GET request' do
|
|
266
|
+
subject.comments('mock_user', 'mock_repo', 'mock_id')
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
describe '.comment' do
|
|
271
|
+
before do
|
|
272
|
+
expect(subject).to receive(:request).with(
|
|
273
|
+
:get,
|
|
274
|
+
'/2.0/repositories/mock_user/mock_repo/pullrequests/mock_id/comments/comment_id',
|
|
275
|
+
{}
|
|
276
|
+
)
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
it 'makes a GET request' do
|
|
280
|
+
subject.comment('mock_user', 'mock_repo', 'mock_id', 'comment_id')
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe BitBucket::Repos::Sources do
|
|
5
|
+
let(:subject) { BitBucket::Repos::Sources.new }
|
|
6
|
+
|
|
7
|
+
describe '#list' do
|
|
8
|
+
context 'when some parameters are missing' do
|
|
9
|
+
it 'raises an error' do
|
|
10
|
+
expect do
|
|
11
|
+
subject.list(
|
|
12
|
+
'mock_username',
|
|
13
|
+
'mock_repo'
|
|
14
|
+
)
|
|
15
|
+
end.to raise_error(ArgumentError)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
context 'when path parameter is empty' do
|
|
20
|
+
before do
|
|
21
|
+
expect(subject).to receive(:request).with(
|
|
22
|
+
:get,
|
|
23
|
+
'/1.0/repositories/mock_username/mock_repo/src/moch_sha/',
|
|
24
|
+
{},
|
|
25
|
+
{}
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'sends a GET request for a list of all source files' do
|
|
30
|
+
subject.list('mock_username', 'mock_repo', 'moch_sha', '')
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
context 'when path parameter is defined' do
|
|
35
|
+
before do
|
|
36
|
+
expect(subject).to receive(:request).with(
|
|
37
|
+
:get,
|
|
38
|
+
'/1.0/repositories/mock_username/mock_repo/src/moch_sha/app/controller',
|
|
39
|
+
{},
|
|
40
|
+
{}
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'send a GET request for a list of the source files under the specified path' do
|
|
45
|
+
subject.list('mock_username', 'mock_repo', 'moch_sha', 'app/controller')
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
describe '#get' do
|
|
51
|
+
context 'when some parameters are missing' do
|
|
52
|
+
it 'raises an error' do
|
|
53
|
+
expect do
|
|
54
|
+
subject.get(
|
|
55
|
+
'mock_username',
|
|
56
|
+
'mock_repo',
|
|
57
|
+
'moch_sha'
|
|
58
|
+
)
|
|
59
|
+
end.to raise_error(ArgumentError)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
context 'when path parameter is defined' do
|
|
64
|
+
before do
|
|
65
|
+
expect(subject).to receive(:request).with(
|
|
66
|
+
:get,
|
|
67
|
+
'/1.0/repositories/mock_username/mock_repo/raw/moch_sha/app/assets/images/logo.jpg',
|
|
68
|
+
{},
|
|
69
|
+
{}
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "send a GET request for a source file's size and contents" do
|
|
74
|
+
subject.get('mock_username', 'mock_repo', 'moch_sha', 'app/assets/images/logo.jpg')
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe BitBucket::Repos::Webhooks, wip: true do
|
|
5
|
+
subject { described_class.new }
|
|
6
|
+
let(:post_put_params) do
|
|
7
|
+
{
|
|
8
|
+
'description' => 'mock_description',
|
|
9
|
+
'url' => 'mock_url',
|
|
10
|
+
'active' => true,
|
|
11
|
+
'events' => ['repo:push']
|
|
12
|
+
}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
let(:missing_key_params) do
|
|
16
|
+
{
|
|
17
|
+
'description' => 'mock_description',
|
|
18
|
+
'active' => true,
|
|
19
|
+
'events' => ['repo:push']
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
let(:blank_value_params) do
|
|
24
|
+
{
|
|
25
|
+
'description' => '',
|
|
26
|
+
'url' => 'mock_url',
|
|
27
|
+
'active' => true,
|
|
28
|
+
'events' => ['repo:push']
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
let(:bad_event_params) do
|
|
33
|
+
{
|
|
34
|
+
'description' => 'mock_description',
|
|
35
|
+
'url' => 'mock_url',
|
|
36
|
+
'active' => true,
|
|
37
|
+
'events' => ['bad:event']
|
|
38
|
+
}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
let(:missing_events_params) do
|
|
42
|
+
{
|
|
43
|
+
'description' => 'mock_description',
|
|
44
|
+
'url' => 'mock_url',
|
|
45
|
+
'active' => true,
|
|
46
|
+
'events' => []
|
|
47
|
+
}
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
describe '#create' do
|
|
51
|
+
context 'when required fields are missing from params' do
|
|
52
|
+
context 'when a required key is missing' do
|
|
53
|
+
it 'raises an instance of BitBucket::Error::RequiredParams' do
|
|
54
|
+
expect do
|
|
55
|
+
subject.create(
|
|
56
|
+
'mock_username',
|
|
57
|
+
'mock_repo',
|
|
58
|
+
missing_key_params
|
|
59
|
+
)
|
|
60
|
+
end.to raise_error(BitBucket::Error::RequiredParams)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
context 'when values of required keys are blank' do
|
|
65
|
+
it 'raises an instance of BitBucket::Error::RequiredParams' do
|
|
66
|
+
expect do
|
|
67
|
+
subject.create(
|
|
68
|
+
'mock_username',
|
|
69
|
+
'mock_repo',
|
|
70
|
+
blank_value_params
|
|
71
|
+
)
|
|
72
|
+
end.to raise_error(
|
|
73
|
+
BitBucket::Error::BlankValue,
|
|
74
|
+
"The value for: 'description', cannot be blank :("
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it 'validates the given events' do
|
|
81
|
+
allow(subject).to(receive(:request))
|
|
82
|
+
|
|
83
|
+
expect do
|
|
84
|
+
subject.create(
|
|
85
|
+
'mock_username',
|
|
86
|
+
'mock_repo',
|
|
87
|
+
bad_event_params
|
|
88
|
+
)
|
|
89
|
+
end.to raise_error(
|
|
90
|
+
BitBucket::Error::BadEvents,
|
|
91
|
+
"The event: 'bad:event', does not exist :("
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
it 'checks that at least one event is given' do
|
|
96
|
+
allow(subject).to(receive(:request))
|
|
97
|
+
|
|
98
|
+
expect do
|
|
99
|
+
subject.create(
|
|
100
|
+
'mock_username',
|
|
101
|
+
'mock_repo',
|
|
102
|
+
missing_events_params
|
|
103
|
+
)
|
|
104
|
+
end.to raise_error(
|
|
105
|
+
BitBucket::Error::NoEvents,
|
|
106
|
+
'At least one event is required, none given :('
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'makes a POST request to create a specific webhook' do
|
|
111
|
+
expect(subject).to receive(:request).with(
|
|
112
|
+
:post,
|
|
113
|
+
'/2.0/repositories/mock_username/mock_repo/hooks',
|
|
114
|
+
post_put_params,
|
|
115
|
+
headers: { 'Content-Type' => 'application/json' }
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
subject.create(
|
|
119
|
+
'mock_username',
|
|
120
|
+
'mock_repo',
|
|
121
|
+
post_put_params
|
|
122
|
+
)
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
describe '#list' do
|
|
127
|
+
it 'makes a GET request for all the webhooks beloning to the given repo' do
|
|
128
|
+
expect(subject).to receive(:request).with(
|
|
129
|
+
:get,
|
|
130
|
+
'/2.0/repositories/mock_username/mock_repo/hooks',
|
|
131
|
+
{},
|
|
132
|
+
{}
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
subject.list('mock_username', 'mock_repo')
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
describe '#get' do
|
|
140
|
+
it 'makes a GET request for a specific webook' do
|
|
141
|
+
expect(subject).to receive(:request).with(
|
|
142
|
+
:get,
|
|
143
|
+
'/2.0/repositories/mock_username/mock_repo/hooks/mock_uuid',
|
|
144
|
+
{},
|
|
145
|
+
{}
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
subject.get('mock_username', 'mock_repo', 'mock_uuid')
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
describe '#edit' do
|
|
153
|
+
context 'when required fields are missing from params' do
|
|
154
|
+
context 'when a required key is missing' do
|
|
155
|
+
it 'raises an instance of BitBucket::Error::RequiredParams' do
|
|
156
|
+
expect do
|
|
157
|
+
subject.edit(
|
|
158
|
+
'mock_username',
|
|
159
|
+
'mock_repo',
|
|
160
|
+
'mock_uuid',
|
|
161
|
+
missing_key_params
|
|
162
|
+
)
|
|
163
|
+
end.to raise_error(BitBucket::Error::RequiredParams)
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
context 'when values of required keys are blank' do
|
|
168
|
+
it 'raises an instance of BitBucket::Error::RequiredParams' do
|
|
169
|
+
expect do
|
|
170
|
+
subject.edit(
|
|
171
|
+
'mock_username',
|
|
172
|
+
'mock_repo',
|
|
173
|
+
'mock_uuid',
|
|
174
|
+
blank_value_params
|
|
175
|
+
)
|
|
176
|
+
end.to raise_error(
|
|
177
|
+
BitBucket::Error::BlankValue,
|
|
178
|
+
"The value for: 'description', cannot be blank :("
|
|
179
|
+
)
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
it 'validates the existence of the given events' do
|
|
185
|
+
allow(subject).to(receive(:request))
|
|
186
|
+
|
|
187
|
+
expect do
|
|
188
|
+
subject.edit(
|
|
189
|
+
'mock_username',
|
|
190
|
+
'mock_repo',
|
|
191
|
+
'mock_uuid',
|
|
192
|
+
bad_event_params
|
|
193
|
+
)
|
|
194
|
+
end.to raise_error(
|
|
195
|
+
BitBucket::Error::BadEvents,
|
|
196
|
+
"The event: 'bad:event', does not exist :("
|
|
197
|
+
)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
it 'validates that at least one event is given' do
|
|
201
|
+
allow(subject).to(receive(:request))
|
|
202
|
+
|
|
203
|
+
expect do
|
|
204
|
+
subject.edit(
|
|
205
|
+
'mock_username',
|
|
206
|
+
'mock_repo',
|
|
207
|
+
'mock_uuid',
|
|
208
|
+
missing_events_params
|
|
209
|
+
)
|
|
210
|
+
end.to raise_error(
|
|
211
|
+
BitBucket::Error::NoEvents,
|
|
212
|
+
'At least one event is required, none given :('
|
|
213
|
+
)
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
it 'makes a PUT request for the given webhook' do
|
|
217
|
+
expect(subject).to receive(:request).with(
|
|
218
|
+
:put,
|
|
219
|
+
'/2.0/repositories/mock_username/mock_repo/hooks/mock_uuid',
|
|
220
|
+
post_put_params,
|
|
221
|
+
headers: { 'Content-Type' => 'application/json' }
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
subject.edit(
|
|
225
|
+
'mock_username',
|
|
226
|
+
'mock_repo',
|
|
227
|
+
'mock_uuid',
|
|
228
|
+
post_put_params
|
|
229
|
+
)
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
describe '#delete' do
|
|
234
|
+
it 'sends a DELETE request for the given webhook' do
|
|
235
|
+
expect(subject).to receive(:request).with(
|
|
236
|
+
:delete,
|
|
237
|
+
'/2.0/repositories/mock_username/mock_repo/hooks/mock_uuid',
|
|
238
|
+
{},
|
|
239
|
+
{}
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
subject.delete('mock_username', 'mock_repo', 'mock_uuid')
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
end
|