pact_broker-client 1.75.4 → 1.76.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d9a8ebbc45caf061e803ba67adbaf3be6143886ec69f709cf9d474d16125b30
4
- data.tar.gz: 1ecb4eae6b6f584922598a32a9a8c9e84ee047415d357fba2bd06e8acd4365e4
3
+ metadata.gz: 3ba8a36ef12a731a17e237202de9fa3dc360f61799b395450f0ba02ecc1189ef
4
+ data.tar.gz: d2885db7e9aff85730cf0756bb53529f6f4643b0ae4ea818ad1b6226262227ff
5
5
  SHA512:
6
- metadata.gz: 7d604176f1ca12ee9cb622d38d646d0efdc6f658dc4b349ea7c8046fa018536a01672d85be1e7419261899b029746fb11a9380b815ade364e43f82969d4c77df
7
- data.tar.gz: 82462107861c80e0503af14551a2c7c5a626724b819ea9917ffebfdcaafb247d06ea775a95979e3177bcc7c641e41a1c48c997bbe721bc7172cf6407b68bcd49
6
+ metadata.gz: 95f96215e9736915c0f8eff7444612d9ae8172dfcbb8eff3c567b91837153590376506357bc29d7d78d6c235bb40f21b5643ea08de87dfd6a2227ecc2b4601a2
7
+ data.tar.gz: 2131968ab5b1f6efe8e3940457b353b023d5f817627f757b6ecbc3e67bbc3fbee45c7bef08cba9dc08bde25c147d416269c5eb1626f81caf2e566094170fd21e
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ <a name="v1.76.1"></a>
2
+ ### v1.76.1 (2024-08-21)
3
+
4
+ #### Bug Fixes
5
+
6
+ * missing list_latest_versions due to loose regex on gem files (#170) ([c5776fc](/../../commit/c5776fc))
7
+
8
+ <a name="v1.76.0"></a>
9
+ ### v1.76.0 (2024-08-07)
10
+
11
+ #### Features
12
+
13
+ * **can-i-deploy**
14
+ * skip --retry-while-unknown if --dry-run true ([cbbcc0a](/../../commit/cbbcc0a))
15
+
1
16
  <a name="v1.75.4"></a>
2
17
  ### v1.75.4 (2024-07-30)
3
18
 
@@ -109,7 +109,7 @@ module PactBroker
109
109
 
110
110
  def fetch_matrix_with_retries
111
111
  matrix = fetch_matrix
112
- if retry_while_unknown?
112
+ if retry_while_unknown? && !dry_run_or_false
113
113
  check_if_retry_while_unknown_supported(matrix)
114
114
  if matrix.any_unknown?
115
115
  results = matrix.unknown_count == 1 ? "result" : "results"
@@ -0,0 +1,66 @@
1
+ require 'pact_broker/client/hal'
2
+ require 'pact_broker/client/command_result'
3
+ require 'pact_broker/client/hal_client_methods'
4
+ require 'ostruct'
5
+
6
+ module PactBroker
7
+ module Client
8
+ module Pacts
9
+ class ListLatestVersions
10
+
11
+ include HalClientMethods
12
+
13
+ def self.call(pact_broker_base_url, output, pact_broker_client_options)
14
+ new(pact_broker_base_url, output, pact_broker_client_options).call
15
+ end
16
+
17
+ def initialize(pact_broker_base_url, output, pact_broker_client_options)
18
+ @index_entry_point = create_index_entry_point(pact_broker_base_url, pact_broker_client_options)
19
+ @output = output
20
+ end
21
+
22
+ def call
23
+ message = if output == 'json'
24
+ versions_resource.response.raw_body
25
+ else
26
+ to_text(versions)
27
+ end
28
+ PactBroker::Client::CommandResult.new(true, message)
29
+
30
+ rescue StandardError => e
31
+ PactBroker::Client::CommandResult.new(false, e.message)
32
+ end
33
+
34
+ private
35
+
36
+ attr_reader :index_entry_point, :output
37
+
38
+ def versions
39
+ versions_resource.pacts.collect do | pact |
40
+ OpenStruct.new(
41
+ consumer_name: pact['_embedded']['consumer']['name'],
42
+ provider_name: pact['_embedded']['provider']['name'],
43
+ consumer_version_number: pact['_embedded']['consumer']['_embedded']['version']['number'],
44
+ created_at: pact['createdAt']
45
+ )
46
+ end
47
+ end
48
+
49
+ def versions_resource
50
+ index_entry_point.get!._link('pb:latest-pact-versions').get!
51
+ end
52
+
53
+ def to_text(pacts)
54
+ require 'table_print'
55
+ options = [
56
+ { consumer_name: {display_name: 'consumer'} },
57
+ { consumer_version_number: {display_name: 'consumer_version'} },
58
+ { provider_name: {display_name: 'provider'} },
59
+ { created_at: {} }
60
+ ]
61
+ TablePrint::Printer.new(pacts, options).table_print
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,5 +1,5 @@
1
1
  module PactBroker
2
2
  module Client
3
- VERSION = '1.75.4'
3
+ VERSION = '1.76.1'
4
4
  end
5
5
  end
@@ -0,0 +1,16 @@
1
+ require 'pact_broker/client/hal'
2
+ require 'pact_broker/client/command_result'
3
+
4
+ module PactBroker
5
+ module Client
6
+ module Webhooks
7
+ class Test
8
+ def self.call(options, pact_broker_client_options)
9
+ http_client = PactBroker::Client::Hal::HttpClient.new(pact_broker_client_options.merge(pact_broker_client_options[:basic_auth] || {}))
10
+ execution_result = PactBroker::Client::Hal::EntryPoint.new(options.broker_base_url, http_client).get!._link!('pb:webhook').expand('uuid' => options.uuid).get!.post('pb:execute')
11
+ PactBroker::Client::CommandResult.new(true, execution_result.response.body['logs'])
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,28 @@
1
+
2
+ # -*- encoding: utf-8 -*-
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'pact_broker/client/version'
6
+
7
+ Gem::Specification.new do |gem|
8
+ gem.name = "pact_broker-client"
9
+ gem.version = PactBroker::Client::VERSION
10
+ gem.authors = ["Beth Skurrie"]
11
+ gem.email = ["beth@bethesque.com"]
12
+ gem.description = %q{Client for the Pact Broker. Publish, retrieve and query pacts and verification results. Manage webhooks and environments.}
13
+ gem.summary = %q{See description}
14
+ gem.homepage = "https://github.com/pact-foundation/pact_broker-client.git"
15
+ gem.files = `git ls-files`.split($/).reject { |file| file.match(/(test\/|spec\/|.github\/)/) }
16
+
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.require_paths = ["lib"]
19
+ gem.license = 'MIT'
20
+
21
+ gem.add_runtime_dependency 'httparty', ">= 0.21.0", "< 1.0.0"
22
+ gem.add_runtime_dependency 'term-ansicolor', '~> 1.7'
23
+ gem.add_runtime_dependency 'table_print', '~> 1.5'
24
+ gem.add_runtime_dependency 'thor', '>= 0.20', '< 2.0'
25
+ gem.add_runtime_dependency 'rake', '~> 13.0' #For FileList
26
+ gem.add_runtime_dependency 'dig_rb', '~> 1.0'
27
+ gem.add_runtime_dependency 'base64', '~> 0.2'
28
+ end
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
4
+ version: 1.76.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Beth Skurrie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-30 00:00:00.000000000 Z
11
+ date: 2024-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -130,13 +130,8 @@ executables:
130
130
  extensions: []
131
131
  extra_rdoc_files: []
132
132
  files:
133
- - ".github/dependabot.yml"
134
- - ".github/workflows/delete_branch_in_pactflow.yml"
135
- - ".github/workflows/release_gem.yml"
136
- - ".github/workflows/smartbear-issue-label-added.yml"
137
- - ".github/workflows/triage.yml"
138
- - ".github/workflows/trigger_pact_docs_update.yml"
139
133
  - ".gitignore"
134
+ - ".rspec"
140
135
  - ".ruby-version"
141
136
  - CHANGELOG.md
142
137
  - DEVELOPING.md
@@ -232,6 +227,7 @@ files:
232
227
  - lib/pact_broker/client/pacticipants/list.rb
233
228
  - lib/pact_broker/client/pacticipants/text_formatter.rb
234
229
  - lib/pact_broker/client/pacts.rb
230
+ - lib/pact_broker/client/pacts/list_latest_versions.rb
235
231
  - lib/pact_broker/client/publish_pacts.rb
236
232
  - lib/pact_broker/client/publish_pacts_the_old_way.rb
237
233
  - lib/pact_broker/client/retry.rb
@@ -247,11 +243,13 @@ files:
247
243
  - lib/pact_broker/client/versions/json_formatter.rb
248
244
  - lib/pact_broker/client/versions/text_formatter.rb
249
245
  - lib/pact_broker/client/webhooks/create.rb
246
+ - lib/pact_broker/client/webhooks/test.rb
250
247
  - lib/pact_broker_client.rb
251
248
  - lib/pactflow/client/cli/pactflow.rb
252
249
  - lib/pactflow/client/cli/provider_contract_commands.rb
253
250
  - lib/pactflow/client/provider_contracts/publish.rb
254
251
  - lib/pactflow/client/provider_contracts/publish_the_old_way.rb
252
+ - pact-broker-client.gemspec
255
253
  - script/approve-all.sh
256
254
  - script/can-i-deploy.sh
257
255
  - script/ci/delete-branch-in-pactflow.sh
@@ -289,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
287
  - !ruby/object:Gem::Version
290
288
  version: '0'
291
289
  requirements: []
292
- rubygems_version: 3.5.16
290
+ rubygems_version: 3.5.17
293
291
  signing_key:
294
292
  specification_version: 4
295
293
  summary: See description
@@ -1,6 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: "github-actions"
4
- directory: "/"
5
- schedule:
6
- interval: "monthly"
@@ -1,24 +0,0 @@
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"
@@ -1,74 +0,0 @@
1
- name: Release gem
2
-
3
- on:
4
- repository_dispatch:
5
- types:
6
- - release-triggered
7
- workflow_dispatch:
8
-
9
- jobs:
10
- test:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
- - uses: ruby/setup-ruby@v1
15
- - run: |
16
- gem install bundler -v 2.4
17
- bundle install
18
- - name: Test
19
- run: bundle exec rake
20
-
21
- release:
22
- needs: test
23
- runs-on: ubuntu-latest
24
- outputs:
25
- gem_name: ${{ steps.release.outputs.gem_name }}
26
- version: ${{ steps.release.outputs.version }}
27
- increment: ${{ steps.release.outputs.increment }}
28
- steps:
29
- - uses: actions/checkout@v4
30
- with:
31
- fetch-depth: 0
32
- - uses: pact-foundation/release-gem@v1
33
- id: release
34
- env:
35
- GEM_HOST_API_KEY: '${{ secrets.RUBYGEMS_API_KEY }}'
36
- GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
37
- INCREMENT: '${{ github.event.client_payload.increment }}'
38
-
39
- record-release:
40
- needs: release
41
- runs-on: ubuntu-latest
42
- steps:
43
- - uses: actions/checkout@v4
44
- - uses: ruby/setup-ruby@v1
45
- - name: Bundle install
46
- run: |
47
- gem install bundler -v 2.4
48
- bundle config set --local without development test
49
- bundle install
50
- - name: Record release
51
- run: script/ci/record-release.sh
52
- env:
53
- PACT_BROKER_BASE_URL: https://pact-foundation.pactflow.io
54
- PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN_PACT_FOUNDATION }}
55
-
56
- notify-gem-released:
57
- needs: release
58
- strategy:
59
- matrix:
60
- repository: [pact-foundation/pact-ruby-cli, pact-foundation/pact-ruby-standalone, pact-foundation/pact_broker-client]
61
- runs-on: ubuntu-latest
62
- steps:
63
- - name: Notify ${{ matrix.repository }} of gem release
64
- uses: peter-evans/repository-dispatch@v3
65
- with:
66
- token: ${{ secrets.GHTOKENFORPACTCLIRELEASE }}
67
- repository: ${{ matrix.repository }}
68
- event-type: gem-released
69
- client-payload: |
70
- {
71
- "name": "${{ needs.release.outputs.gem_name }}",
72
- "version": "${{ needs.release.outputs.version }}",
73
- "increment": "${{ needs.release.outputs.increment }}"
74
- }
@@ -1,11 +0,0 @@
1
- name: SmartBear Supported Issue Label Added
2
-
3
- on:
4
- issues:
5
- types:
6
- - labeled
7
-
8
- jobs:
9
- call-workflow:
10
- uses: pact-foundation/.github/.github/workflows/smartbear-issue-label-added.yml@master
11
- secrets: inherit
@@ -1,15 +0,0 @@
1
- name: Triage Issue
2
-
3
- on:
4
- issues:
5
- types:
6
- - opened
7
- - labeled
8
- pull_request:
9
- types:
10
- - labeled
11
-
12
- jobs:
13
- call-workflow:
14
- uses: pact-foundation/.github/.github/workflows/triage.yml@master
15
- secrets: inherit
@@ -1,23 +0,0 @@
1
- name: Trigger update to docs.pact.io
2
-
3
- on:
4
- push:
5
- branches:
6
- - master
7
- paths:
8
- - '**.md'
9
- repository_dispatch:
10
- types:
11
- - gem-released
12
- workflow_dispatch:
13
-
14
- jobs:
15
- build:
16
- runs-on: ubuntu-latest
17
- steps:
18
- - name: Trigger docs.pact.io update workflow
19
- uses: peter-evans/repository-dispatch@v3
20
- with:
21
- token: ${{ secrets.GHTOKENFORTRIGGERINGPACTDOCSUPDATE }}
22
- repository: pact-foundation/docs.pact.io
23
- event-type: pact-broker-client-docs-updated