Skip to content

Instantly share code, notes, and snippets.

@joshuap
joshuap / gist:5c0b3c6cb0bfb150cef3caf98cf9c6f6
Created April 4, 2019 22:08
Report correct controller name and action to Honeybadger w/ custom Rails exceptions app
Honeybadger.configure do |config|
config.before_notify do |notice|
# break out of our hook if component is not our errors controller
break if notice.component != 'errors'
# correct the component and action info based on the url
params = Rails.application.routes.recognize_path(notice.url)
# => {:controller=>"page", :action=>"index"}
notice.controller = params[:controller]
notice.action = params[:action]
@joshuap
joshuap / application_job.rb
Created March 19, 2019 16:15
Report ActiveJob exceptions to Honeybadger (default backend/unsupported backends)
# app/jobs/application_job.rb
class ApplicationJob < ActiveJob::Base
include HoneybadgerActiveJob
end
@joshuap
joshuap / redis.rb
Created November 30, 2018 01:31
Disable dangerous Redis commands in Ruby
# config/initializers/redis.rb
require 'redis'
# Disables the `flushdb` and `flushall` commands.
class Redis
module DangerousCommands
def flushdb
raise 'This is EXTREMELY DANGEROUS! If you really want to EMPTY THE ENTIRE DATABASE, do it from `redis-cli`.'
# You could call `super` here if you want to allow access in some circumstances.
end

Keybase proof

I hereby claim:

  • I am joshuap on github.
  • I am joshuawood (https://keybase.io/joshuawood) on keybase.
  • I have a public key whose fingerprint is D3BB F6B6 9348 B77E 21EC 8176 3B5A E18B 78E3 1A12

To claim this, I am signing this object:

@joshuap
joshuap / nginx.conf
Last active December 8, 2016 02:49
NGINX basic authentication w/ Honeybadger support
http {
# Increase the size of allowed values in map directive.
map_hash_bucket_size 128;
# Set the $auth_basic variable based on the value of the Honeybadger-Token header.
map $http_honeybadger_token $auth_basic {
default "Restricted Content";
"5245586210a715a83dfa8c6395226a19f7e46a6b647cc349b0479e92a4c43e42" "off";
}
@joshuap
joshuap / Gemfile
Last active April 20, 2016 15:54
RSpec expect_any_instance_of inheritance bug
source 'https://rubygems.org'
gem 'rspec', '3.4.0'
@joshuap
joshuap / assigned.json
Last active August 29, 2015 14:16
Example outage payloads for Honeybadger WebHooks
{"event":"assigned","message":"[Crywolf/production] RuntimeError assigned to Benjamin Curtis by Joshua Wood","actor":{"id":3,"email":"[email protected]","name":"Joshua Wood"},"fault":{"project_id":1717,"klass":"RuntimeError","component":"pages","action":"caused_exception","environment":"production","resolved":true,"ignored":false,"created_at":"2015-07-21T20:06:20.046Z","comments_count":4,"message":"This is the third cause raised at 2015-07-21 13:06:19 -0700","notices_count":1,"last_notice_at":"2015-07-21T20:06:20.000Z","tags":[],"id":14108233,"assignee":"[email protected]"},"assignee":{"id":1,"email":"[email protected]","name":"Benjamin Curtis"}}
@joshuap
joshuap / block_allocations.rb
Created March 6, 2015 20:00
Object allocations when calling block parameter vs. yielding implicitly.
require 'allocation_stats'
GROUP_BY = [:sourcefile, :sourceline, :class]
def block_without_param
yield
end
def block_with_param(&block)
block.call
@joshuap
joshuap / Gemfile
Last active August 29, 2015 14:05
CarrierWave
# File uploads
gem 'carrierwave'
# Image processing
gem 'mini_magick'
# S3 file storage
gem 'fog'
@joshuap
joshuap / .gitconfig
Created May 2, 2014 23:44
Josh's .gitconfig
[core]
excludesfile = ~/.gitignore
editor = mate -w
whitespace = trailing-space,space-before-tab
[apply]
whitespace = fix
[color]
ui = true ;doesnt work for some reason ...