From bcce5a86e9f35981324fa0b8bc42972ddd1b3187 Mon Sep 17 00:00:00 2001 From: Yousaf Nabi Date: Fri, 28 Jul 2023 12:11:22 +0100 Subject: [PATCH] chore: simplify? auto detect consumer_version logic --- README.md | 8 ++++---- lib/pact_broker/client/cli/pact_commands.rb | 6 ++---- lib/pact_broker/client/git.rb | 2 +- lib/pact_broker/client/tasks/publication_task.rb | 2 +- spec/lib/pact_broker/client/cli/broker_publish_spec.rb | 4 ++-- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5469e9b..a986b74 100644 --- a/README.md +++ b/README.md @@ -59,10 +59,10 @@ Options: -h, [--branch=BRANCH] # Repository branch of the consumer version -r, [--auto-detect-version-properties], [--no-auto-detect-version-properties] - # Automatically detect the repository branch from known CI - environment variables or git CLI. Supports Buildkite, Circle - CI, Travis CI, GitHub Actions, Jenkins, Hudson, AppVeyor, - GitLab, CodeShip, Bitbucket and Azure DevOps. + # Automatically detect the repository commit and branch from + known CI environment variables or git CLI. Supports Buildkite, + Circle CI, Travis CI, GitHub Actions, Jenkins, Hudson, + AppVeyor, GitLab, CodeShip, Bitbucket and Azure DevOps. -t, [--tag=TAG] # Tag name for consumer version. Can be specified multiple times. diff --git a/lib/pact_broker/client/cli/pact_commands.rb b/lib/pact_broker/client/cli/pact_commands.rb index 0c30300..81a8ee9 100644 --- a/lib/pact_broker/client/cli/pact_commands.rb +++ b/lib/pact_broker/client/cli/pact_commands.rb @@ -14,9 +14,9 @@ module PactCommands def self.included(thor) thor.class_eval do desc 'publish PACT_DIRS_OR_FILES ...', "Publish pacts to a Pact Broker." - method_option :consumer_app_version, aliases: "-a", desc: "The consumer application version", default: '' + method_option :consumer_app_version, aliases: "-a", desc: "The consumer application version" method_option :branch, aliases: "-h", desc: "Repository branch of the consumer version" - method_option :auto_detect_version_properties, aliases: "-r", type: :boolean, default: false, desc: "Automatically detect the repository branch from known CI environment variables or git CLI. Supports Buildkite, Circle CI, Travis CI, GitHub Actions, Jenkins, Hudson, AppVeyor, GitLab, CodeShip, Bitbucket and Azure DevOps." + method_option :auto_detect_version_properties, aliases: "-r", type: :boolean, default: false, desc: "Automatically detect the repository commit and branch from known CI environment variables or git CLI. Supports Buildkite, Circle CI, Travis CI, GitHub Actions, Jenkins, Hudson, AppVeyor, GitLab, CodeShip, Bitbucket and Azure DevOps." method_option :tag, aliases: "-t", type: :array, banner: "TAG", desc: "Tag name for consumer version. Can be specified multiple times." method_option :tag_with_git_branch, aliases: "-g", type: :boolean, default: false, required: false, desc: "Tag consumer version with the name of the current git branch. Supports Buildkite, Circle CI, Travis CI, GitHub Actions, Jenkins, Hudson, AppVeyor, GitLab, CodeShip, Bitbucket and Azure DevOps. Default: false" method_option :build_url, desc: "The build URL that created the pact" @@ -122,8 +122,6 @@ def consumer_app_version require 'pact_broker/client/git' if options.consumer_app_version.blank? && options.auto_detect_version_properties PactBroker::Client::Git.commit(raise_error: explict_auto_detect_version_properties) - elsif (options.consumer_app_version.nil? || options.consumer_app_version == '' || options.consumer_app_version == 'consumer_app_version') && !options.auto_detect_version_properties - raise Thor::Error.new("ERROR: --consumer-app-version was not provided a value and --auto-detect-version-properties not set") else options.consumer_app_version end diff --git a/lib/pact_broker/client/git.rb b/lib/pact_broker/client/git.rb index 7c5744f..4354a49 100644 --- a/lib/pact_broker/client/git.rb +++ b/lib/pact_broker/client/git.rb @@ -104,7 +104,7 @@ def self.execute_git_commit_command(raise_error) raise PactBroker::Client::Error, "Could not determine current git commit using command `#{COMMIT_COMMAND}`. #{e.class} #{e.message}" else - return nil + return [] end end diff --git a/lib/pact_broker/client/tasks/publication_task.rb b/lib/pact_broker/client/tasks/publication_task.rb index 6f194bd..bd24544 100644 --- a/lib/pact_broker/client/tasks/publication_task.rb +++ b/lib/pact_broker/client/tasks/publication_task.rb @@ -45,7 +45,7 @@ def branch= branch end def consumer_version=(consumer_version) - @version_required = version_required || !!consumer_version + @version_required = !!consumer_version @consumer_version = consumer_version end diff --git a/spec/lib/pact_broker/client/cli/broker_publish_spec.rb b/spec/lib/pact_broker/client/cli/broker_publish_spec.rb index 6eac2a5..00c132f 100644 --- a/spec/lib/pact_broker/client/cli/broker_publish_spec.rb +++ b/spec/lib/pact_broker/client/cli/broker_publish_spec.rb @@ -163,7 +163,7 @@ module PactBroker::Client::CLI context "with --auto-detect-version-properties on by default" do before do subject.options = OpenStruct.new( - minimum_valid_options.merge(auto_detect_version_properties: true, consumer_app_version: '') + minimum_valid_options.merge(auto_detect_version_properties: true, consumer_app_version: nil) ) allow(subject).to receive(:explict_auto_detect_version_properties).and_return(false) end @@ -203,7 +203,7 @@ module PactBroker::Client::CLI context "with --auto-detect-version-properties specified explicitly" do before do subject.options = OpenStruct.new( - minimum_valid_options.merge(auto_detect_version_properties: true, consumer_app_version: '') + minimum_valid_options.merge(auto_detect_version_properties: true, consumer_app_version: nil) ) allow(subject).to receive(:explict_auto_detect_version_properties).and_return(true) end