Author: jvanzyl Date: Fri Dec 9 11:49:11 2005 New Revision: 355583 URL: http://svn.apache.org/viewcvs?rev=355583&view=rev Log: o updating jira bot to create issues and add questions to the FAQ
Modified: maven/sandbox/issue/rbot/jira.rb Modified: maven/sandbox/issue/rbot/jira.rb URL: http://svn.apache.org/viewcvs/maven/sandbox/issue/rbot/jira.rb?rev=355583&r1=355582&r2=355583&view=diff ============================================================================== --- maven/sandbox/issue/rbot/jira.rb (original) +++ maven/sandbox/issue/rbot/jira.rb Fri Dec 9 11:49:11 2005 @@ -1,49 +1,75 @@ -require 'jira4r' +require 'issue' require 'yaml' +# faq counter: totals, by each contributor. a report would be nice. + class JiraPlugin < Plugin @server = nil - @url = nil - - def privmsg(m) - unless(m.params) + def jira(m,params) + unless(params) m.reply "incorrect usage. " + help(m.plugin) end - + # Using the jira library directly seems to crash rbot ... # so i'm just exec'ing the command line tool used to query # JIRA from the command line. - - issue = getServer().getIssue( m.params.to_s.upcase ) + + issue = getServer().getIssue( params[:issue].to_s.upcase ) + puts issue + url = getServer().issueUrl(issue) + puts url user = getServer().getUser( issue['reporter'] ) m.reply( " " ) - string = " Issue: #{issue['key']}\n" - string << " URL: [EMAIL PROTECTED]/browse/#{issue['key']}\n" + string = "" + string << " URL: #{url}\n" string << " Status: #{issue['status']}\n" string << " Summary: #{issue['summary']}\n" string << "Reporter: #{user['fullname']} (#{issue['reporter']})" m.reply( string ) m.reply( " " ) end + + # Need to know which person submitted the entry + def faqa(m,params) + unless(m.params) + m.reply "incorrect usage. " + help(m.plugin) + end + who = params[:who] + summary = params[:phrase].join( " " ) + fields = getServer().createIssue2( 'MNGFAQ', summary, 'none', '1', who, 'minor' ) + getServer().closeIssue( fields ) + end + + # Need to know which person submitted the entry + def faqq(m,params) + unless(m.params) + m.reply "incorrect usage. " + help(m.plugin) + end + who = params[:who] + summary = params[:phrase].join( " " ) + puts who + puts summary + fields = getServer().createIssue2( 'MNGFAQ', summary, 'none', '1', who, 'minor' ) + end + def issue(m,params) + fields = getServer().createIssue2( params[:project], params[:summary], params[:description], '1', params[:assignee], 'minor' ) + m.reply( fields['key'] ) + m.reply( " created." ) + end + def getServer if @server == nil - jira = YAML::load( File.open( File.join( ENV['HOME'], 'jira.yaml' ) ) ) - - user = jira['user'] - password = jira['password'] - @url = jira['server'] - - @server = JIRA::Server.new( @url ) - @server.login( user, password ) + @server = IssueManager.new() end - return @server + @server end end plugin = JiraPlugin.new -plugin.register("jira") - - +plugin.map 'jira :issue' +plugin.map 'faqa :who *phrase' +plugin.map 'faqq :who *phrase' +plugin.map 'issue :project :summary :description :assignee'