quiz_api_client 4.1.0 → 4.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/README.md +4 -0
- data/lib/quiz_api_client/config.rb +29 -8
- data/lib/quiz_api_client/http_client.rb +11 -40
- data/lib/quiz_api_client/http_request/failure.rb +65 -0
- data/lib/quiz_api_client/http_request/metrics.rb +67 -0
- data/lib/quiz_api_client/services/items_service.rb +11 -0
- data/lib/quiz_api_client/services/quiz_clone_jobs_service.rb +11 -0
- data/lib/quiz_api_client/services/quiz_sync_job_service.rb +17 -0
- data/lib/quiz_api_client/services/quiz_sync_jobs_service.rb +16 -0
- data/lib/quiz_api_client/version.rb +1 -1
- data/lib/quiz_api_client.rb +12 -0
- data/spec/config_spec.rb +66 -0
- data/spec/contracts/interaction_types_service_spec.rb +22 -0
- data/spec/contracts/item_analyses_service_spec.rb +59 -0
- data/spec/contracts/items_service_spec.rb +59 -0
- data/spec/contracts/qti_imports_service_spec.rb +34 -0
- data/spec/contracts/quiz_clone_job_service_spec.rb +20 -0
- data/spec/contracts/quiz_clone_jobs_service_spec.rb +21 -0
- data/spec/contracts/quiz_entries_service_spec.rb +125 -0
- data/spec/contracts/quiz_service_spec.rb +68 -0
- data/spec/contracts/quiz_session_events_service_spec.rb +30 -0
- data/spec/contracts/quiz_session_result_service_spec.rb +42 -0
- data/spec/contracts/quiz_session_service_spec.rb +56 -0
- data/spec/contracts/quiz_sessions_service_spec.rb +28 -0
- data/spec/contracts/quiz_sync_job_service_spec.rb +21 -0
- data/spec/contracts/quiz_sync_jobs_service_spec.rb +21 -0
- data/spec/contracts/quizzes_service_spec.rb +80 -0
- data/spec/contracts/session_item_results_service_spec.rb +60 -0
- data/spec/contracts/session_items_service_spec.rb +21 -0
- data/spec/contracts/shared_banks_spec.rb +366 -0
- data/spec/contracts/shared_examples/http_delete_example.rb +56 -0
- data/spec/contracts/shared_examples/http_get_example.rb +139 -0
- data/spec/contracts/shared_examples/http_patch_example.rb +60 -0
- data/spec/contracts/shared_examples/http_post_example.rb +68 -0
- data/spec/contracts/shared_examples/http_put_example.rb +60 -0
- data/spec/http_client_spec.rb +347 -0
- data/spec/json_formatter_spec.rb +32 -0
- data/spec/quiz_api_client/http_request/failure_spec.rb +100 -0
- data/spec/quiz_api_client/http_request/metrics_spec.rb +75 -0
- data/spec/quiz_api_client_spec.rb +117 -0
- data/spec/services/base_api_service_spec.rb +50 -0
- data/spec/services/interaction_types_service_spec.rb +25 -0
- data/spec/services/item_analyses_service_spec.rb +76 -0
- data/spec/services/items_service_spec.rb +56 -0
- data/spec/services/jwt_service_spec.rb +66 -0
- data/spec/services/qti_imports_service_spec.rb +114 -0
- data/spec/services/quiz_analyses_service_spec.rb +44 -0
- data/spec/services/quiz_clone_job_service_spec.rb +41 -0
- data/spec/services/quiz_clone_jobs_service_spec.rb +77 -0
- data/spec/services/quiz_entries_service_spec.rb +71 -0
- data/spec/services/quiz_service_spec.rb +49 -0
- data/spec/services/quiz_session_events_service_spec.rb +42 -0
- data/spec/services/quiz_session_result_service_spec.rb +26 -0
- data/spec/services/quiz_session_service_spec.rb +49 -0
- data/spec/services/quiz_sessions_service_spec.rb +42 -0
- data/spec/services/quiz_sync_job_service_spec.rb +41 -0
- data/spec/services/quiz_sync_jobs_service_spec.rb +77 -0
- data/spec/services/quizzes_service_spec.rb +71 -0
- data/spec/services/session_item_results_service_spec.rb +33 -0
- data/spec/services/session_items_service_spec.rb +26 -0
- data/spec/spec_helper.rb +42 -0
- data/spec/support/pact_config.rb +64 -0
- data/spec/support/pact_helper.rb +19 -0
- metadata +130 -35
- data/.dockerignore +0 -7
- data/.editorconfig +0 -16
- data/.gitignore +0 -13
- data/.rspec +0 -3
- data/.rubocop.yml +0 -72
- data/CHANGELOG.md +0 -28
- data/Dockerfile +0 -12
- data/Gemfile +0 -5
- data/Jenkinsfile +0 -86
- data/bin/console +0 -7
- data/bin/contracts-generate +0 -26
- data/bin/setup +0 -65
- data/docker-compose.dev.override.yml +0 -11
- data/docker-compose.yml +0 -10
- data/quiz_api_client.gemspec +0 -59
metadata
CHANGED
@@ -1,26 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quiz_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
- Augusto Callejas
|
9
|
-
- Bryan Petty
|
10
|
-
- Christian Prescott
|
11
|
-
- Han Yan
|
7
|
+
- Alex Slaughter
|
12
8
|
- Jayce Higgins
|
13
|
-
-
|
9
|
+
- Jorge Arteaga
|
14
10
|
- Mark Starkman
|
15
|
-
- Michael Brewer-Davis
|
16
11
|
- Michael Hargiss
|
17
|
-
- Omar Khan
|
18
12
|
- Robin Kuss
|
19
13
|
- Ryan Taylor
|
20
14
|
autorequire:
|
21
15
|
bindir: exe
|
22
16
|
cert_chain: []
|
23
|
-
date:
|
17
|
+
date: 2022-06-17 00:00:00.000000000 Z
|
24
18
|
dependencies:
|
25
19
|
- !ruby/object:Gem::Dependency
|
26
20
|
name: httparty
|
@@ -64,6 +58,20 @@ dependencies:
|
|
64
58
|
- - "~>"
|
65
59
|
- !ruby/object:Gem::Version
|
66
60
|
version: '0.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: inst_statsd
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
67
75
|
- !ruby/object:Gem::Dependency
|
68
76
|
name: pact
|
69
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,42 +186,24 @@ dependencies:
|
|
178
186
|
version: '0'
|
179
187
|
description:
|
180
188
|
email:
|
181
|
-
-
|
182
|
-
- bpetty@instructure.com
|
183
|
-
- cprescott@instructure.com
|
184
|
-
- hyan@instructure.com
|
189
|
+
- aslaughter@instructure.com
|
185
190
|
- jhiggins@instructure.com
|
186
|
-
-
|
191
|
+
- jorge.arteaga@instructure.com
|
187
192
|
- mark.starkman@instructure.com
|
188
|
-
- mbd@instructure.com
|
189
193
|
- mhargiss@instructure.com
|
190
|
-
- okhan@instructure.com
|
191
194
|
- rkuss@instructure.com
|
192
195
|
- rtaylor@instructure.com
|
193
|
-
- cwang@instructure.com
|
194
196
|
executables: []
|
195
197
|
extensions: []
|
196
198
|
extra_rdoc_files: []
|
197
199
|
files:
|
198
|
-
- ".dockerignore"
|
199
|
-
- ".editorconfig"
|
200
|
-
- ".gitignore"
|
201
|
-
- ".rspec"
|
202
|
-
- ".rubocop.yml"
|
203
|
-
- CHANGELOG.md
|
204
|
-
- Dockerfile
|
205
|
-
- Gemfile
|
206
|
-
- Jenkinsfile
|
207
200
|
- README.md
|
208
201
|
- Rakefile
|
209
|
-
- bin/console
|
210
|
-
- bin/contracts-generate
|
211
|
-
- bin/setup
|
212
|
-
- docker-compose.dev.override.yml
|
213
|
-
- docker-compose.yml
|
214
202
|
- lib/quiz_api_client.rb
|
215
203
|
- lib/quiz_api_client/config.rb
|
216
204
|
- lib/quiz_api_client/http_client.rb
|
205
|
+
- lib/quiz_api_client/http_request/failure.rb
|
206
|
+
- lib/quiz_api_client/http_request/metrics.rb
|
217
207
|
- lib/quiz_api_client/json_formatter.rb
|
218
208
|
- lib/quiz_api_client/services/base_api_service.rb
|
219
209
|
- lib/quiz_api_client/services/interaction_types_service.rb
|
@@ -230,12 +220,65 @@ files:
|
|
230
220
|
- lib/quiz_api_client/services/quiz_session_result_service.rb
|
231
221
|
- lib/quiz_api_client/services/quiz_session_service.rb
|
232
222
|
- lib/quiz_api_client/services/quiz_sessions_service.rb
|
223
|
+
- lib/quiz_api_client/services/quiz_sync_job_service.rb
|
224
|
+
- lib/quiz_api_client/services/quiz_sync_jobs_service.rb
|
233
225
|
- lib/quiz_api_client/services/quizzes_service.rb
|
234
226
|
- lib/quiz_api_client/services/session_item_results_service.rb
|
235
227
|
- lib/quiz_api_client/services/session_items_service.rb
|
236
228
|
- lib/quiz_api_client/services/shared_banks.rb
|
237
229
|
- lib/quiz_api_client/version.rb
|
238
|
-
-
|
230
|
+
- spec/config_spec.rb
|
231
|
+
- spec/contracts/interaction_types_service_spec.rb
|
232
|
+
- spec/contracts/item_analyses_service_spec.rb
|
233
|
+
- spec/contracts/items_service_spec.rb
|
234
|
+
- spec/contracts/qti_imports_service_spec.rb
|
235
|
+
- spec/contracts/quiz_clone_job_service_spec.rb
|
236
|
+
- spec/contracts/quiz_clone_jobs_service_spec.rb
|
237
|
+
- spec/contracts/quiz_entries_service_spec.rb
|
238
|
+
- spec/contracts/quiz_service_spec.rb
|
239
|
+
- spec/contracts/quiz_session_events_service_spec.rb
|
240
|
+
- spec/contracts/quiz_session_result_service_spec.rb
|
241
|
+
- spec/contracts/quiz_session_service_spec.rb
|
242
|
+
- spec/contracts/quiz_sessions_service_spec.rb
|
243
|
+
- spec/contracts/quiz_sync_job_service_spec.rb
|
244
|
+
- spec/contracts/quiz_sync_jobs_service_spec.rb
|
245
|
+
- spec/contracts/quizzes_service_spec.rb
|
246
|
+
- spec/contracts/session_item_results_service_spec.rb
|
247
|
+
- spec/contracts/session_items_service_spec.rb
|
248
|
+
- spec/contracts/shared_banks_spec.rb
|
249
|
+
- spec/contracts/shared_examples/http_delete_example.rb
|
250
|
+
- spec/contracts/shared_examples/http_get_example.rb
|
251
|
+
- spec/contracts/shared_examples/http_patch_example.rb
|
252
|
+
- spec/contracts/shared_examples/http_post_example.rb
|
253
|
+
- spec/contracts/shared_examples/http_put_example.rb
|
254
|
+
- spec/http_client_spec.rb
|
255
|
+
- spec/json_formatter_spec.rb
|
256
|
+
- spec/quiz_api_client/http_request/failure_spec.rb
|
257
|
+
- spec/quiz_api_client/http_request/metrics_spec.rb
|
258
|
+
- spec/quiz_api_client_spec.rb
|
259
|
+
- spec/services/base_api_service_spec.rb
|
260
|
+
- spec/services/interaction_types_service_spec.rb
|
261
|
+
- spec/services/item_analyses_service_spec.rb
|
262
|
+
- spec/services/items_service_spec.rb
|
263
|
+
- spec/services/jwt_service_spec.rb
|
264
|
+
- spec/services/qti_imports_service_spec.rb
|
265
|
+
- spec/services/quiz_analyses_service_spec.rb
|
266
|
+
- spec/services/quiz_clone_job_service_spec.rb
|
267
|
+
- spec/services/quiz_clone_jobs_service_spec.rb
|
268
|
+
- spec/services/quiz_entries_service_spec.rb
|
269
|
+
- spec/services/quiz_service_spec.rb
|
270
|
+
- spec/services/quiz_session_events_service_spec.rb
|
271
|
+
- spec/services/quiz_session_result_service_spec.rb
|
272
|
+
- spec/services/quiz_session_service_spec.rb
|
273
|
+
- spec/services/quiz_sessions_service_spec.rb
|
274
|
+
- spec/services/quiz_sync_job_service_spec.rb
|
275
|
+
- spec/services/quiz_sync_jobs_service_spec.rb
|
276
|
+
- spec/services/quizzes_service_spec.rb
|
277
|
+
- spec/services/session_item_results_service_spec.rb
|
278
|
+
- spec/services/session_items_service_spec.rb
|
279
|
+
- spec/spec_helper.rb
|
280
|
+
- spec/support/pact_config.rb
|
281
|
+
- spec/support/pact_helper.rb
|
239
282
|
homepage:
|
240
283
|
licenses: []
|
241
284
|
metadata: {}
|
@@ -254,8 +297,60 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
254
297
|
- !ruby/object:Gem::Version
|
255
298
|
version: '0'
|
256
299
|
requirements: []
|
257
|
-
rubygems_version: 3.1.
|
300
|
+
rubygems_version: 3.1.4
|
258
301
|
signing_key:
|
259
302
|
specification_version: 4
|
260
303
|
summary: Ruby client for quiz_api
|
261
|
-
test_files:
|
304
|
+
test_files:
|
305
|
+
- spec/config_spec.rb
|
306
|
+
- spec/contracts/interaction_types_service_spec.rb
|
307
|
+
- spec/contracts/item_analyses_service_spec.rb
|
308
|
+
- spec/contracts/items_service_spec.rb
|
309
|
+
- spec/contracts/qti_imports_service_spec.rb
|
310
|
+
- spec/contracts/quiz_clone_job_service_spec.rb
|
311
|
+
- spec/contracts/quiz_clone_jobs_service_spec.rb
|
312
|
+
- spec/contracts/quiz_entries_service_spec.rb
|
313
|
+
- spec/contracts/quiz_service_spec.rb
|
314
|
+
- spec/contracts/quiz_session_events_service_spec.rb
|
315
|
+
- spec/contracts/quiz_session_result_service_spec.rb
|
316
|
+
- spec/contracts/quiz_session_service_spec.rb
|
317
|
+
- spec/contracts/quiz_sessions_service_spec.rb
|
318
|
+
- spec/contracts/quiz_sync_job_service_spec.rb
|
319
|
+
- spec/contracts/quiz_sync_jobs_service_spec.rb
|
320
|
+
- spec/contracts/quizzes_service_spec.rb
|
321
|
+
- spec/contracts/session_item_results_service_spec.rb
|
322
|
+
- spec/contracts/session_items_service_spec.rb
|
323
|
+
- spec/contracts/shared_banks_spec.rb
|
324
|
+
- spec/contracts/shared_examples/http_delete_example.rb
|
325
|
+
- spec/contracts/shared_examples/http_get_example.rb
|
326
|
+
- spec/contracts/shared_examples/http_patch_example.rb
|
327
|
+
- spec/contracts/shared_examples/http_post_example.rb
|
328
|
+
- spec/contracts/shared_examples/http_put_example.rb
|
329
|
+
- spec/http_client_spec.rb
|
330
|
+
- spec/json_formatter_spec.rb
|
331
|
+
- spec/quiz_api_client/http_request/failure_spec.rb
|
332
|
+
- spec/quiz_api_client/http_request/metrics_spec.rb
|
333
|
+
- spec/quiz_api_client_spec.rb
|
334
|
+
- spec/services/base_api_service_spec.rb
|
335
|
+
- spec/services/interaction_types_service_spec.rb
|
336
|
+
- spec/services/item_analyses_service_spec.rb
|
337
|
+
- spec/services/items_service_spec.rb
|
338
|
+
- spec/services/jwt_service_spec.rb
|
339
|
+
- spec/services/qti_imports_service_spec.rb
|
340
|
+
- spec/services/quiz_analyses_service_spec.rb
|
341
|
+
- spec/services/quiz_clone_job_service_spec.rb
|
342
|
+
- spec/services/quiz_clone_jobs_service_spec.rb
|
343
|
+
- spec/services/quiz_entries_service_spec.rb
|
344
|
+
- spec/services/quiz_service_spec.rb
|
345
|
+
- spec/services/quiz_session_events_service_spec.rb
|
346
|
+
- spec/services/quiz_session_result_service_spec.rb
|
347
|
+
- spec/services/quiz_session_service_spec.rb
|
348
|
+
- spec/services/quiz_sessions_service_spec.rb
|
349
|
+
- spec/services/quiz_sync_job_service_spec.rb
|
350
|
+
- spec/services/quiz_sync_jobs_service_spec.rb
|
351
|
+
- spec/services/quizzes_service_spec.rb
|
352
|
+
- spec/services/session_item_results_service_spec.rb
|
353
|
+
- spec/services/session_items_service_spec.rb
|
354
|
+
- spec/spec_helper.rb
|
355
|
+
- spec/support/pact_config.rb
|
356
|
+
- spec/support/pact_helper.rb
|
data/.dockerignore
DELETED
data/.editorconfig
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# .editorconfig
|
2
|
-
# Please install EditorConfig plugin for your editor or IDE
|
3
|
-
# Usage and plugin list can be found here: http://EditorConfig.org
|
4
|
-
|
5
|
-
# top-most EditorConfig file
|
6
|
-
root = true
|
7
|
-
|
8
|
-
[*]
|
9
|
-
end_of_line = lf
|
10
|
-
indent_style = space
|
11
|
-
indent_size = 2
|
12
|
-
insert_final_newline = true
|
13
|
-
trim_trailing_whitespace = true
|
14
|
-
|
15
|
-
[*.md]
|
16
|
-
indent_size = 4
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
AllCops:
|
2
|
-
TargetRubyVersion: 2.6
|
3
|
-
|
4
|
-
Metrics/ClassLength:
|
5
|
-
Max: 200 # Default: 100
|
6
|
-
|
7
|
-
Metrics/LineLength:
|
8
|
-
Max: 120 # Default: 80
|
9
|
-
|
10
|
-
Metrics/MethodLength:
|
11
|
-
Max: 20 # Default: 10
|
12
|
-
|
13
|
-
Metrics/BlockLength:
|
14
|
-
Max: 30
|
15
|
-
Exclude:
|
16
|
-
- quiz_api_client.gemspec
|
17
|
-
- spec/**/*.rb
|
18
|
-
|
19
|
-
Naming/MemoizedInstanceVariableName:
|
20
|
-
EnforcedStyleForLeadingUnderscores: required
|
21
|
-
|
22
|
-
Layout/AlignParameters:
|
23
|
-
# Alignment of parameters in multi-line method calls.
|
24
|
-
#
|
25
|
-
# The `with_fixed_indentation` style aligns the following lines with one
|
26
|
-
# level of indentation relative to the start of the line with the method call.
|
27
|
-
#
|
28
|
-
# method_call(a,
|
29
|
-
# b)
|
30
|
-
EnforcedStyle: with_fixed_indentation
|
31
|
-
|
32
|
-
Layout/CaseIndentation:
|
33
|
-
EnforcedStyle: end
|
34
|
-
|
35
|
-
Layout/EndAlignment:
|
36
|
-
EnforcedStyleAlignWith: variable
|
37
|
-
|
38
|
-
Style/ClassAndModuleChildren:
|
39
|
-
# Checks the style of children definitions at classes and modules.
|
40
|
-
#
|
41
|
-
# Basically there are two different styles:
|
42
|
-
#
|
43
|
-
# `nested` - have each child on a separate line
|
44
|
-
# class Foo
|
45
|
-
# class Bar
|
46
|
-
# end
|
47
|
-
# end
|
48
|
-
#
|
49
|
-
# `compact` - combine definitions as much as possible
|
50
|
-
# class Foo::Bar
|
51
|
-
# end
|
52
|
-
#
|
53
|
-
# The compact style is only forced, for classes / modules with one child.
|
54
|
-
EnforcedStyle: nested
|
55
|
-
Enabled: false
|
56
|
-
|
57
|
-
Style/Documentation:
|
58
|
-
# This cop checks for missing top-level documentation of classes and modules.
|
59
|
-
# Classes with no body and namespace modules are exempt from the check.
|
60
|
-
# Namespace modules are modules that have nothing in their bodies except
|
61
|
-
# classes or other modules.
|
62
|
-
Enabled: false
|
63
|
-
|
64
|
-
Style/FrozenStringLiteralComment:
|
65
|
-
# `always` will always add the frozen string literal comment to a file
|
66
|
-
# regardless of the Ruby version or if `freeze` or `<<` are called on a
|
67
|
-
# string literal. If you run code against multiple versions of Ruby, it is
|
68
|
-
# possible that this will create errors in Ruby 2.3.0+.
|
69
|
-
#
|
70
|
-
# See: https://wyeworks.com/blog/2015/12/1/immutable-strings-in-ruby-2-dot-3
|
71
|
-
EnforcedStyle: always
|
72
|
-
Enabled: false
|
data/CHANGELOG.md
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
CHANGELOG
|
2
|
-
=========
|
3
|
-
|
4
|
-
All notable changes to this project will be documented in this file. This
|
5
|
-
project adheres to [Semantic Versioning](http://semver.org/).
|
6
|
-
|
7
|
-
[TOC]
|
8
|
-
|
9
|
-
## 4.1.0 (2021-10-27)
|
10
|
-
|
11
|
-
### Breaking changes (potentially)
|
12
|
-
|
13
|
-
* All non-successful (2xx) responses will raise `QuizApiClient::HttpClient::RequestFailed` error except for 401 and 422
|
14
|
-
* Can be overridden in `allowable_response_codes` config
|
15
|
-
|
16
|
-
## 4.0.0 (2021-10-18)
|
17
|
-
|
18
|
-
### Breaking changes
|
19
|
-
|
20
|
-
* Ruby 2.4.x is no longer supported
|
21
|
-
* Ruby 2.5.x is no longer supported
|
22
|
-
|
23
|
-
### Changed
|
24
|
-
* Minimum Ruby version to 2.6.x
|
25
|
-
* Internal classes use a configuration object instead parameters on instantiation
|
26
|
-
* Instantiating `QuizApiClient::Client` remains the same
|
27
|
-
* Added `error_handler` configuration to work with Sentry Raven gem
|
28
|
-
|
data/Dockerfile
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
FROM instructure/rvm
|
2
|
-
|
3
|
-
RUN mkdir -p coverage log pacts
|
4
|
-
|
5
|
-
COPY --chown=docker:docker quiz_api_client.gemspec Gemfile ./
|
6
|
-
COPY --chown=docker:docker lib/quiz_api_client/version.rb lib/quiz_api_client/version.rb
|
7
|
-
RUN /bin/bash -l -c "rvm-exec 2.6 gem install bundler -v 2.1.4"
|
8
|
-
RUN /bin/bash -l -c "rvm-exec 2.6 bundle install --jobs 5"
|
9
|
-
|
10
|
-
COPY --chown=docker:docker . .
|
11
|
-
|
12
|
-
CMD /bin/bash -l -c "rvm-exec 2.6 bundle exec rspec"
|
data/Gemfile
DELETED
data/Jenkinsfile
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
def buildMatrix = ['2.6', '2.7'].collectEntries { ruby ->
|
2
|
-
["Ruby ${ruby}": {
|
3
|
-
sh """
|
4
|
-
docker-compose run --name "${env.BUILD_ID}-ruby-${ruby}" \
|
5
|
-
app /bin/bash -lc "rvm-exec ${ruby} bundle install --jobs 5 && rvm-exec ${ruby} bundle exec rspec"
|
6
|
-
"""
|
7
|
-
}]
|
8
|
-
}
|
9
|
-
|
10
|
-
pipeline {
|
11
|
-
agent {
|
12
|
-
label 'docker'
|
13
|
-
}
|
14
|
-
options {
|
15
|
-
buildDiscarder(logRotator(numToKeepStr: '50'))
|
16
|
-
timeout(time: 20, unit: 'MINUTES')
|
17
|
-
}
|
18
|
-
stages {
|
19
|
-
stage('Build') {
|
20
|
-
steps {
|
21
|
-
sh 'docker-compose build --pull'
|
22
|
-
}
|
23
|
-
}
|
24
|
-
stage('Lint') {
|
25
|
-
steps {
|
26
|
-
sh '''
|
27
|
-
docker-compose run --rm app /bin/bash -lc \
|
28
|
-
"rvm-exec 2.6 bundle exec rubocop --fail-level autocorrect"
|
29
|
-
'''
|
30
|
-
}
|
31
|
-
}
|
32
|
-
stage('Unit Tests') {
|
33
|
-
steps { script { parallel buildMatrix } }
|
34
|
-
}
|
35
|
-
stage('Contract Tests') {
|
36
|
-
steps {
|
37
|
-
sh 'docker-compose run app /bin/bash -l -c "rvm-exec 2.6 bundle exec rspec -t pact"'
|
38
|
-
}
|
39
|
-
}
|
40
|
-
stage ('Publish') {
|
41
|
-
when { environment name: "GERRIT_EVENT_TYPE", value: "change-merged"}
|
42
|
-
environment {
|
43
|
-
PACT_BROKER_PASSWORD = credentials('pact_broker_password')
|
44
|
-
JENKINS_URL = "${env.JENKINS_URL}"
|
45
|
-
PACT_CONSUMER_TAG = 'master'
|
46
|
-
PACT_BROKER_USERNAME = 'quizzes'
|
47
|
-
PACT_BROKER_HOST = 'inst-pact-broker.inseng.net'
|
48
|
-
}
|
49
|
-
steps {
|
50
|
-
script {
|
51
|
-
sh '''
|
52
|
-
sha="$(git rev-parse --short HEAD)"
|
53
|
-
|
54
|
-
docker-compose run --rm \
|
55
|
-
-e JENKINS_URL="${JENKINS_URL}" \
|
56
|
-
-e PACT_BROKER_HOST="${PACT_BROKER_HOST}" \
|
57
|
-
-e PACT_BROKER_USERNAME="${PACT_BROKER_USERNAME}" \
|
58
|
-
-e PACT_BROKER_PASSWORD="${PACT_BROKER_PASSWORD}" \
|
59
|
-
-e PACT_CONSUMER_TAG="${PACT_CONSUMER_TAG}" \
|
60
|
-
-e SHA="${sha}" \
|
61
|
-
app /bin/bash -l -c "rvm-exec 2.6 bundle exec rake broker:pact:publish:jenkins_post_merge"
|
62
|
-
'''
|
63
|
-
}
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
|
68
|
-
post {
|
69
|
-
success {
|
70
|
-
sh "docker cp \"${env.BUILD_ID}-ruby-2.6:/usr/src/app/coverage\" ."
|
71
|
-
publishHTML target: [
|
72
|
-
allowMissing: false,
|
73
|
-
alwaysLinkToLastBuild: false,
|
74
|
-
keepAll: true,
|
75
|
-
reportDir: "coverage",
|
76
|
-
reportFiles: 'index.html',
|
77
|
-
reportName: 'Coverage Report'
|
78
|
-
]
|
79
|
-
}
|
80
|
-
cleanup { // Always runs after all other post conditions=
|
81
|
-
sh 'docker-compose kill'
|
82
|
-
sh 'docker-compose rm -f'
|
83
|
-
sh 'docker images -qf "dangling=true" | xargs docker rmi -f &>/dev/null'
|
84
|
-
}
|
85
|
-
}
|
86
|
-
}
|
data/bin/console
DELETED
data/bin/contracts-generate
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
function print_results() {
|
4
|
-
exit_code=$?
|
5
|
-
set +e
|
6
|
-
|
7
|
-
if [[ "$exit_code" == "0" ]]; then
|
8
|
-
echo "Success! Open http://pact-broker.docker to view your published pact file."
|
9
|
-
else
|
10
|
-
echo "Oops! Something went wrong."
|
11
|
-
fi
|
12
|
-
|
13
|
-
docker cp contracts:/usr/src/app/log . &> /dev/null
|
14
|
-
docker cp contracts:/usr/src/app/pacts . &> /dev/null
|
15
|
-
docker rm -f contracts &> /dev/null
|
16
|
-
|
17
|
-
docker-compose rm -fv app &> /dev/null
|
18
|
-
}
|
19
|
-
trap print_results INT TERM EXIT
|
20
|
-
set -e
|
21
|
-
|
22
|
-
rm -rf pacts
|
23
|
-
sha="$(git rev-parse --short HEAD)"
|
24
|
-
|
25
|
-
docker-compose run --name contracts -e SHA="${sha}" app bash -l -c \
|
26
|
-
"bundle && bundle exec rspec --tag pact && bundle exec rake broker:pact:publish:local"
|
data/bin/setup
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
function print_results() {
|
4
|
-
exit_code=$?
|
5
|
-
set +e
|
6
|
-
|
7
|
-
echo ""
|
8
|
-
|
9
|
-
if [[ "$exit_code" == "0" ]]; then
|
10
|
-
echo "Success!"
|
11
|
-
else
|
12
|
-
echo "Something went wrong! Check the output above for details."
|
13
|
-
fi
|
14
|
-
}
|
15
|
-
trap print_results INT TERM EXIT
|
16
|
-
set -e
|
17
|
-
|
18
|
-
OSNAME=$(uname | tr "[:upper:]" "[:lower:]")
|
19
|
-
|
20
|
-
function generate_docker_override_os () {
|
21
|
-
sed -E "s/#(.*# ${OSNAME}$)/\1/"
|
22
|
-
}
|
23
|
-
|
24
|
-
function generate_docker_override_filesystem () {
|
25
|
-
if [ -z "${IGNORE_FILESYSTEM_OVERRIDE}" ]; then
|
26
|
-
sed -E "s/#(.*# ${OSNAME}:fs)/\1/"
|
27
|
-
else
|
28
|
-
cat
|
29
|
-
fi
|
30
|
-
}
|
31
|
-
|
32
|
-
function generate_docker_override() {
|
33
|
-
if [ -e docker-compose.override.yml ]; then
|
34
|
-
echo "We found an existing docker-compose.override.yml"
|
35
|
-
echo ""
|
36
|
-
echo "You'll want to merge that file with the version controlled
|
37
|
-
docker-compose.dev.override.yml file to make sure you've got
|
38
|
-
the most recent changes"
|
39
|
-
echo ""
|
40
|
-
else
|
41
|
-
echo "we are building the development example override file to docker-compose.override.yml for you"
|
42
|
-
generate_docker_override_os < docker-compose.dev.override.yml | \
|
43
|
-
generate_docker_override_filesystem > docker-compose.override.yml
|
44
|
-
fi
|
45
|
-
}
|
46
|
-
|
47
|
-
function os_linux_specific_setup() {
|
48
|
-
mkdir -p log pacts
|
49
|
-
}
|
50
|
-
|
51
|
-
os_specific_setup() {
|
52
|
-
echo Configuring for "${OSNAME}"
|
53
|
-
case ${OSNAME} in
|
54
|
-
linux)
|
55
|
-
os_linux_specific_setup
|
56
|
-
;;
|
57
|
-
esac
|
58
|
-
}
|
59
|
-
|
60
|
-
os_specific_setup
|
61
|
-
generate_docker_override
|
62
|
-
|
63
|
-
echo ""
|
64
|
-
echo "Preparing environment for native development..."
|
65
|
-
bundle install
|
@@ -1,11 +0,0 @@
|
|
1
|
-
version: '3.5'
|
2
|
-
|
3
|
-
services:
|
4
|
-
app:
|
5
|
-
# This port doesn't exist, but doing this tricks Dory proxy into hooking up
|
6
|
-
# the container so it can actually talk to the Pact Broker.
|
7
|
-
expose: [8080]
|
8
|
-
external_links:
|
9
|
-
- ${PROXY_CONTAINER:-dinghy_http_proxy}:pact-broker.docker
|
10
|
-
volumes:
|
11
|
-
- .:/usr/src/app
|
data/docker-compose.yml
DELETED
data/quiz_api_client.gemspec
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
lib = File.expand_path('lib', __dir__)
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require 'quiz_api_client/version'
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = 'quiz_api_client'
|
7
|
-
spec.version = QuizApiClient::VERSION
|
8
|
-
spec.authors = [
|
9
|
-
'Chris Wang',
|
10
|
-
'Augusto Callejas',
|
11
|
-
'Bryan Petty',
|
12
|
-
'Christian Prescott',
|
13
|
-
'Han Yan',
|
14
|
-
'Jayce Higgins',
|
15
|
-
'Marc Alan Phillips',
|
16
|
-
'Mark Starkman',
|
17
|
-
'Michael Brewer-Davis',
|
18
|
-
'Michael Hargiss',
|
19
|
-
'Omar Khan',
|
20
|
-
'Robin Kuss',
|
21
|
-
'Ryan Taylor'
|
22
|
-
]
|
23
|
-
spec.email = [
|
24
|
-
'acallejas@instructure.com',
|
25
|
-
'bpetty@instructure.com',
|
26
|
-
'cprescott@instructure.com',
|
27
|
-
'hyan@instructure.com',
|
28
|
-
'jhiggins@instructure.com',
|
29
|
-
'mphillips@instructure.com',
|
30
|
-
'mark.starkman@instructure.com',
|
31
|
-
'mbd@instructure.com',
|
32
|
-
'mhargiss@instructure.com',
|
33
|
-
'okhan@instructure.com',
|
34
|
-
'rkuss@instructure.com',
|
35
|
-
'rtaylor@instructure.com',
|
36
|
-
'cwang@instructure.com'
|
37
|
-
]
|
38
|
-
spec.summary = 'Ruby client for quiz_api'
|
39
|
-
|
40
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
41
|
-
spec.bindir = 'exe'
|
42
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
43
|
-
spec.require_paths = ['lib']
|
44
|
-
|
45
|
-
spec.required_ruby_version = '>= 2.6'
|
46
|
-
|
47
|
-
spec.add_dependency 'httparty', '~> 0.17'
|
48
|
-
spec.add_dependency 'jwt', '~> 2.2'
|
49
|
-
spec.add_dependency 'link_header', '~> 0.0'
|
50
|
-
|
51
|
-
spec.add_development_dependency 'pact', '~> 1.41'
|
52
|
-
spec.add_development_dependency 'pact_broker-client', '~> 1.19'
|
53
|
-
spec.add_development_dependency 'rake', '~> 12.3'
|
54
|
-
spec.add_development_dependency 'rspec', '~> 3.8'
|
55
|
-
spec.add_development_dependency 'rubocop', '~> 0.74.0'
|
56
|
-
spec.add_development_dependency 'sentry-raven', '~> 3.1'
|
57
|
-
spec.add_development_dependency 'simplecov'
|
58
|
-
spec.add_development_dependency 'webmock'
|
59
|
-
end
|