module JiraFixVersionRelease

Constants

VERSION

Public Class Methods

execute_options(options) click to toggle source
# File lib/jira_fix_version_release.rb, line 87
def self.execute_options(options)
        fix_version = options[:fix_version]
        
        jira = JIRAOptions.new(options[:username], options[:password], options[:jira_domain])

        puts "Running script please wait...", ""
        issues = jira.getUnreleasedJiraTickets(options[:project_key], options)

        puts "Discovered ready to release tickets!"

        release = jira.createFixVersion(fix_version)
        puts "Fix version: #{fix_version} created in JIRA"

        issues.each do |issue|
                #puts issue['key']
                jira.updateFixVersion(issue['key'], fix_version)
        end
        puts "Successfully updated Fix Versions!"

        issues.each do |issue|
                if options[:commits] != nil
                        puts "Commit History"
                        puts jira.getCommitMessages(issue['id'])
                        STDOUT.flush
        end
        end
        jira.releaseFixVersion(release['id'])
end
parse(args) click to toggle source
# File lib/jira_fix_version_release.rb, line 5
def self.parse(args)
              options = {}
              opt_parser = OptionParser.new do |opts|
                      opts.banner = "Usage: jira_fix_version_release [options]"
                      opts.separator " "
             opts.separator "Specific options:"

             opts.on("-h", "--help", "Displays help") do
                      puts opts
                      exit
              end

             opts.on("-u", "--username=USERNAME",
                    "JIRA username is required") do |username|
                      options[:username] = username
                  end

                  opts.on("-p", "--password=PASSWORD",
                    "JIRA password is required") do |password|
                      options[:password] = password
                  end

                  opts.on("-j", "--project_key=PROJECT_KEY",
                    "JIRA project key is required") do |project_key|
                      options[:project_key] = project_key
                  end

                  opts.on("-v", "--fix_version=FIX_VERSION",  
                    "JIRA fix version is required") do |v|
                      options[:fix_version] = v
                      end

                  opts.on("-f", "--jql_filter=JQL_FILTER",
                    "JQL filter query is required") do |jql_filter|
                      options[:jql_filter] = jql_filter
                  end

                  opts.on("-d", "--jira_domain=JIRA_DOMAIN",  
                    "JIRA domain is required") do |d|
                      options[:jira_domain] = d
                      end        

                  opts.on("-c", "--commits",
                    "displays commit history") do |commits|
                      options[:commits] = commits
                  end           

              end.parse!

              if options[:username] == nil
                      print 'Enter JIRA username: '
              options[:username] = gets.chomp
      end

      if options[:password] == nil
              options[:password] = `read -s -p "Enter JIRA password: " password; echo $password`.chomp
              puts ""
      end

      if options[:project_key] == nil
                      print 'Enter JIRA project KEY: '
              options[:project_key] = gets.chomp
      end

      if options[:fix_version] == nil
                      print 'Enter JIRA fix version: '
              options[:fix_version] = gets.chomp
      end

      if options[:jira_domain] == nil
                      print 'Enter JIRA url: '
              options[:jira_domain] = gets.chomp
      end

      if options[:jql_filter] == nil
                      print 'Enter JQL filter: '
              options[:jql_filter] = gets.chomp
      end

      return options
      end