Skip to content

Instantly share code, notes, and snippets.

@bill-mfv
Created January 17, 2023 10:14
Show Gist options
  • Save bill-mfv/c48a46ae11d917a4da4fd8bb9a457aac to your computer and use it in GitHub Desktop.
Save bill-mfv/c48a46ae11d917a4da4fd8bb9a457aac to your computer and use it in GitHub Desktop.
require 'uri'
require 'net/http'
require 'openssl'
def get_occurrences_of_an_item read_token, item_id
url = URI("https://api.rollbar.com/api/1/item/#{item_id}/instances")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json; charset=utf-8'
request["X-Rollbar-Access-Token"] = read_token
response = http.request(request)
items = JSON.parse(response.read_body)
items["result"]["instances"] || []
end
def delete_occurrences_of_an_item read_token, write_token, item_id
instances = get_occurrences_of_an_item(read_token, item_id)
instances.each do |inst|
url = URI("https://api.rollbar.com/api/1/instance/#{inst["id"]}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["accept"] = 'application/json; charset=utf-8'
request["X-Rollbar-Access-Token"] = write_token
response = http.request(request)
end
delete_occurrences_of_an_item(read_token, item_id) if instances.length > 0
end
def delete_items read_token, write_token, prefix_error
url = URI("https://api.rollbar.com/api/1/items?level=error")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json'
request["X-Rollbar-Access-Token"] = read_token
response = http.request(request)
body = JSON.parse(response.read_body)
items = body["result"]["items"] || []
items.each do |item|
need_delete = item["title"].start_with?(prefix_error)
puts "---#{item['title']}--#{item['id']}--#{need_delete}"
next unless need_delete
puts "--deleting--"
delete_occurrences_of_an_item(read_token, write_token, item["id"])
end
end
# Usage
# read & write token are get from Rollbar project setting page
# delete_items "1", "1", "NoMethodError: undefined method"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment