universal-git-client 1.2.4

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.
@@ -0,0 +1,110 @@
1
+ require 'universal-git-client/normalizers/base'
2
+
3
+ module UniversalGitClient
4
+ module Normalizers
5
+ class BitbucketServer < Base
6
+ def current_page_index
7
+ current_page.to_s
8
+ rescue StandardError
9
+ nil
10
+ end
11
+
12
+ def first_page_index
13
+ '1'
14
+ end
15
+
16
+ def prev_page_index
17
+ prev_page&.to_s
18
+ end
19
+
20
+ def next_page_index
21
+ next_page&.to_s
22
+ end
23
+
24
+ def last_page_index
25
+ nil
26
+ end
27
+
28
+ def per_page_index
29
+ response.request.options[:query][:limit].to_s
30
+ rescue StandardError
31
+ nil
32
+ end
33
+
34
+ private
35
+
36
+ def next_page
37
+ next_page_start = response.parsed_response['nextPageStart']
38
+ if next_page_start
39
+ ( next_page_start.to_i / per_page_index.to_i) + 1
40
+ else
41
+ nil
42
+ end
43
+ rescue StandardError
44
+ nil
45
+ end
46
+
47
+ def current_page
48
+ (response.request.options[:query][:start].to_i / per_page_index.to_i) + 1
49
+ end
50
+
51
+ def prev_page
52
+ current_page > 1 ? current_page - 1 : nil
53
+ end
54
+
55
+ class UserSerializer < BaseSerializer
56
+ set_id :account_id
57
+ attribute :login, &:username
58
+ attribute :name, &:display_name
59
+
60
+ attribute :avatar_url do |object|
61
+ object.links.avatar.href
62
+ end
63
+ end
64
+
65
+ class OrganizationSerializer < BaseSerializer
66
+ set_id :uuid
67
+ attribute :login, &:username
68
+
69
+ attribute :avatar_url do |object|
70
+ object.links.avatar.href
71
+ end
72
+ end
73
+
74
+ class RepositorySerializer < BaseSerializer
75
+ attribute :name, &:slug
76
+ attribute :archived do false end
77
+ attribute :default_branch do nil end
78
+
79
+ attribute :full_name do |object|
80
+ "#{object.project.key}/#{object.name}"
81
+ end
82
+
83
+ attribute :full_path do |object|
84
+ "#{object.project.key}/#{object.slug}"
85
+ end
86
+
87
+ attribute :private do |object|
88
+ !object.public
89
+ end
90
+ end
91
+
92
+ class BranchSerializer < BaseSerializer
93
+ set_id :displayId
94
+ attribute :name, &:displayId
95
+ attribute :commit, &:latestCommit
96
+ attribute :protected do false end
97
+ end
98
+
99
+ class WebhookSerializer < BaseSerializer
100
+ set_id :id
101
+ attributes :url, :active
102
+ attribute :events do |object|
103
+ events = []
104
+ events << 'push' if object.events.include?('repo:refs_changed')
105
+ end
106
+ attribute :type do 'Repository' end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,35 @@
1
+ require 'universal-git-client/normalizers/base'
2
+
3
+ module UniversalGitClient
4
+ module Normalizers
5
+ class Github < Base
6
+ class UserSerializer < BaseSerializer
7
+ attributes :login, :name, :avatar_url
8
+ end
9
+
10
+ class OrganizationSerializer < BaseSerializer
11
+ attributes :login, :avatar_url
12
+ end
13
+
14
+ class RepositorySerializer < BaseSerializer
15
+ attributes :name, :full_name, :private, :archived, :default_branch
16
+ attribute :full_path, &:full_name
17
+ end
18
+
19
+ class BranchSerializer < BaseSerializer
20
+ set_id :name
21
+ attributes :name, :commit, :protected
22
+ attribute :commit do |object|
23
+ object.commit.sha
24
+ end
25
+ end
26
+
27
+ class WebhookSerializer < BaseSerializer
28
+ attributes :type, :url, :secret, :events, :active
29
+ attribute :url do |object|
30
+ object.config.url
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,53 @@
1
+ require 'universal-git-client/normalizers/base'
2
+
3
+ module UniversalGitClient
4
+ module Normalizers
5
+ class Gitlab < Base
6
+ class UserSerializer < BaseSerializer
7
+ attribute :login, &:username
8
+ attributes :name, :avatar_url
9
+ end
10
+
11
+ class OrganizationSerializer < BaseSerializer
12
+ attributes :avatar_url
13
+ attribute :login, &:full_path
14
+ end
15
+
16
+ class RepositorySerializer < BaseSerializer
17
+ attributes :name, :archived, :default_branch
18
+ attribute :full_name, &:path_with_namespace
19
+ attribute :full_path, &:path_with_namespace
20
+
21
+ attribute :private do |object|
22
+ case object.visibility
23
+ when 'private'
24
+ true
25
+ else
26
+ false
27
+ end
28
+ end
29
+ end
30
+
31
+ class BranchSerializer < BaseSerializer
32
+ set_id :name
33
+ attributes :name, :protected
34
+
35
+ attribute :commit do |object|
36
+ object.commit.id
37
+ end
38
+ end
39
+
40
+ class WebhookSerializer < BaseSerializer
41
+ attributes :url
42
+ attribute(:active) { true }
43
+ attribute(:type) { 'Repository' }
44
+
45
+ attribute :events do |object|
46
+ events = []
47
+ events << 'push' if object.push_events
48
+ events
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,320 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: universal-git-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.4
5
+ platform: ruby
6
+ authors:
7
+ - HipTest
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-04-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: deep_merge
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: httparty
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.17.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.17.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: down
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '4.4'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '4.4'
61
+ - !ruby/object:Gem::Dependency
62
+ name: nitlink
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.1'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.1'
75
+ - !ruby/object:Gem::Dependency
76
+ name: dry-configurable
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.8'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.8'
89
+ - !ruby/object:Gem::Dependency
90
+ name: fast_jsonapi
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.5'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.5'
103
+ - !ruby/object:Gem::Dependency
104
+ name: rdoc
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '3.12'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '3.12'
117
+ - !ruby/object:Gem::Dependency
118
+ name: bundler
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '1.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: juwelier
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 2.4.0
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 2.4.0
145
+ - !ruby/object:Gem::Dependency
146
+ name: simplecov
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.16'
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 0.16.1
155
+ type: :development
156
+ prerelease: false
157
+ version_requirements: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '0.16'
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: 0.16.1
165
+ - !ruby/object:Gem::Dependency
166
+ name: pry
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: 0.12.2
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: 0.12.2
179
+ - !ruby/object:Gem::Dependency
180
+ name: rubocop
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: 0.80.1
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: 0.80.1
193
+ - !ruby/object:Gem::Dependency
194
+ name: rspec
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '3.4'
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '3.4'
207
+ - !ruby/object:Gem::Dependency
208
+ name: rspec-json_expectations
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: '2.2'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: '2.2'
221
+ - !ruby/object:Gem::Dependency
222
+ name: webmock
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: '2.1'
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: '2.1'
235
+ - !ruby/object:Gem::Dependency
236
+ name: factory_bot
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: '5.0'
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: 5.0.2
245
+ type: :development
246
+ prerelease: false
247
+ version_requirements: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - "~>"
250
+ - !ruby/object:Gem::Version
251
+ version: '5.0'
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: 5.0.2
255
+ - !ruby/object:Gem::Dependency
256
+ name: ffaker
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - "~>"
260
+ - !ruby/object:Gem::Version
261
+ version: '2.11'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - "~>"
267
+ - !ruby/object:Gem::Version
268
+ version: '2.11'
269
+ description: Use this gem to normalize git providers api responses
270
+ email: besancon@smartbear.com
271
+ executables: []
272
+ extensions: []
273
+ extra_rdoc_files:
274
+ - LICENSE
275
+ - README.md
276
+ files:
277
+ - LICENSE
278
+ - README.md
279
+ - VERSION
280
+ - lib/universal-git-client.rb
281
+ - lib/universal-git-client/client.rb
282
+ - lib/universal-git-client/client_factory.rb
283
+ - lib/universal-git-client/configuration.rb
284
+ - lib/universal-git-client/errors.rb
285
+ - lib/universal-git-client/http/base.rb
286
+ - lib/universal-git-client/http/bitbucket.rb
287
+ - lib/universal-git-client/http/bitbucket_server.rb
288
+ - lib/universal-git-client/http/github.rb
289
+ - lib/universal-git-client/http/gitlab.rb
290
+ - lib/universal-git-client/http/helpers/dummy_response.rb
291
+ - lib/universal-git-client/http/response_validation.rb
292
+ - lib/universal-git-client/normalizers/base.rb
293
+ - lib/universal-git-client/normalizers/bitbucket.rb
294
+ - lib/universal-git-client/normalizers/bitbucket_server.rb
295
+ - lib/universal-git-client/normalizers/github.rb
296
+ - lib/universal-git-client/normalizers/gitlab.rb
297
+ homepage: https://github.com/SmartBear/universal-git-client
298
+ licenses:
299
+ - MIT
300
+ metadata: {}
301
+ post_install_message:
302
+ rdoc_options: []
303
+ require_paths:
304
+ - lib
305
+ required_ruby_version: !ruby/object:Gem::Requirement
306
+ requirements:
307
+ - - ">="
308
+ - !ruby/object:Gem::Version
309
+ version: '0'
310
+ required_rubygems_version: !ruby/object:Gem::Requirement
311
+ requirements:
312
+ - - ">="
313
+ - !ruby/object:Gem::Version
314
+ version: '0'
315
+ requirements: []
316
+ rubygems_version: 3.0.3
317
+ signing_key:
318
+ specification_version: 4
319
+ summary: Use this gem to normalize git providers api responses
320
+ test_files: []