pact_broker 2.33.0 → 2.34.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/.ruby-version +1 -1
- data/CHANGELOG.md +19 -0
- data/DEVELOPER_SETUP.md +19 -1
- data/lib/pact_broker/api/resources/pacticipant.rb +1 -1
- data/lib/pact_broker/api/resources/pacticipants.rb +1 -1
- data/lib/pact_broker/doc/views/webhooks.markdown +2 -1
- data/lib/pact_broker/pacticipants/repository.rb +3 -0
- data/lib/pact_broker/pacticipants/service.rb +2 -4
- data/lib/pact_broker/version.rb +1 -1
- data/lib/pact_broker/webhooks/job.rb +1 -1
- data/lib/pact_broker/webhooks/pact_and_verification_parameters.rb +8 -0
- data/lib/pact_broker/webhooks/repository.rb +5 -1
- data/lib/pact_broker/webhooks/service.rb +2 -2
- data/lib/pact_broker/webhooks/trigger_service.rb +4 -4
- data/lib/rack/pact_broker/database_transaction.rb +2 -17
- data/spec/lib/pact_broker/api/resources/pacticipants_spec.rb +1 -1
- data/spec/lib/pact_broker/webhooks/render_spec.rb +6 -0
- data/spec/lib/pact_broker/webhooks/service_spec.rb +1 -1
- data/spec/lib/pact_broker/webhooks/trigger_service_spec.rb +4 -4
- data/spec/lib/rack/pact_broker/database_transaction_spec.rb +18 -41
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe2b3ac695d8a843322fa534dfeab9fe17956c99
|
4
|
+
data.tar.gz: 7f0fccfb8bc7b2713feb0effa685e2773ad2a90b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c339fb970aa844ebfb4efb48055a7807641076cbcad153f93a7f03df9631a86e6d36a3ad36f804d0e72f63f621805cad0fb872a609ed25399b59107f38ecaa4
|
7
|
+
data.tar.gz: 2b55bccea03acdd7304abf226109abb0a21a86b0aa43f18f4c92743b4b2e6bc5ab24e5f81cc9c10b761b86eba55038a47a94392d194cde790d841dd75df26751
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.3
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
<a name="v2.34.0"></a>
|
2
|
+
### v2.34.0 (2019-06-14)
|
3
|
+
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* **webhooks**
|
8
|
+
* provide mapping to bitbucket build status names (#277) ([7bdf0c47](/../../commit/7bdf0c47))
|
9
|
+
|
10
|
+
* change log level for webhook triggering logs from debug to info ([2dca79c1](/../../commit/2dca79c1))
|
11
|
+
|
12
|
+
|
13
|
+
#### Bug Fixes
|
14
|
+
|
15
|
+
* gracefully handle two requests coming in at the same time to create the same pacticipant ([78d92ada](/../../commit/78d92ada))
|
16
|
+
* gracefully handle pact webhook status when there is no pact yet ([ba1f6bc7](/../../commit/ba1f6bc7))
|
17
|
+
* do not overwrite existing pactbroker.database_connector in rack env ([0da5d070](/../../commit/0da5d070))
|
18
|
+
|
19
|
+
|
1
20
|
<a name="v2.33.0"></a>
|
2
21
|
### v2.33.0 (2019-06-07)
|
3
22
|
|
data/DEVELOPER_SETUP.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Developer setup
|
2
2
|
|
3
|
-
* You will need to install Ruby 2.
|
3
|
+
* You will need to install Ruby 2.5, and preferably a ruby version manager. I recommend using [chruby][chruby] and [ruby-install][ruby-install].
|
4
4
|
* Install bundler (the Ruby gem dependency manager) `gem install bundler`
|
5
5
|
* Check out the pact_broker repository and cd into it.
|
6
6
|
* Run `bundle install`. If you have not got mysql or postgres installed locally, comment out the `mysql2` and `pg` development dependency lines in `pact_broker.gemspec`, as these are only really required on Travis.
|
@@ -13,5 +13,23 @@
|
|
13
13
|
|
14
14
|
* The application will be available on `http://localhost:9292`
|
15
15
|
|
16
|
+
## Running the tests
|
17
|
+
|
18
|
+
To run everything (specs, pact verifications, vulnerability scan...):
|
19
|
+
|
20
|
+
`bundle exec rake`
|
21
|
+
|
22
|
+
To run a smaller subset of the tests:
|
23
|
+
|
24
|
+
`bundle exec rake spec`
|
25
|
+
|
26
|
+
To run the "quick tests" (skip the lengthy migration specs)
|
27
|
+
|
28
|
+
`bundle exec rake spec:quick`
|
29
|
+
|
30
|
+
To run a single spec:
|
31
|
+
|
32
|
+
`bundle exec rspec path_to_your_spec.rb`
|
33
|
+
|
16
34
|
[chruby]: https://github.com/postmodern/chruby
|
17
35
|
[ruby-install]: https://github.com/postmodern/ruby-install
|
@@ -34,7 +34,7 @@ module PactBroker
|
|
34
34
|
if pacticipant
|
35
35
|
@pacticipant = pacticipant_service.update params_with_string_keys.merge('name' => pacticipant_name)
|
36
36
|
else
|
37
|
-
@pacticipant = pacticipant_service.create
|
37
|
+
@pacticipant = pacticipant_service.create params.merge(:name => pacticipant_name)
|
38
38
|
response.headers["Location"] = pacticipant_url(base_url, pacticipant)
|
39
39
|
end
|
40
40
|
response.body = to_json
|
@@ -32,7 +32,7 @@ module PactBroker
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def from_json
|
35
|
-
created_model = pacticipant_service.create
|
35
|
+
created_model = pacticipant_service.create(params)
|
36
36
|
response.body = decorator_for(created_model).to_json(user_options: decorator_context)
|
37
37
|
end
|
38
38
|
|
@@ -78,7 +78,7 @@ To specify an XML body, you will need to use a correctly escaped string (or use
|
|
78
78
|
|
79
79
|
`contract_published:` triggered every time a contract is published. It is not recommended to trigger your provider verification build every time a contract is published - see `contract_content_changed` below.
|
80
80
|
|
81
|
-
`contract_content_changed:` triggered when the content of the contract
|
81
|
+
`contract_content_changed:` triggered when the content of the contract, or tags applied to the contract have changed since the previous publication. If `base_equality_only_on_content_that_affects_verification_results` is set to `true` in the configuration (the default), any changes to whitespace, ordering of keys, or the ordering of the `interactions` or `messages` will be ignored, and will not trigger this event. It is recommended to trigger a provider verification build for this event.
|
82
82
|
|
83
83
|
`provider_verification_published:` triggered whenever a provider publishes a verification.
|
84
84
|
|
@@ -95,6 +95,7 @@ The following variables may be used in the request path, parameters or body, and
|
|
95
95
|
* `${pactbroker.consumerLabels}`: the list of labels for the consumer associated with the pact content, separated by ", ".
|
96
96
|
* `${pactbroker.providerLabels}`: the list of labels for the provider associated with the pact content, separated by ", ".
|
97
97
|
* `${pactbroker.githubVerificationStatus}`: the verification status using the correct keywords for posting to the the [Github commit status API](https://developer.github.com/v3/repos/statuses).
|
98
|
+
* `${pactbroker.bitbucketVerificationStatus}`: the verification status using the correct keywords for posting to the the [Bitbucket commit status API](https://developer.atlassian.com/server/bitbucket/how-tos/updating-build-status-for-commits/).
|
98
99
|
* `${pactbroker.pactUrl}`: the "permalink" URL to the newly published pact (the URL specifying the consumer version URL, rather than the "/latest" format.)
|
99
100
|
* `${pactbroker.verificationResultUrl}`: the URL to the relevant verification result.
|
100
101
|
|
@@ -41,6 +41,9 @@ module PactBroker
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
+
# Need to be able to handle two calls that make the pacticipant at the same time.
|
45
|
+
# TODO raise error if attributes apart from name are different, because this indicates that
|
46
|
+
# the second request is not at the same time.
|
44
47
|
def create args
|
45
48
|
PactBroker::Domain::Pacticipant.dataset.insert_ignore.insert(
|
46
49
|
name: args[:name],
|
@@ -58,6 +58,7 @@ module PactBroker
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def self.update params
|
61
|
+
# TODO move this to the repository!
|
61
62
|
pacticipant = pacticipant_repository.find_by_name(params.fetch('name'))
|
62
63
|
PactBroker::Api::Decorators::PacticipantDecorator.new(pacticipant).from_hash(params)
|
63
64
|
pacticipant.save
|
@@ -65,10 +66,7 @@ module PactBroker
|
|
65
66
|
end
|
66
67
|
|
67
68
|
def self.create params
|
68
|
-
|
69
|
-
PactBroker::Api::Decorators::PacticipantDecorator.new(pacticipant).from_hash(params)
|
70
|
-
pacticipant.save
|
71
|
-
pacticipant
|
69
|
+
pacticipant_repository.create(params)
|
72
70
|
end
|
73
71
|
|
74
72
|
def self.delete name
|
data/lib/pact_broker/version.rb
CHANGED
@@ -88,7 +88,7 @@ module PactBroker
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def reschedule_job
|
91
|
-
logger.
|
91
|
+
logger.info "Re-enqeuing job for webhook #{triggered_webhook.webhook_uuid} to run in #{backoff_time} seconds"
|
92
92
|
Job.perform_in(backoff_time, @data.merge(error_count: error_count+1))
|
93
93
|
end
|
94
94
|
|
@@ -20,6 +20,7 @@ module PactBroker
|
|
20
20
|
'${pactbroker.consumerName}' => pact ? pact.consumer_name : "",
|
21
21
|
'${pactbroker.providerName}' => pact ? pact.provider_name : "",
|
22
22
|
'${pactbroker.githubVerificationStatus}' => github_verification_status,
|
23
|
+
'${pactbroker.bitbucketVerificationStatus}' => bitbucket_verification_status,
|
23
24
|
'${pactbroker.consumerLabels}' => pacticipant_labels(pact && pact.consumer),
|
24
25
|
'${pactbroker.providerLabels}' => pacticipant_labels(pact && pact.provider)
|
25
26
|
}
|
@@ -29,6 +30,13 @@ module PactBroker
|
|
29
30
|
|
30
31
|
attr_reader :pact, :verification, :webhook_context, :base_url
|
31
32
|
|
33
|
+
def bitbucket_verification_status
|
34
|
+
if verification
|
35
|
+
verification.success ? "SUCCESSFUL" : "FAILED"
|
36
|
+
else
|
37
|
+
"INPROGRESS"
|
38
|
+
end
|
39
|
+
end
|
32
40
|
|
33
41
|
def github_verification_status
|
34
42
|
if verification
|
@@ -164,7 +164,11 @@ module PactBroker
|
|
164
164
|
end
|
165
165
|
|
166
166
|
def find_latest_triggered_webhooks_for_pact pact
|
167
|
-
|
167
|
+
if pact
|
168
|
+
find_latest_triggered_webhooks(pact.consumer, pact.provider)
|
169
|
+
else
|
170
|
+
[]
|
171
|
+
end
|
168
172
|
end
|
169
173
|
|
170
174
|
def find_latest_triggered_webhooks consumer, provider
|
@@ -122,7 +122,7 @@ module PactBroker
|
|
122
122
|
if webhooks.any?
|
123
123
|
run_later(webhooks, pact, verification, event_name, options)
|
124
124
|
else
|
125
|
-
logger.
|
125
|
+
logger.info "No enabled webhooks found for consumer \"#{pact.consumer.name}\" and provider \"#{pact.provider.name}\" and event #{event_name}"
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -131,7 +131,7 @@ module PactBroker
|
|
131
131
|
webhooks.each do | webhook |
|
132
132
|
begin
|
133
133
|
triggered_webhook = webhook_repository.create_triggered_webhook(trigger_uuid, webhook, pact, verification, RESOURCE_CREATION)
|
134
|
-
logger.info "Scheduling job for
|
134
|
+
logger.info "Scheduling job for webhook with uuid #{webhook.uuid}"
|
135
135
|
job_data = {
|
136
136
|
triggered_webhook: triggered_webhook,
|
137
137
|
webhook_context: options.fetch(:webhook_context),
|
@@ -14,7 +14,7 @@ module PactBroker
|
|
14
14
|
if pact_is_new_or_newly_tagged_or_pact_has_changed_since_previous_version?(pact)
|
15
15
|
webhook_service.trigger_webhooks pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_CONTENT_CHANGED, webhook_options
|
16
16
|
else
|
17
|
-
logger.
|
17
|
+
logger.info "Pact content has not changed since previous version, not triggering webhooks for changed content"
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -22,10 +22,10 @@ module PactBroker
|
|
22
22
|
webhook_service.trigger_webhooks updated_pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_PUBLISHED, webhook_options
|
23
23
|
# TODO this should use the sha!
|
24
24
|
if existing_pact.pact_version_sha != updated_pact.pact_version_sha
|
25
|
-
logger.
|
25
|
+
logger.info "Existing pact for version #{existing_pact.consumer_version_number} has been updated with new content, triggering webhooks for changed content"
|
26
26
|
webhook_service.trigger_webhooks updated_pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_CONTENT_CHANGED, webhook_options
|
27
27
|
else
|
28
|
-
logger.
|
28
|
+
logger.info "Pact content has not changed since previous revision, not triggering webhooks for changed content"
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -60,7 +60,7 @@ module PactBroker
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
63
|
-
logger.
|
63
|
+
logger.info("Webhook triggered for the following reasons: #{messages.join(',')}" )
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
@@ -20,18 +20,16 @@ module Rack
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def call env
|
23
|
-
set_database_connector
|
24
23
|
if use_transaction? env
|
25
24
|
call_with_transaction(add_database_connector(env))
|
26
25
|
else
|
27
26
|
call_without_transaction(add_database_connector(env))
|
28
27
|
end
|
29
|
-
ensure
|
30
|
-
clear_database_connector
|
31
28
|
end
|
32
29
|
|
33
30
|
def add_database_connector(env)
|
34
|
-
|
31
|
+
# maintain any existing one set by previous middleware
|
32
|
+
{ "pactbroker.database_connector" => @default_database_connector }.merge(env)
|
35
33
|
end
|
36
34
|
|
37
35
|
def use_transaction? env
|
@@ -56,19 +54,6 @@ module Rack
|
|
56
54
|
def do_not_rollback? response
|
57
55
|
response[1].delete(::PactBroker::DO_NOT_ROLLBACK)
|
58
56
|
end
|
59
|
-
|
60
|
-
def set_database_connector
|
61
|
-
Thread.current[:pact_broker_thread_data] ||= OpenStruct.new
|
62
|
-
Thread.current[:pact_broker_thread_data].database_connector ||= @default_database_connector
|
63
|
-
end
|
64
|
-
|
65
|
-
def clear_database_connector
|
66
|
-
if thread_data = Thread.current[:pact_broker_thread_data]
|
67
|
-
if thread_data.database_connector == @default_database_connector
|
68
|
-
thread_data.database_connector = nil
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
57
|
end
|
73
58
|
end
|
74
59
|
end
|
@@ -47,7 +47,7 @@ module PactBroker
|
|
47
47
|
|
48
48
|
context "with valid JSON" do
|
49
49
|
it "creates the pacticipant" do
|
50
|
-
expect(PactBroker::Pacticipants::Service).to receive(:create).with(
|
50
|
+
expect(PactBroker::Pacticipants::Service).to receive(:create).with(:name => 'New Consumer')
|
51
51
|
subject
|
52
52
|
end
|
53
53
|
|
@@ -112,6 +112,12 @@ module PactBroker
|
|
112
112
|
["${pactbroker.githubVerificationStatus}", "pending", :pact_with_no_verification, :nil_verification],
|
113
113
|
["${pactbroker.githubVerificationStatus}", "success", :pact_with_successful_verification, :nil_verification],
|
114
114
|
["${pactbroker.githubVerificationStatus}", "failure", :pact_with_failed_verification, :nil_verification],
|
115
|
+
["${pactbroker.bitbucketVerificationStatus}", "SUCCESSFUL", :pact, :verification],
|
116
|
+
["${pactbroker.bitbucketVerificationStatus}", "FAILED", :pact, :failed_verification],
|
117
|
+
["${pactbroker.bitbucketVerificationStatus}", "INPROGRESS", :nil_pact, :nil_verification],
|
118
|
+
["${pactbroker.bitbucketVerificationStatus}", "INPROGRESS", :pact_with_no_verification, :nil_verification],
|
119
|
+
["${pactbroker.bitbucketVerificationStatus}", "SUCCESSFUL", :pact_with_successful_verification, :nil_verification],
|
120
|
+
["${pactbroker.bitbucketVerificationStatus}", "FAILED", :pact_with_failed_verification, :nil_verification],
|
115
121
|
["${pactbroker.verificationResultUrl}", "", :pact_with_no_verification, :nil_verification],
|
116
122
|
["${pactbroker.verificationResultUrl}", "http://verification", :pact_with_successful_verification, :nil_verification],
|
117
123
|
["${pactbroker.verificationResultUrl}", "http://verification", :pact_with_successful_verification, :verification],
|
@@ -50,7 +50,7 @@ module PactBroker
|
|
50
50
|
include_examples "triggering a contract_content_changed event"
|
51
51
|
|
52
52
|
it "logs the reason why it triggered the contract_content_changed event" do
|
53
|
-
expect(logger).to receive(:
|
53
|
+
expect(logger).to receive(:info).with(/first time untagged pact published/)
|
54
54
|
subject
|
55
55
|
end
|
56
56
|
end
|
@@ -64,7 +64,7 @@ module PactBroker
|
|
64
64
|
include_examples "triggering a contract_content_changed event"
|
65
65
|
|
66
66
|
it "logs the reason why it triggered the contract_content_changed event" do
|
67
|
-
expect(logger).to receive(:
|
67
|
+
expect(logger).to receive(:info).with(/pact content has changed since previous untagged version/)
|
68
68
|
subject
|
69
69
|
end
|
70
70
|
end
|
@@ -86,7 +86,7 @@ module PactBroker
|
|
86
86
|
include_examples "triggering a contract_content_changed event"
|
87
87
|
|
88
88
|
it "logs the reason why it triggered the contract_content_changed event" do
|
89
|
-
expect(logger).to receive(:
|
89
|
+
expect(logger).to receive(:info).with(/first time pact published with consumer version tagged dev/)
|
90
90
|
subject
|
91
91
|
end
|
92
92
|
end
|
@@ -126,7 +126,7 @@ module PactBroker
|
|
126
126
|
include_examples "triggering a contract_content_changed event"
|
127
127
|
|
128
128
|
it "logs the reason why it triggered the contract_content_changed event" do
|
129
|
-
expect(logger).to receive(:
|
129
|
+
expect(logger).to receive(:info).with(/version 1.2.3 has been updated with new content/)
|
130
130
|
subject
|
131
131
|
end
|
132
132
|
end
|
@@ -23,7 +23,9 @@ module Rack
|
|
23
23
|
::Rack::PactBroker::DatabaseTransaction.new(api, ::PactBroker::DB.connection)
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
let(:rack_headers) { {} }
|
27
|
+
|
28
|
+
subject { self.send(http_method, "/", rack_headers) }
|
27
29
|
|
28
30
|
it "sets the pactbroker.database_connector on the env" do
|
29
31
|
actual_env = nil
|
@@ -35,6 +37,21 @@ module Rack
|
|
35
37
|
expect(actual_env).to have_key("pactbroker.database_connector")
|
36
38
|
end
|
37
39
|
|
40
|
+
context "when the pactbroker.database_connector already exists" do
|
41
|
+
let(:rack_headers) { { "pactbroker.database_connector" => double('existing database connector') } }
|
42
|
+
let(:existing_database_connector) { double('existing database connector') }
|
43
|
+
|
44
|
+
it "does not overwrite it", pending: "key is not showing up in rack env for some reason" do
|
45
|
+
actual_env = nil
|
46
|
+
allow(api).to receive(:call) do | env |
|
47
|
+
actual_env = env
|
48
|
+
[200, {}, {}]
|
49
|
+
end
|
50
|
+
subject
|
51
|
+
expect(actual_env["pactbroker.database_connector"]).to be existing_database_connector
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
38
55
|
context "for get requests" do
|
39
56
|
let(:http_method) { :get }
|
40
57
|
|
@@ -60,46 +77,6 @@ module Rack
|
|
60
77
|
expect { subject }.to change { ::PactBroker::Domain::Pacticipant.count }.by(1)
|
61
78
|
end
|
62
79
|
end
|
63
|
-
|
64
|
-
describe "setting the database connector" do
|
65
|
-
let(:api) { double('api', call: [200, {}, []]) }
|
66
|
-
|
67
|
-
it "sets a database connector for use in jobs scheduled by this request" do
|
68
|
-
expect(api).to receive(:call) do | env |
|
69
|
-
expect(Thread.current[:pact_broker_thread_data].database_connector).to_not be nil
|
70
|
-
[200, {}, []]
|
71
|
-
end
|
72
|
-
|
73
|
-
subject
|
74
|
-
end
|
75
|
-
|
76
|
-
it "clears it after the request" do
|
77
|
-
subject
|
78
|
-
expect(Thread.current[:pact_broker_thread_data].database_connector).to be nil
|
79
|
-
end
|
80
|
-
|
81
|
-
context "when other middleware sets the database connector" do
|
82
|
-
before do
|
83
|
-
Thread.current[:pact_broker_thread_data] = OpenStruct.new(database_connector: other_database_connector)
|
84
|
-
end
|
85
|
-
|
86
|
-
let(:other_database_connector) { ->(&block) { block.call } }
|
87
|
-
|
88
|
-
it "does not override it" do
|
89
|
-
expect(api).to receive(:call) do | env |
|
90
|
-
expect(Thread.current[:pact_broker_thread_data].database_connector).to eq other_database_connector
|
91
|
-
[200, {}, []]
|
92
|
-
end
|
93
|
-
|
94
|
-
subject
|
95
|
-
end
|
96
|
-
|
97
|
-
it "does not clear it after the request" do
|
98
|
-
subject
|
99
|
-
expect(Thread.current[:pact_broker_thread_data].database_connector).to_not be nil
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
80
|
end
|
104
81
|
end
|
105
82
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact_broker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.34.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bethany Skurrie
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-06-
|
13
|
+
date: 2019-06-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|