class Jira
Constants
- AddMyWatch
- BASE_PATH
- Mine
- NotWatching
- ServerInfo
- WatchCategory
Public Instance Methods
add_my_watch() { || ... }
click to toggle source
# File lib/rct_jira.rb, line 274 def add_my_watch user = sget('username') password = sget('password') project = sget('project') key = sget('key') ssettmp(SERVER_PROTOCOL, 'https') ssettmp(REQ_METHOD, 'POST') ssettmp(REQ_AUTH_TYPE, REQ_AUTH_TYPE_BASIC) ssettmp(REQ_AUTH_NAME, user) ssettmp(REQ_AUTH_PWD, password) ssettmp(REQ_PATH, "#{BASE_PATH}/issue/#{key}/watchers") ssettmp(REQ_BODY, "\"#{user}\"") headers = Hash.new() headers['Content-type'] = 'application/json' ssettmp(REQ_HEADERS, headers) result = yield if (result.status == 204) if (is_cli) sset(CLI_OUTPUT, "Added #{user} as a watcher to #{key}") end else result.add_error("Unable to add #{user} to #{key}") end return result end
cli()
click to toggle source
# File lib/rct_jira.rb, line 57 def cli return { 'server_info' => ServerInfo, 'not_watching' => NotWatching, 'add_my_watch' => AddMyWatch, 'watch_category' => WatchCategory, 'mine' => Mine } end
description()
click to toggle source
# File lib/rct_jira.rb, line 41 def description "The RCT Jira class implements access to some of the common Jira\n" + "(http://en.wikipedia.org/wiki/JIRA) APIs." end
mine() { || ... }
click to toggle source
# File lib/rct_jira.rb, line 197 def mine user = sget('username') password = sget('password') project = sget('project') limit = sget('limit') limit = '100' if (limit == nil) ssettmp(SERVER_PROTOCOL, 'https') ssettmp(REQ_METHOD, 'GET') ssettmp(REQ_AUTH_TYPE, REQ_AUTH_TYPE_BASIC) ssettmp(REQ_AUTH_NAME, user) ssettmp(REQ_AUTH_PWD, password) ssettmp(REQ_PATH, "#{BASE_PATH}/search") params = add_param(nil, 'maxResults', limit) params = add_param(params, 'fields', 'summary') jql = "" if (project != nil) jql = "project=#{project} AND " end jql = "#{jql}assignee = currentUser() AND (status=\"Open\" OR status=\"In Progress\")" params = add_param(params, 'jql', jql) ssettmp(REQ_PARAMS, params) result = yield if (result.ok) # On success, create a simple key->description hash with the results if (is_cli) then cli_output = "\n" end list = Hash.new() json = JSON.parse(result.body) issues = json['issues'] issues.each { |h| key = h['key'] summary = h['fields']['summary'] list[key] = summary if (is_cli) then cli_output += "#{key} : #{summary}\n" end } sset('my_bugs', list) if (is_cli) sset(CLI_OUTPUT, cli_output) end end return result end
not_watching() { || ... }
click to toggle source
# File lib/rct_jira.rb, line 120 def not_watching user = sget('username') password = sget('password') project = sget('project') limit = sget('limit') limit = '100' if (limit == nil) ssettmp(SERVER_PROTOCOL, 'https') ssettmp(REQ_METHOD, 'GET') ssettmp(REQ_AUTH_TYPE, REQ_AUTH_TYPE_BASIC) ssettmp(REQ_AUTH_NAME, user) ssettmp(REQ_AUTH_PWD, password) ssettmp(REQ_PATH, "#{BASE_PATH}/search") params = add_param(nil, 'maxResults', limit) params = add_param(params, 'fields', 'summary') params = add_param(params, 'jql', "project=#{project} and watcher != currentUser()") ssettmp(REQ_PARAMS, params) result = yield if (result.ok) # On success, create a simple key->description hash with the results if (is_cli) then cli_output = "\n" end unwatched = Hash.new() json = JSON.parse(result.body) issues = json['issues'] if (issues != nil) issues.each { |h| key = h['key'] summary = h['fields']['summary'] unwatched[key] = summary if (is_cli) then cli_output += "#{key} : #{summary}\n" end } end sset('not_watching_result', unwatched) if (is_cli) sset(CLI_OUTPUT, cli_output) end end return result end
server_info() { || ... }
click to toggle source
# File lib/rct_jira.rb, line 84 def server_info ssettmp(SERVER_PROTOCOL, 'https') ssettmp(REQ_METHOD, 'GET') ssettmp(REQ_PATH, "#{BASE_PATH}/serverInfo") yield end
watch_category()
click to toggle source
# File lib/rct_jira.rb, line 335 def watch_category project = sget('project') # Pretend we're not in CLI mode even if we are to avoid duplicate output # from the functions we're wrapping. mode = RCT.sget(RCT_MODE) RCT.sdelete(RCT_MODE) result = not_watching { $HTTP.handle_request() } if (!result.ok) result.add_error("Unable to get list of unwatched issues") RCT.sset(RCT_MODE, mode) return result end issues = RCT.sget('not_watching_result') count = 0 issues.each { |key, desc| RCT.log(RESULT, "#{key}: #{desc}") RCT.sset('key', key) result = add_my_watch { $HTTP.handle_request() } if (!result.ok) result.add_error("Unable to add watcher to #{key}") RCT.sset(RCT_MODE, mode) return result end count = count + 1 } RCT.sset(RCT_MODE, mode) if (is_cli) sset(CLI_OUTPUT, "Added #{count} bugs to watch in #{project}") end return result end