Class: Abide::CLI::JiraFromXccdfCommand
- Inherits:
 - 
      CmdParse::Command
      
        
- Object
 - CmdParse::Command
 - Abide::CLI::JiraFromXccdfCommand
 
 
- Defined in:
 - lib/abide_dev_utils/cli/jira.rb
 
Constant Summary collapse
- CMD_NAME =
 'from-xccdf'- CMD_SHORT =
 'Creates a parent issue with subtasks from a xccdf file'- CMD_LONG =
 'Creates a parent issue with subtasks for a benchmark and any uncovered controls'
Instance Method Summary collapse
- #execute(path, project) ⇒ Object
 - 
  
    
      #initialize  ⇒ JiraFromXccdfCommand 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of JiraFromXccdfCommand.
 
Constructor Details
#initialize ⇒ JiraFromXccdfCommand
Returns a new instance of JiraFromXccdfCommand.
      116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134  | 
    
      # File 'lib/abide_dev_utils/cli/jira.rb', line 116 def initialize super(CMD_NAME, takes_commands: false) short_desc(CMD_SHORT) long_desc(CMD_LONG) argument_desc(PATH: 'An XCCDF file', PROJECT: 'A Jira project') .on('-d', '--dry-run', 'Runs through mock issue creation. Useful for testing, but not reliable for knowing what exactly will be created. Use --explain for more accurate information.') do @data[:dry_run] = true end .on('-x', '--explain', 'Shows a report of all the controls that will and won\'t be created as issues, and why. DOES NOT create issues.') do @data[:explain] = true end .on('-e [EPIC]', '--epic [EPIC]', 'If given, tasks will be created and assigned to this epic. Takes form <PROJECT>-<NUM>') { |e| @data[:epic] = e } .on('-l [LEVEL]', '--level [LEVEL]', 'Only create tasks for rules belonging to the matching level. Takes a string that is treated as RegExp') do |x| @data[:level] = x end .on('-p [PROFILE]', '--profile [PROFILE]', 'Only create tasks for rules belonging to the matching profile. Takes a string that is treated as RegExp') do |x| @data[:profile] = x end end  | 
  
Instance Method Details
#execute(path, project) ⇒ Object
      136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153  | 
    
      # File 'lib/abide_dev_utils/cli/jira.rb', line 136 def execute(path, project) Abide::CLI::VALIDATE.file(path) # Each control gets assigned labels based on the levels and profiles it supports. # Those labels all take the form "level_<level>_<profile>". This allows us to # filter the controls we want to create tasks for by level and profile. @data[:label_include] = nil @data[:label_include] = "level_#{@data[:level]}_" if @data[:level] @data[:label_include] = "#{@data[:label_include]}#{@data[:profile]}" if @data[:profile] Abide::CLI::OUTPUT.simple "Label include: #{@data[:label_include]}" AbideDevUtils::Jira.new_issues_from_xccdf( project, path, epic: @data[:epic], dry_run: @data[:dry_run], explain: @data[:explain], label_include: @data[:label_include], ) end  |