pact_broker-client 1.75.0 → 1.75.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/delete_branch_in_pactflow.yml +24 -0
- data/.github/workflows/release_gem.yml +1 -1
- data/.github/workflows/test.yml +4 -5
- data/.github/workflows/trigger_pact_docs_update.yml +1 -1
- data/CHANGELOG.md +14 -0
- data/doc/pacts/markdown/Pact Broker Client - Pact Broker.md +4 -4
- data/lib/pact_broker/client/cli/matrix_commands.rb +1 -1
- data/lib/pact_broker/client/pacts/list_latest_versions.rb +1 -0
- data/lib/pact_broker/client/publish_pacts.rb +1 -0
- data/lib/pact_broker/client/version.rb +1 -1
- data/lib/pact_broker/client/webhooks/create.rb +1 -0
- data/lib/pactflow/client/provider_contracts/publish.rb +1 -0
- data/lib/pactflow/client/provider_contracts/publish_the_old_way.rb +1 -0
- data/script/ci/delete-branch-in-pactflow.sh +22 -0
- data/spec/integration/can_i_merge_spec.rb +1 -0
- data/spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb +1 -0
- data/spec/lib/pact_broker/client/cli/broker_publish_spec.rb +1 -0
- data/spec/lib/pact_broker/client/cli/broker_run_webhook_commands_spec.rb +1 -0
- data/spec/lib/pactflow/client/provider_contracts/publish_spec.rb +1 -0
- data/spec/pacts/pact_broker_client-pact_broker.json +2 -2
- data/spec/service_providers/record_undeployment_spec.rb +2 -2
- data/tasks/pact.rake +1 -21
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1182bbb55b2f96fd7be7619d813cd4d144b5f3ed2d0b39c96bf26f50ebe3f49
|
4
|
+
data.tar.gz: 6f191eb22fa4764e41d59f5be90310637162fc7ac769b00820ab2703e24069a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57e26c965b62b16ec547f0892efed4006e78c22f4b26ad64b0968953d4d03a3c01c5fac4f9dfd806438df623d1992a8bea575ed85b222b767b8cad43ef487611
|
7
|
+
data.tar.gz: 1564437e9b96f362b82f0e12cbf7c2ec90f26ca73f0a7792c11b5b622e8e4e50a7121dd2c94544a14c359311f03eb69b3b68d17affd4f5a2c95e4e561f9f9aee
|
@@ -0,0 +1,24 @@
|
|
1
|
+
name: Delete application branch in Pactflow
|
2
|
+
|
3
|
+
on:
|
4
|
+
delete:
|
5
|
+
branches:
|
6
|
+
- "*"
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
delete-branch-in-pactflow:
|
10
|
+
name: delete
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v4
|
15
|
+
# Requires Ruby to encode the URL path correctly - could use any other scripting language here
|
16
|
+
- uses: ruby/setup-ruby@v1
|
17
|
+
|
18
|
+
- name: Delete branch in Pactflow
|
19
|
+
run: script/ci/delete-branch-in-pactflow.sh
|
20
|
+
env:
|
21
|
+
GIT_BRANCH: ${{ github.event.ref }}
|
22
|
+
PACTICIPANT: "Pact Broker Client"
|
23
|
+
PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN_PACT_FOUNDATION }}
|
24
|
+
PACT_BROKER_BASE_URL: "https://pact-foundation.pactflow.io"
|
@@ -61,7 +61,7 @@ jobs:
|
|
61
61
|
runs-on: ubuntu-latest
|
62
62
|
steps:
|
63
63
|
- name: Notify ${{ matrix.repository }} of gem release
|
64
|
-
uses: peter-evans/repository-dispatch@
|
64
|
+
uses: peter-evans/repository-dispatch@v3
|
65
65
|
with:
|
66
66
|
token: ${{ secrets.GHTOKENFORPACTCLIRELEASE }}
|
67
67
|
repository: ${{ matrix.repository }}
|
data/.github/workflows/test.yml
CHANGED
@@ -11,7 +11,7 @@ jobs:
|
|
11
11
|
strategy:
|
12
12
|
fail-fast: false
|
13
13
|
matrix:
|
14
|
-
ruby_version: ["2.7", "3.0", "3.1", "3.2"]
|
14
|
+
ruby_version: ["2.7", "3.0", "3.1", "3.2", "3.3"]
|
15
15
|
os: ["ubuntu-latest","windows-latest","macos-latest"]
|
16
16
|
steps:
|
17
17
|
- uses: actions/checkout@v4
|
@@ -34,13 +34,12 @@ jobs:
|
|
34
34
|
ruby-version: "3.2"
|
35
35
|
- run: "bundle install"
|
36
36
|
# Publish to old and new account until we can disable the old account
|
37
|
-
-
|
37
|
+
- name: Generate and publish pacts
|
38
|
+
run: |
|
38
39
|
rm -rf spec/pacts/*
|
39
40
|
bundle exec rspec spec/service_providers/
|
40
|
-
|
41
|
-
VERBOSE=true bundle exec rake pact:publish:pactflow_pact_foundation
|
41
|
+
bundle exec rake pact:publish:pactflow_pact_foundation
|
42
42
|
env:
|
43
|
-
PACT_BROKER_TOKEN: ${{ secrets.PACTFLOW_PACT_OSS_TOKEN }}
|
44
43
|
PACT_BROKER_TOKEN_PACT_FOUNDATION: ${{ secrets.PACT_BROKER_TOKEN_PACT_FOUNDATION }}
|
45
44
|
PACT_BROKER_FEATURES: ${{ matrix.feature }}
|
46
45
|
TEST_FEATURE: ${{ matrix.feature }}
|
@@ -16,7 +16,7 @@ jobs:
|
|
16
16
|
runs-on: ubuntu-latest
|
17
17
|
steps:
|
18
18
|
- name: Trigger docs.pact.io update workflow
|
19
|
-
uses: peter-evans/repository-dispatch@
|
19
|
+
uses: peter-evans/repository-dispatch@v3
|
20
20
|
with:
|
21
21
|
token: ${{ secrets.GHTOKENFORTRIGGERINGPACTDOCSUPDATE }}
|
22
22
|
repository: pact-foundation/docs.pact.io
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
<a name="v1.75.2"></a>
|
2
|
+
### v1.75.2 (2024-05-13)
|
3
|
+
|
4
|
+
#### Bug Fixes
|
5
|
+
|
6
|
+
* explicitly require openstruct ([fdb70cf](/../../commit/fdb70cf))
|
7
|
+
|
8
|
+
<a name="v1.75.1"></a>
|
9
|
+
### v1.75.1 (2023-11-23)
|
10
|
+
|
11
|
+
#### Bug Fixes
|
12
|
+
|
13
|
+
* verification-required command invalid arg number ([fa3b1ca](/../../commit/fa3b1ca))
|
14
|
+
|
1
15
|
<a name="v1.75.0"></a>
|
2
16
|
### v1.75.0 (2023-11-11)
|
3
17
|
|
@@ -90,7 +90,7 @@
|
|
90
90
|
|
91
91
|
* [A request to list the latest pacts](#a_request_to_list_the_latest_pacts_given_a_pact_between_Condor_and_the_Pricing_Service_exists) given a pact between Condor and the Pricing Service exists
|
92
92
|
|
93
|
-
* [A request to list the versions deployed to an environment for a pacticipant name and
|
93
|
+
* [A request to list the versions deployed to an environment for a pacticipant name and application instance](#a_request_to_list_the_versions_deployed_to_an_environment_for_a_pacticipant_name_and_application_instance_given_an_version_is_deployed_to_environment_with_UUID_16926ef3-590f-4e3f-838e-719717aa88c9_with_target_customer-1) given an version is deployed to environment with UUID 16926ef3-590f-4e3f-838e-719717aa88c9 with target customer-1
|
94
94
|
|
95
95
|
* [A request to mark a deployed version as not currently deploye](#a_request_to_mark_a_deployed_version_as_not_currently_deploye_given_a_currently_deployed_version_exists) given a currently deployed version exists
|
96
96
|
|
@@ -2052,8 +2052,8 @@ Pact Broker will respond with:
|
|
2052
2052
|
}
|
2053
2053
|
}
|
2054
2054
|
```
|
2055
|
-
<a name="
|
2056
|
-
Given **an version is deployed to environment with UUID 16926ef3-590f-4e3f-838e-719717aa88c9 with target customer-1**, upon receiving **a request to list the versions deployed to an environment for a pacticipant name and
|
2055
|
+
<a name="a_request_to_list_the_versions_deployed_to_an_environment_for_a_pacticipant_name_and_application_instance_given_an_version_is_deployed_to_environment_with_UUID_16926ef3-590f-4e3f-838e-719717aa88c9_with_target_customer-1"></a>
|
2056
|
+
Given **an version is deployed to environment with UUID 16926ef3-590f-4e3f-838e-719717aa88c9 with target customer-1**, upon receiving **a request to list the versions deployed to an environment for a pacticipant name and application instance** from Pact Broker Client, with
|
2057
2057
|
```json
|
2058
2058
|
{
|
2059
2059
|
"method": "GET",
|
@@ -2075,7 +2075,7 @@ Pact Broker will respond with:
|
|
2075
2075
|
"_embedded": {
|
2076
2076
|
"deployedVersions": [
|
2077
2077
|
{
|
2078
|
-
"
|
2078
|
+
"applicationInstance": "customer-1",
|
2079
2079
|
"_links": {
|
2080
2080
|
"self": {
|
2081
2081
|
"href": "http://localhost:1234/PLACEHOLDER-DEPLOYED-VERSION-ff3adecf-cfc5-4653-a4e3-f1861092f8e0"
|
@@ -88,7 +88,7 @@ module PactBroker
|
|
88
88
|
selectors = VersionSelectorOptionsParser.call(ARGV)
|
89
89
|
validate_can_i_deploy_selectors(selectors)
|
90
90
|
verification_required_options = { output: options.output, verbose: options.verbose, retry_while_unknown: 0 }
|
91
|
-
result = VerificationRequired.call(
|
91
|
+
result = VerificationRequired.call(selectors, { to_tag: options.to, to_environment: options.in_environment, ignore_selectors: [] }, verification_required_options, pact_broker_client_options)
|
92
92
|
$stdout.puts result.message
|
93
93
|
$stdout.flush
|
94
94
|
exit(1) unless result.success
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -Eeuo pipefail
|
4
|
+
|
5
|
+
echo "Deleting branch ${GIT_BRANCH} for ${PACTICIPANT} in Pactflow..."
|
6
|
+
ENCODED_GIT_BRANCH=$(echo "$GIT_BRANCH" | ruby -e "require 'erb'; puts ERB::Util.url_encode(ARGF.read.chomp)")
|
7
|
+
ENCODED_PACTICIPANT=$(echo "$PACTICIPANT" | ruby -e "require 'erb'; puts ERB::Util.url_encode(ARGF.read.chomp)")
|
8
|
+
BRANCH_URL="${PACT_BROKER_BASE_URL}/pacticipants/${ENCODED_PACTICIPANT}/branches/${ENCODED_GIT_BRANCH}"
|
9
|
+
|
10
|
+
output_file=$(mktemp)
|
11
|
+
|
12
|
+
status=$(curl -v -X DELETE "${BRANCH_URL}" -H "Authorization: Bearer ${PACT_BROKER_TOKEN}" 2>&1 | tee "${output_file}" | awk '/^< HTTP/{print $3}')
|
13
|
+
|
14
|
+
if [ "$status" = "404" ]; then
|
15
|
+
echo "Branch ${GIT_BRANCH} for ${PACTICIPANT} does not exist in Pactflow"
|
16
|
+
elif [ $status -ge 400 ]; then
|
17
|
+
cat "${output_file}"
|
18
|
+
echo "Error deleting branch in Pactflow"
|
19
|
+
exit 1
|
20
|
+
else
|
21
|
+
echo "Deleted branch ${GIT_BRANCH} for ${PACTICIPANT} in Pactflow"
|
22
|
+
fi
|
@@ -1928,7 +1928,7 @@
|
|
1928
1928
|
}
|
1929
1929
|
},
|
1930
1930
|
{
|
1931
|
-
"description": "a request to list the versions deployed to an environment for a pacticipant name and
|
1931
|
+
"description": "a request to list the versions deployed to an environment for a pacticipant name and application instance",
|
1932
1932
|
"providerState": "an version is deployed to environment with UUID 16926ef3-590f-4e3f-838e-719717aa88c9 with target customer-1",
|
1933
1933
|
"request": {
|
1934
1934
|
"method": "GET",
|
@@ -1947,7 +1947,7 @@
|
|
1947
1947
|
"_embedded": {
|
1948
1948
|
"deployedVersions": [
|
1949
1949
|
{
|
1950
|
-
"
|
1950
|
+
"applicationInstance": "customer-1",
|
1951
1951
|
"_links": {
|
1952
1952
|
"self": {
|
1953
1953
|
"href": "http://localhost:1234/PLACEHOLDER-DEPLOYED-VERSION-ff3adecf-cfc5-4653-a4e3-f1861092f8e0"
|
@@ -86,7 +86,7 @@ RSpec.describe "recording an undeployment", pact: true do
|
|
86
86
|
def mock_deployed_versions_search_results
|
87
87
|
pact_broker
|
88
88
|
.given("an version is deployed to environment with UUID 16926ef3-590f-4e3f-838e-719717aa88c9 with target customer-1")
|
89
|
-
.upon_receiving("a request to list the versions deployed to an environment for a pacticipant name and
|
89
|
+
.upon_receiving("a request to list the versions deployed to an environment for a pacticipant name and application instance")
|
90
90
|
.with(
|
91
91
|
method: "GET",
|
92
92
|
path: currently_deployed_versions_placeholder_path,
|
@@ -100,7 +100,7 @@ RSpec.describe "recording an undeployment", pact: true do
|
|
100
100
|
_embedded: {
|
101
101
|
deployedVersions: [
|
102
102
|
{
|
103
|
-
|
103
|
+
applicationInstance: application_instance,
|
104
104
|
_links: {
|
105
105
|
self: {
|
106
106
|
href: Pact.term(pact_broker.mock_service_base_url + deployed_version_placeholder_path, /^http/)
|
data/tasks/pact.rake
CHANGED
@@ -18,26 +18,6 @@ PactBroker::Client::PublicationTask.new(:remote) do | task |
|
|
18
18
|
task.pact_broker_basic_auth = { username: ENV.fetch("PACT_BROKER_USERNAME"), password: ENV.fetch("PACT_BROKER_PASSWORD") }
|
19
19
|
end
|
20
20
|
|
21
|
-
PactBroker::Client::PublicationTask.new(:pactflow_oss) do | task |
|
22
|
-
version = ENV.fetch("GITHUB_SHA")
|
23
|
-
branch = ENV.fetch("GITHUB_REF").gsub("refs/heads/", "")
|
24
|
-
feature = ENV.fetch("TEST_FEATURE", "")
|
25
|
-
tag = branch
|
26
|
-
|
27
|
-
if feature != ''
|
28
|
-
version = "#{version}+#{feature}"
|
29
|
-
tag = "#{tag}+#{feature}"
|
30
|
-
end
|
31
|
-
|
32
|
-
require "pact_broker/client/version"
|
33
|
-
task.auto_detect_version_properties = false
|
34
|
-
task.tags = [tag]
|
35
|
-
task.branch = nil
|
36
|
-
task.consumer_version = version
|
37
|
-
task.pact_broker_base_url = "https://pact-oss.pactflow.io"
|
38
|
-
task.pact_broker_token = ENV['PACT_BROKER_TOKEN']
|
39
|
-
task.build_url = PactBroker::Client::Git.build_url
|
40
|
-
end
|
41
21
|
|
42
22
|
PactBroker::Client::PublicationTask.new(:pactflow_pact_foundation) do | task |
|
43
23
|
version = ENV.fetch("GITHUB_SHA")
|
@@ -53,7 +33,7 @@ PactBroker::Client::PublicationTask.new(:pactflow_pact_foundation) do | task |
|
|
53
33
|
require "pact_broker/client/version"
|
54
34
|
task.auto_detect_version_properties = false
|
55
35
|
task.tags = [tag]
|
56
|
-
task.branch =
|
36
|
+
task.branch = branch
|
57
37
|
task.consumer_version = version
|
58
38
|
task.pact_broker_base_url = "https://pact-foundation.pactflow.io"
|
59
39
|
task.pact_broker_token = ENV["PACT_BROKER_TOKEN_PACT_FOUNDATION"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact_broker-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.75.
|
4
|
+
version: 1.75.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Beth Skurrie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -117,6 +117,7 @@ extensions: []
|
|
117
117
|
extra_rdoc_files: []
|
118
118
|
files:
|
119
119
|
- ".github/dependabot.yml"
|
120
|
+
- ".github/workflows/delete_branch_in_pactflow.yml"
|
120
121
|
- ".github/workflows/release_gem.yml"
|
121
122
|
- ".github/workflows/smartbear-issue-label-added.yml"
|
122
123
|
- ".github/workflows/test.yml"
|
@@ -244,6 +245,7 @@ files:
|
|
244
245
|
- pact-broker-client.gemspec
|
245
246
|
- script/approve-all.sh
|
246
247
|
- script/can-i-deploy.sh
|
248
|
+
- script/ci/delete-branch-in-pactflow.sh
|
247
249
|
- script/ci/record-release.sh
|
248
250
|
- script/create-pacticipant.sh
|
249
251
|
- script/foo-bar.json
|
@@ -381,7 +383,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
381
383
|
- !ruby/object:Gem::Version
|
382
384
|
version: '0'
|
383
385
|
requirements: []
|
384
|
-
rubygems_version: 3.
|
386
|
+
rubygems_version: 3.5.10
|
385
387
|
signing_key:
|
386
388
|
specification_version: 4
|
387
389
|
summary: See description
|