pact_broker 2.29.0 → 2.30.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/CHANGELOG.md +23 -0
- data/lib/pact_broker/api/resources/pact_versions.rb +5 -1
- data/lib/pact_broker/app.rb +3 -1
- data/lib/pact_broker/configuration.rb +2 -1
- data/lib/pact_broker/doc/views/consumer.markdown +1 -1
- data/lib/pact_broker/doc/views/pact/all-pact-versions.markdown +10 -0
- data/lib/pact_broker/pacts/repository.rb +8 -0
- data/lib/pact_broker/pacts/service.rb +5 -11
- data/lib/pact_broker/ui/view_models/index_items.rb +4 -0
- data/lib/pact_broker/ui/views/index/_getting-started.haml +6 -0
- data/lib/pact_broker/ui/views/index/show-with-tags.haml +2 -0
- data/lib/pact_broker/ui/views/index/show.haml +2 -0
- data/lib/pact_broker/version.rb +1 -1
- data/lib/pact_broker/webhooks/webhook_event.rb +6 -1
- data/lib/rack/pact_broker/accepts_html_filter.rb +7 -7
- data/lib/rack/pact_broker/convert_404_to_hal.rb +1 -1
- data/public/stylesheets/index.css +5 -0
- data/spec/features/delete_pact_versions_spec.rb +29 -0
- data/spec/lib/pact_broker/pacts/service_spec.rb +51 -2
- data/spec/support/logging.rb +1 -0
- data/spec/support/shared_context.rb +17 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '081cc254335adf8cdabb9bfbc1819c8bf23bb292'
|
4
|
+
data.tar.gz: c02b5d34019e3f645df1a47bdc271f0cb0f32919
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a58feed7d9ff5c59f84387cd8e5293fbdd480d11ce6ca6f7ee0a12bc86fba8c2d127f1a7135efb4cabb8bbdabae2a44bc9ed5ebf31125def2a810806a3a822ec
|
7
|
+
data.tar.gz: 613811b6f2f348e0a18ea825e995b6a33fcf72ca50f66065c84a8de88eb9e20d308a776d4d4eef9c641c0b98870dca36df3391990272fd00b86b6a0ba2831ff0
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
<a name="v2.30.0"></a>
|
2
|
+
### v2.30.0 (2019-03-29)
|
3
|
+
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* add helper text on index page for getting started ([cdeb2cd9](/../../commit/cdeb2cd9))
|
8
|
+
* allow rack protection to be turned off so that the headers can be managed in nginx ([941371ec](/../../commit/941371ec))
|
9
|
+
* allow all pacts between a given consumer and provider to be deleted at once ([9f1ce9c3](/../../commit/9f1ce9c3))
|
10
|
+
* correctly identify javascript and css content types ([6470d199](/../../commit/6470d199))
|
11
|
+
* add .css and .js file extensions to middleware that sets the accept header ([eb1cd323](/../../commit/eb1cd323))
|
12
|
+
* add helper text on index page for getting started ([222d8965](/../../commit/222d8965))
|
13
|
+
* allow rack protection to be turned off so that the headers can be managed in nginx ([b43e60ee](/../../commit/b43e60ee))
|
14
|
+
* allow all pacts between a given consumer and provider to be deleted at once ([0c8106b6](/../../commit/0c8106b6))
|
15
|
+
* correctly identify javascript and css content types ([03e156cb](/../../commit/03e156cb))
|
16
|
+
* add .css and .js file extensions to middleware that sets the accept header ([2aa533dc](/../../commit/2aa533dc))
|
17
|
+
* add a new webhook event for contract_published ([2e2a2034](/../../commit/2e2a2034))
|
18
|
+
|
19
|
+
* **matrix**
|
20
|
+
* improve reasons in response when pacticipant cannot be deployed ([85e11616](/../../commit/85e11616))
|
21
|
+
* allow provider to be deployed to an environment without the consumer having to be deployed there already ([125c2722](/../../commit/125c2722))
|
22
|
+
|
23
|
+
|
1
24
|
<a name="v2.29.0"></a>
|
2
25
|
### v2.29.0 (2019-03-15)
|
3
26
|
|
@@ -13,7 +13,7 @@ module PactBroker
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def allowed_methods
|
16
|
-
["GET", "OPTIONS"]
|
16
|
+
["GET", "DELETE", "OPTIONS"]
|
17
17
|
end
|
18
18
|
|
19
19
|
def resource_exists?
|
@@ -29,6 +29,10 @@ module PactBroker
|
|
29
29
|
pact_service.find_all_pact_versions_between consumer_name, :and => provider_name
|
30
30
|
end
|
31
31
|
|
32
|
+
def delete_resource
|
33
|
+
pact_service.delete_all_pact_versions_between(consumer_name, and: provider_name)
|
34
|
+
true
|
35
|
+
end
|
32
36
|
end
|
33
37
|
end
|
34
38
|
end
|
data/lib/pact_broker/app.rb
CHANGED
@@ -118,7 +118,9 @@ module PactBroker
|
|
118
118
|
|
119
119
|
def configure_middleware
|
120
120
|
# NOTE THAT NONE OF THIS IS PROTECTED BY AUTH - is that ok?
|
121
|
-
|
121
|
+
if configuration.use_rack_protection
|
122
|
+
@app_builder.use Rack::Protection, except: [:path_traversal, :remote_token, :session_hijacking, :http_origin]
|
123
|
+
end
|
122
124
|
@app_builder.use Rack::PactBroker::InvalidUriProtection
|
123
125
|
@app_builder.use Rack::PactBroker::StoreBaseURL
|
124
126
|
@app_builder.use Rack::PactBroker::AddPactBrokerVersionHeader
|
@@ -32,7 +32,7 @@ module PactBroker
|
|
32
32
|
:base_equality_only_on_content_that_affects_verification_results
|
33
33
|
]
|
34
34
|
|
35
|
-
attr_accessor :log_dir, :database_connection, :auto_migrate_db, :auto_migrate_db_data, :use_hal_browser, :html_pact_renderer
|
35
|
+
attr_accessor :log_dir, :database_connection, :auto_migrate_db, :auto_migrate_db_data, :use_hal_browser, :html_pact_renderer, :use_rack_protection
|
36
36
|
attr_accessor :validate_database_connection_config, :enable_diagnostic_endpoints, :version_parser, :sha_generator
|
37
37
|
attr_accessor :use_case_sensitive_resource_names, :order_versions_by_date
|
38
38
|
attr_accessor :check_for_potential_duplicate_pacticipant_names
|
@@ -62,6 +62,7 @@ module PactBroker
|
|
62
62
|
config.log_dir = File.expand_path("./log")
|
63
63
|
config.auto_migrate_db = true
|
64
64
|
config.auto_migrate_db_data = true
|
65
|
+
config.use_rack_protection = true
|
65
66
|
config.use_hal_browser = true
|
66
67
|
config.validate_database_connection_config = true
|
67
68
|
config.enable_diagnostic_endpoints = true
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# All versions of a pact between a given consumer and provider
|
2
|
+
|
3
|
+
Allowed methods: `GET`, `DELETE`
|
4
|
+
Path: `/pacts/provider/{provider}/consumer/{consumer}/versions`
|
5
|
+
|
6
|
+
This resource returns a history of all the versions of the given pact between a consumer and provider.
|
7
|
+
|
8
|
+
## Deleting pacts
|
9
|
+
|
10
|
+
Sending a `DELETE` to this resource will delete all the pacts between the specified applications.
|
@@ -234,6 +234,14 @@ module PactBroker
|
|
234
234
|
end
|
235
235
|
end
|
236
236
|
|
237
|
+
def find_previous_pacts pact
|
238
|
+
if pact.consumer_version_tag_names.any?
|
239
|
+
pact.consumer_version_tag_names.map { |tag| find_previous_pact(pact, tag) }
|
240
|
+
else
|
241
|
+
[find_previous_pact(pact, :untagged)]
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
237
245
|
private
|
238
246
|
|
239
247
|
def find_previous_distinct_pact_by_sha pact
|
@@ -108,7 +108,7 @@ module PactBroker
|
|
108
108
|
|
109
109
|
# TODO also take into account overridden revisions
|
110
110
|
def pact_is_new_or_pact_has_changed_since_previous_version? pact
|
111
|
-
find_previous_pacts(pact).any? { |previous_pact| previous_pact.nil? || pact.json_content != previous_pact.json_content}
|
111
|
+
pact_repository.find_previous_pacts(pact).any? { |previous_pact| previous_pact.nil? || pact.json_content != previous_pact.json_content}
|
112
112
|
end
|
113
113
|
|
114
114
|
private
|
@@ -118,10 +118,11 @@ module PactBroker
|
|
118
118
|
logger.debug "Content #{params[:json_content]}"
|
119
119
|
updated_pact = pact_repository.update existing_pact.id, params
|
120
120
|
|
121
|
+
webhook_service.trigger_webhooks updated_pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_PUBLISHED
|
121
122
|
if existing_pact.json_content != updated_pact.json_content
|
122
123
|
webhook_service.trigger_webhooks updated_pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_CONTENT_CHANGED
|
123
124
|
else
|
124
|
-
logger.debug "Pact has not changed since previous
|
125
|
+
logger.debug "Pact has not changed since previous version, not triggering webhooks for changed content"
|
125
126
|
end
|
126
127
|
|
127
128
|
updated_pact
|
@@ -137,18 +138,11 @@ module PactBroker
|
|
137
138
|
|
138
139
|
def trigger_webhooks pact
|
139
140
|
# TODO add tests for this
|
141
|
+
webhook_service.trigger_webhooks pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_PUBLISHED
|
140
142
|
if pact_is_new_or_pact_has_changed_since_previous_version?(pact)
|
141
143
|
webhook_service.trigger_webhooks pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_CONTENT_CHANGED
|
142
144
|
else
|
143
|
-
logger.debug "Pact has not changed since previous version, not triggering webhooks"
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
def find_previous_pacts pact
|
148
|
-
if pact.consumer_version_tag_names.any?
|
149
|
-
pact.consumer_version_tag_names.map { |tag| pact_repository.find_previous_pact(pact, tag) }
|
150
|
-
else
|
151
|
-
[pact_repository.find_previous_pact(pact, :untagged)]
|
145
|
+
logger.debug "Pact has not changed since previous version, not triggering webhooks for changed content"
|
152
146
|
end
|
153
147
|
end
|
154
148
|
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
%div.getting-started
|
2
|
+
%h3 Welcome!
|
3
|
+
%p
|
4
|
+
Just getting started? Confused as to why there's nothing "clicky clicky" to see here? The Pact workflow is a "code first" approach. Your pacts will be generated by your consumer tests and then published here, ready to be retrieved by your provider tests for verification.
|
5
|
+
%p
|
6
|
+
For step by step instructions on getting started, check out the <a href="https://docs.pact.io/best_practices/pact_nirvana">Effective Pact Setup Guide</a>.
|
@@ -3,6 +3,8 @@
|
|
3
3
|
%script{type: 'text/javascript', src:'/javascripts/jquery.tablesorter.min.js'}
|
4
4
|
.container
|
5
5
|
= render :haml, :'index/_navbar', :layout => false, locals: {tag_toggle: false}
|
6
|
+
- if index_items.empty?
|
7
|
+
= render :haml, :'index/_getting-started', :layout => false
|
6
8
|
%h1.page-header
|
7
9
|
Pacts
|
8
10
|
%table.table.table-bordered.table-striped{ id: 'relationships' }
|
@@ -3,6 +3,8 @@
|
|
3
3
|
%script{type: 'text/javascript', src:'/javascripts/jquery.tablesorter.min.js'}
|
4
4
|
.container
|
5
5
|
= render :haml, :'index/_navbar', :layout => false, locals: {tag_toggle: true}
|
6
|
+
- if index_items.empty?
|
7
|
+
= render :haml, :'index/_getting-started', :layout => false
|
6
8
|
%h1.page-header
|
7
9
|
Pacts
|
8
10
|
%table.table.table-bordered.table-striped{ id: 'relationships' }
|
data/lib/pact_broker/version.rb
CHANGED
@@ -5,18 +5,23 @@ module PactBroker
|
|
5
5
|
module Webhooks
|
6
6
|
class WebhookEvent < Sequel::Model
|
7
7
|
|
8
|
+
CONTRACT_PUBLISHED = 'contract_published'
|
8
9
|
CONTRACT_CONTENT_CHANGED = 'contract_content_changed'
|
9
10
|
VERIFICATION_PUBLISHED = 'provider_verification_published'
|
10
11
|
DEFAULT_EVENT_NAME = CONTRACT_CONTENT_CHANGED
|
11
12
|
#CONTRACT_VERIFIABLE_CONTENT_CHANGED = 'contract_verifiable_content_changed'
|
12
13
|
#VERIFICATION_STATUS_CHANGED = 'verification_status_changed'
|
13
14
|
|
14
|
-
EVENT_NAMES = [CONTRACT_CONTENT_CHANGED, VERIFICATION_PUBLISHED]
|
15
|
+
EVENT_NAMES = [CONTRACT_PUBLISHED, CONTRACT_CONTENT_CHANGED, VERIFICATION_PUBLISHED]
|
15
16
|
|
16
17
|
dataset_module do
|
17
18
|
include PactBroker::Repositories::Helpers
|
18
19
|
end
|
19
20
|
|
21
|
+
def contract_published?
|
22
|
+
name == CONTRACT_PUBLISHED
|
23
|
+
end
|
24
|
+
|
20
25
|
def contract_content_changed?
|
21
26
|
name == CONTRACT_CONTENT_CHANGED
|
22
27
|
end
|
@@ -1,29 +1,29 @@
|
|
1
|
+
# Decides whether this is a browser request or a request for the API
|
1
2
|
module Rack
|
2
3
|
module PactBroker
|
3
4
|
class AcceptsHtmlFilter
|
4
|
-
|
5
5
|
def initialize app
|
6
6
|
@app = app
|
7
7
|
end
|
8
8
|
|
9
9
|
def call env
|
10
|
-
if
|
10
|
+
if accepts_web_content_types_and_not_api_media env
|
11
11
|
@app.call(env)
|
12
12
|
else
|
13
13
|
[404, {},[]]
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def accepts_web_content_types_and_not_api_media env
|
18
18
|
accept = env['HTTP_ACCEPT'] || ''
|
19
|
-
|
19
|
+
accepts_web_content_types(accept) && !accepts_api_content_types(accept)
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
accept.include?("html")
|
22
|
+
def accepts_web_content_types(accept)
|
23
|
+
accept.include?("*/*") || accept.include?("html") || accept.include?("text/css") || accept.include?("text/javascript")
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
26
|
+
def accepts_api_content_types accept
|
27
27
|
accept.include?("json") || accept.include?("csv")
|
28
28
|
end
|
29
29
|
end
|
@@ -9,7 +9,7 @@ module Rack
|
|
9
9
|
def call env
|
10
10
|
response = @app.call(env)
|
11
11
|
|
12
|
-
if response.first == 404 && response[1]['Content-Type'] == 'text/html' && !(env['HTTP_ACCEPT'] =~ /html/)
|
12
|
+
if response.first == 404 && response[1]['Content-Type'] == 'text/html' && !(env['HTTP_ACCEPT'] =~ /html|javascript|css/)
|
13
13
|
[404, { 'Content-Type' => 'application/hal+json'},[]]
|
14
14
|
else
|
15
15
|
response
|
@@ -0,0 +1,29 @@
|
|
1
|
+
describe "Deleting pact versions" do
|
2
|
+
|
3
|
+
let(:path) { "/pacts/provider/Bar/consumer/Foo/versions" }
|
4
|
+
|
5
|
+
subject { delete(path) }
|
6
|
+
|
7
|
+
context "when the pact exists" do
|
8
|
+
before do
|
9
|
+
TestDataBuilder.new
|
10
|
+
.create_pact_with_hierarchy("Foo", "1.2.3", "Bar")
|
11
|
+
.create_provider("Baz")
|
12
|
+
.create_pact
|
13
|
+
end
|
14
|
+
|
15
|
+
it "deletes the pacts" do
|
16
|
+
expect{ subject }.to change{ PactBroker::Pacts::PactPublication.count }.by(-1)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns a 204" do
|
20
|
+
expect(subject.status).to be 204
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when the pact does not exist" do
|
25
|
+
it "returns a 404 Not Found" do
|
26
|
+
expect(subject.status).to be 404
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -7,9 +7,59 @@ module PactBroker
|
|
7
7
|
|
8
8
|
module Pacts
|
9
9
|
describe Service do
|
10
|
-
|
11
10
|
let(:td) { TestDataBuilder.new }
|
12
11
|
|
12
|
+
describe "create_or_update_pact" do
|
13
|
+
include_context "stubbed repositories"
|
14
|
+
|
15
|
+
before do
|
16
|
+
allow(described_class).to receive(:webhook_service).and_return(webhook_service)
|
17
|
+
allow(pacticipant_repository).to receive(:find_by_name_or_create).with(params[:consumer_name]).and_return(consumer)
|
18
|
+
allow(pacticipant_repository).to receive(:find_by_name_or_create).with(params[:provider_name]).and_return(provider)
|
19
|
+
allow(version_repository).to receive(:find_by_pacticipant_id_and_number_or_create).and_return(version)
|
20
|
+
allow(pact_repository).to receive(:find_by_version_and_provider).and_return(existing_pact)
|
21
|
+
allow(pact_repository).to receive(:create).and_return(new_pact)
|
22
|
+
allow(pact_repository).to receive(:update).and_return(new_pact)
|
23
|
+
allow(pact_repository).to receive(:find_previous_pacts).and_return(previous_pacts)
|
24
|
+
allow(webhook_service).to receive(:trigger_webhooks)
|
25
|
+
end
|
26
|
+
|
27
|
+
let(:webhook_service) { class_double("PactBroker::Webhooks::Service").as_stubbed_const }
|
28
|
+
let(:consumer) { double('consumer', id: 1) }
|
29
|
+
let(:provider) { double('provider', id: 2) }
|
30
|
+
let(:version) { double('version', id: 3, pacticipant_id: 1) }
|
31
|
+
let(:existing_pact) { nil }
|
32
|
+
let(:new_pact) { double('new_pact', json_content: json_content) }
|
33
|
+
let(:json_content) { { the: "contract" }.to_json }
|
34
|
+
let(:previous_pacts) { [] }
|
35
|
+
let(:params) do
|
36
|
+
{
|
37
|
+
consumer_name: "Foo",
|
38
|
+
provider_name: "Bar",
|
39
|
+
consumer_version_number: "1",
|
40
|
+
json_content: json_content
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
subject { Service.create_or_update_pact(params) }
|
45
|
+
|
46
|
+
context "when no pact exists with the same params" do
|
47
|
+
it "triggers webhooks for contract publications" do
|
48
|
+
expect(webhook_service).to receive(:trigger_webhooks).with(new_pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_PUBLISHED)
|
49
|
+
subject
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "when a pact exists with the same params" do
|
54
|
+
let(:existing_pact) { double('existing_pact', id: 4, json_content: { the: "contract" }.to_json) }
|
55
|
+
|
56
|
+
it "triggers webhooks for contract publications" do
|
57
|
+
expect(webhook_service).to receive(:trigger_webhooks).with(new_pact, nil, PactBroker::Webhooks::WebhookEvent::CONTRACT_PUBLISHED)
|
58
|
+
subject
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
13
63
|
describe "find_distinct_pacts_between" do
|
14
64
|
let(:pact_1) { double('pact 1', json_content: 'content 1')}
|
15
65
|
let(:pact_2) { double('pact 2', json_content: 'content 2')}
|
@@ -27,7 +77,6 @@ module PactBroker
|
|
27
77
|
it "returns the distinct pacts" do
|
28
78
|
expect(subject).to eq [pact_4, pact_2, pact_1]
|
29
79
|
end
|
30
|
-
|
31
80
|
end
|
32
81
|
|
33
82
|
describe "#pact_is_new_or_pact_has_changed_since_previous_version?" do
|
data/spec/support/logging.rb
CHANGED
@@ -2,9 +2,26 @@ RSpec.shared_context "stubbed services" do
|
|
2
2
|
|
3
3
|
let(:pact_service) { class_double("PactBroker::Pacts::Service").as_stubbed_const }
|
4
4
|
let(:pacticipant_service) { class_double("PactBroker::Pacticipants::Service").as_stubbed_const }
|
5
|
+
let(:version_service) { class_double("PactBroker::Versions::Service").as_stubbed_const }
|
6
|
+
let(:webhook_service) { class_double("PactBroker::Webhooks::Service").as_stubbed_const }
|
5
7
|
|
6
8
|
before do
|
7
9
|
allow_any_instance_of(described_class).to receive(:pact_service).and_return(pact_service)
|
8
10
|
allow_any_instance_of(described_class).to receive(:pacticipant_service).and_return(pacticipant_service)
|
11
|
+
allow_any_instance_of(described_class).to receive(:version_service).and_return(version_service)
|
12
|
+
allow_any_instance_of(described_class).to receive(:webhook_service).and_return(webhook_service)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
RSpec.shared_context "stubbed repositories" do
|
17
|
+
|
18
|
+
let(:pact_repository) { instance_double("PactBroker::Pacts::Repository") }
|
19
|
+
let(:pacticipant_repository) { instance_double("PactBroker::Pacticipants::Repository") }
|
20
|
+
let(:version_repository) { instance_double("PactBroker::Version::Repository") }
|
21
|
+
|
22
|
+
before do
|
23
|
+
allow(described_class).to receive(:pact_repository).and_return(pact_repository)
|
24
|
+
allow(described_class).to receive(:pacticipant_repository).and_return(pacticipant_repository)
|
25
|
+
allow(described_class).to receive(:version_repository).and_return(version_repository)
|
9
26
|
end
|
10
27
|
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.30.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-
|
13
|
+
date: 2019-04-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -881,6 +881,7 @@ files:
|
|
881
881
|
- lib/pact_broker/doc/views/layouts/main.haml
|
882
882
|
- lib/pact_broker/doc/views/not_found.markdown
|
883
883
|
- lib/pact_broker/doc/views/pact-versions.markdown
|
884
|
+
- lib/pact_broker/doc/views/pact/all-pact-versions.markdown
|
884
885
|
- lib/pact_broker/doc/views/pact/diff-previous-distinct.markdown
|
885
886
|
- lib/pact_broker/doc/views/pact/diff.markdown
|
886
887
|
- lib/pact_broker/doc/views/pact/latest-pact-version.markdown
|
@@ -979,6 +980,7 @@ files:
|
|
979
980
|
- lib/pact_broker/ui/view_models/matrix_tag.rb
|
980
981
|
- lib/pact_broker/ui/views/clusters/show.haml
|
981
982
|
- lib/pact_broker/ui/views/groups/show.html.erb
|
983
|
+
- lib/pact_broker/ui/views/index/_getting-started.haml
|
982
984
|
- lib/pact_broker/ui/views/index/_navbar.haml
|
983
985
|
- lib/pact_broker/ui/views/index/show-with-tags.haml
|
984
986
|
- lib/pact_broker/ui/views/index/show.haml
|
@@ -1094,6 +1096,7 @@ files:
|
|
1094
1096
|
- spec/features/create_webhook_spec.rb
|
1095
1097
|
- spec/features/delete_label_spec.rb
|
1096
1098
|
- spec/features/delete_pact_spec.rb
|
1099
|
+
- spec/features/delete_pact_versions_spec.rb
|
1097
1100
|
- spec/features/delete_tagged_pact_versions_spec.rb
|
1098
1101
|
- spec/features/delete_version_spec.rb
|
1099
1102
|
- spec/features/delete_webhook_spec.rb
|
@@ -1422,6 +1425,7 @@ test_files:
|
|
1422
1425
|
- spec/features/create_webhook_spec.rb
|
1423
1426
|
- spec/features/delete_label_spec.rb
|
1424
1427
|
- spec/features/delete_pact_spec.rb
|
1428
|
+
- spec/features/delete_pact_versions_spec.rb
|
1425
1429
|
- spec/features/delete_tagged_pact_versions_spec.rb
|
1426
1430
|
- spec/features/delete_version_spec.rb
|
1427
1431
|
- spec/features/delete_webhook_spec.rb
|