From 1b522b4877733178693075e3a3375ea8f9bd8a64 Mon Sep 17 00:00:00 2001 From: Caitlin Date: Wed, 30 Apr 2025 10:33:28 -0400 Subject: [PATCH] Accept 'state' command line option from uploader thor tasks --- CHANGELOG.md | 1 + lib/dradis/plugins/thor_helper.rb | 12 ++++++++++-- lib/dradis/plugins/upload/importer.rb | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0eecee5..0afa5d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ v4.16.0 (Month 2025) - Enable audit tracking for persistent permissions changes - Default to draft state on tool upload + - Accept 'state' command line option from uploader thor tasks v4.15.0 (December 2024) - No changes diff --git a/lib/dradis/plugins/thor_helper.rb b/lib/dradis/plugins/thor_helper.rb index 5042e09..fbb7cdf 100644 --- a/lib/dradis/plugins/thor_helper.rb +++ b/lib/dradis/plugins/thor_helper.rb @@ -9,21 +9,29 @@ def detect_and_set_project_scope end def task_options - @task_options ||= { logger: logger, state: :draft } + @task_options ||= { logger: logger, state: detect_state } end def logger @logger ||= default_logger end - private + def default_logger STDOUT.sync = true logger = Logger.new(STDOUT) logger.level = Logger::DEBUG logger end + + def detect_state + if options.state && Upload::Importer::VALID_STATES.include?(options.state) + options.state.to_sym + else + :draft + end + end end end end diff --git a/lib/dradis/plugins/upload/importer.rb b/lib/dradis/plugins/upload/importer.rb index 29f060c..aecfdee 100644 --- a/lib/dradis/plugins/upload/importer.rb +++ b/lib/dradis/plugins/upload/importer.rb @@ -5,6 +5,9 @@ module Dradis module Plugins module Upload class Importer + + VALID_STATES = %w[draft published ready_for_review].freeze + attr_accessor( :content_service, :default_user_id,