lib/bender/main.rb in bender-bot-0.6.1 vs lib/bender/main.rb in bender-bot-0.6.2
- old
+ new
@@ -132,11 +132,11 @@
return
end
open_incidents = incidents.select do |i|
status = normalize_value i['fields']['status']
- severity = short_severity(i['fields'][SEVERITY_FIELD]['value'])
+ severity = short_severity(i['fields'][SEVERITY_FIELD]['value']) rescue ''
is_open = !(status =~ /resolved|closed/i)
is_severe = severity =~ /(SEV1|SEV2)/i
is_open && is_severe
end
@@ -274,38 +274,45 @@
end
end
def periodically_refresh_group bot
- req_path = '/rest/api/2/group'
- req_params = QueryParams.encode \
- groupname: config[:jira_group],
- expand: 'users'
-
- uri = URI(config[:jira_site] + req_path + '?' + req_params)
- http = Net::HTTP.new uri.hostname, uri.port
-
- req = Net::HTTP::Get.new uri
- req.basic_auth config[:jira_user], config[:jira_pass]
- req['Content-Type'] = 'application/json'
- req['Accept'] = 'application/json'
-
Thread.new do
loop do
begin
- resp = http.request req
- data = JSON.parse resp.body
+ req_path = '/rest/api/2/group/member'
+ is_last, values, start = false, [], 0
+ until is_last
+ req_params = QueryParams.encode \
+ groupname: config[:jira_group],
+ startAt: start
+
+ uri = URI(config[:jira_site] + req_path + '?' + req_params)
+ http = Net::HTTP.new uri.hostname, uri.port
+
+ req = Net::HTTP::Get.new uri
+ req.basic_auth config[:jira_user], config[:jira_pass]
+ req['Content-Type'] = 'application/json'
+ req['Accept'] = 'application/json'
+
+ resp = http.request req
+ data = JSON.parse resp.body
+ values += data['values']
+ is_last = data['isLast']
+ start += data['maxResults']
+ end
+
+ user_names = values.map { |u| u['displayName'] }
+ bot.store['group'] = user_names
+ sleep config[:group_refresh]
+
rescue StandardError => e
log.error \
message: 'Could not periodically refresh group',
- error: e.class
+ error: e.class,
+ data: resp.body
sleep 5
- next
end
-
- user_names = data['users']['items'].map { |u| u['displayName'] }
- bot.store['group'] = user_names
- sleep config[:group_refresh]
end
end
end
end