stash_core_api 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/stash_core_api/api.rb +2 -0
- data/lib/stash_core_api/commits.rb +10 -0
- data/lib/stash_core_api/compare.rb +29 -0
- data/lib/stash_core_api/version.rb +1 -1
- data/spec/fixtures/commit_changes_bad_sha.json +2 -0
- data/spec/fixtures/compare_changes_bad_range.json +1 -0
- data/spec/stash_core_api/commits_spec.rb +20 -0
- data/spec/stash_core_api/compare_spec.rb +36 -0
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: eefa96b5608f5e886bec64e6bbecad120094e799c74c9e8c324ed58314174836
|
4
|
+
data.tar.gz: 729a6906231d22ccefbd8b7573eb64e8a08a7c08a7f2d20198bcb9c667813b08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0c1cff131d164f24fb2e5b863385f1862e329cdac4f06ce89e5f80f3dcf23c879b1d75777c3869fc05048c622f42af34fb26f7ed582953b3ae48fa2ab2d557d
|
7
|
+
data.tar.gz: 2effd106f6e9b8ea1623f524568d6f77dffa18b1af8756140f58a0774e6c54b97ffa9377965b6f6c075979169761917d81e9ca944d6f283ebccff78d807139b0
|
data/lib/stash_core_api/api.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'stash_core_api/commits'
|
2
2
|
require 'stash_core_api/pull_requests'
|
3
|
+
require 'stash_core_api/compare'
|
3
4
|
|
4
5
|
module StashCoreAPI
|
5
6
|
# All methods have been separated into modules and
|
@@ -7,4 +8,5 @@ module StashCoreAPI
|
|
7
8
|
# https://developer.atlassian.com/static/rest/stash/3.9.2/stash-rest.html.
|
8
9
|
include StashCoreAPI::Commits
|
9
10
|
include StashCoreAPI::PullRequests
|
11
|
+
include StashCoreAPI::Compare
|
10
12
|
end
|
@@ -30,5 +30,15 @@ module StashCoreAPI
|
|
30
30
|
end
|
31
31
|
perform_get(endpoint)
|
32
32
|
end
|
33
|
+
|
34
|
+
# @see https://docs.atlassian.com/DAC/rest/stash/3.9.2/stash-rest.html#idp1729008
|
35
|
+
#
|
36
|
+
# @param limit [Integer] the maximum number of commits to return
|
37
|
+
# Stash defaults to 25
|
38
|
+
def commit_changes(commit_id, limit: nil)
|
39
|
+
endpoint = "/commits/#{commit_id}/changes"
|
40
|
+
endpoint = "#{endpoint}?limit=#{limit}" if limit
|
41
|
+
perform_get(endpoint)
|
42
|
+
end
|
33
43
|
end
|
34
44
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'stash_core_api/utils'
|
2
|
+
|
3
|
+
module StashCoreAPI
|
4
|
+
# Interfaces with compare endpoints of Stash CoreAPI API
|
5
|
+
module Compare
|
6
|
+
include StashCoreAPI::Utils
|
7
|
+
|
8
|
+
# @see https://docs.atlassian.com/DAC/rest/stash/3.9.2/stash-rest.html#idp3045184
|
9
|
+
#
|
10
|
+
# @param from [String] the source commit (can be a partial/full changeset
|
11
|
+
# id or qualified/unqualified ref name)
|
12
|
+
# @param to [String] the target commit (can be a partial/full changeset
|
13
|
+
# id or qualified/unqualified ref name)
|
14
|
+
# @param fromRepo [String] an optional parameter specifying the source
|
15
|
+
# repository containing the source changeset if that changeset is not
|
16
|
+
# present in the current repository; the repository can be specified
|
17
|
+
# by either its ID fromRepo=42 or by its project key plus its repo slug
|
18
|
+
# separated by a slash: fromRepo=projectKey/repoSlug
|
19
|
+
# @param limit [Integer] the maximum number of commits to return
|
20
|
+
# Stash defaults to 25
|
21
|
+
def compare_changes(from_commit, to_commit, from_repo: nil, limit: nil)
|
22
|
+
endpoint = "/compare/changes?from=#{from_commit}&to=#{to_commit}"
|
23
|
+
endpoint = "#{endpoint}&fromRepo=#{from_repo}" if from_repo
|
24
|
+
endpoint = "#{endpoint}&limit=#{limit}" if limit
|
25
|
+
perform_get(endpoint)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
{"errors":[{"context":null,"message":"Object \"c\" does not exist in this repository","exceptionName":"com.atlassian.bitbucket.NoSuchObjectException"}]}
|
@@ -59,4 +59,24 @@ RSpec.describe StashCoreAPI::Client do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
62
|
+
|
63
|
+
describe '#commit_changes' do
|
64
|
+
it 'should hit the approprate stash api with the given options' do
|
65
|
+
endpoint = "/commits/083f66ba3c6/changes?limit=1"
|
66
|
+
expect(client).to receive(:perform_get).with(endpoint)
|
67
|
+
client.commit_changes('083f66ba3c6', limit: 1)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should raise an error when the commit is not valid' do
|
71
|
+
endpoint = "/#{base_path(client)}/commits/083f66ba3c6/changes"
|
72
|
+
stub_get(client, endpoint).to_return(
|
73
|
+
status: 404,
|
74
|
+
body: fixture('commit_changes_bad_sha.json'),
|
75
|
+
headers: { 'Content-Type' => 'application/json' }
|
76
|
+
)
|
77
|
+
expect { client.commit_changes('083f66ba3c6') }.to raise_error(
|
78
|
+
StashCoreAPI::Error::NotFound, 'Commit "083f66ba3c6" does not exist in this repository'
|
79
|
+
)
|
80
|
+
end
|
81
|
+
end
|
62
82
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe StashCoreAPI::Client do
|
4
|
+
let(:client) do
|
5
|
+
StashCoreAPI::Client.new(
|
6
|
+
user: 'user',
|
7
|
+
pass: 'pass',
|
8
|
+
project: 'project',
|
9
|
+
repository: 'repository',
|
10
|
+
stash_url: 'https://stash.com',
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#compare' do
|
15
|
+
describe '#changes' do
|
16
|
+
it 'should hit the approprate stash api with the given options' do
|
17
|
+
endpoint = "/compare/changes?from=a&to=b&fromRepo=c&limit=1"
|
18
|
+
expect(client).to receive(:perform_get).with(endpoint)
|
19
|
+
changes = client.compare_changes('a', 'b', from_repo: 'c', limit: 1)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should raise an error when the range is not valid' do
|
23
|
+
endpoint = "/#{base_path(client)}/compare/changes?from=c&to=d"
|
24
|
+
stub_get(client, endpoint).to_return(
|
25
|
+
status: 404,
|
26
|
+
body: fixture('compare_changes_bad_range.json'),
|
27
|
+
headers: { 'Content-Type' => 'application/json' }
|
28
|
+
)
|
29
|
+
expect { client.compare_changes('c', 'd') }.to raise_error(
|
30
|
+
StashCoreAPI::Error::NotFound, 'Object "c" does not exist in this repository'
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stash_core_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alyssa Pohahau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- lib/stash_core_api/api.rb
|
114
114
|
- lib/stash_core_api/client.rb
|
115
115
|
- lib/stash_core_api/commits.rb
|
116
|
+
- lib/stash_core_api/compare.rb
|
116
117
|
- lib/stash_core_api/error.rb
|
117
118
|
- lib/stash_core_api/pull_requests.rb
|
118
119
|
- lib/stash_core_api/request.rb
|
@@ -120,14 +121,17 @@ files:
|
|
120
121
|
- lib/stash_core_api/version.rb
|
121
122
|
- spec/fixtures/can_merge.json
|
122
123
|
- spec/fixtures/cannot_merge.json
|
124
|
+
- spec/fixtures/commit_changes_bad_sha.json
|
123
125
|
- spec/fixtures/commits.json
|
124
126
|
- spec/fixtures/commits_with_limit.json
|
125
127
|
- spec/fixtures/commits_with_with_count.json
|
128
|
+
- spec/fixtures/compare_changes_bad_range.json
|
126
129
|
- spec/fixtures/info.json
|
127
130
|
- spec/fixtures/unauthorized_error.json
|
128
131
|
- spec/spec_helper.rb
|
129
132
|
- spec/stash_core_api/client_spec.rb
|
130
133
|
- spec/stash_core_api/commits_spec.rb
|
134
|
+
- spec/stash_core_api/compare_spec.rb
|
131
135
|
- spec/stash_core_api/error_spec.rb
|
132
136
|
- spec/stash_core_api/pull_requests_spec.rb
|
133
137
|
- spec/stash_core_api/request_spec.rb
|
@@ -152,22 +156,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
156
|
- !ruby/object:Gem::Version
|
153
157
|
version: '0'
|
154
158
|
requirements: []
|
155
|
-
|
156
|
-
rubygems_version: 2.6.12
|
159
|
+
rubygems_version: 3.0.3
|
157
160
|
signing_key:
|
158
161
|
specification_version: 4
|
159
162
|
summary: Atlassian Stash Core REST API Client
|
160
163
|
test_files:
|
161
164
|
- spec/fixtures/can_merge.json
|
162
165
|
- spec/fixtures/cannot_merge.json
|
166
|
+
- spec/fixtures/commit_changes_bad_sha.json
|
163
167
|
- spec/fixtures/commits.json
|
164
168
|
- spec/fixtures/commits_with_limit.json
|
165
169
|
- spec/fixtures/commits_with_with_count.json
|
170
|
+
- spec/fixtures/compare_changes_bad_range.json
|
166
171
|
- spec/fixtures/info.json
|
167
172
|
- spec/fixtures/unauthorized_error.json
|
168
173
|
- spec/spec_helper.rb
|
169
174
|
- spec/stash_core_api/client_spec.rb
|
170
175
|
- spec/stash_core_api/commits_spec.rb
|
176
|
+
- spec/stash_core_api/compare_spec.rb
|
171
177
|
- spec/stash_core_api/error_spec.rb
|
172
178
|
- spec/stash_core_api/pull_requests_spec.rb
|
173
179
|
- spec/stash_core_api/request_spec.rb
|