{"id":20706299,"url":"https://github.com/schneidmaster/exception_canary","last_synced_at":"2026-04-18T21:03:54.501Z","repository":{"id":33985797,"uuid":"37737267","full_name":"schneidmaster/exception_canary","owner":"schneidmaster","description":"A mountable, configurable Rails engine to notify you only of new or important exceptions in your application.","archived":false,"fork":false,"pushed_at":"2016-02-11T02:25:18.000Z","size":2626,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-11T05:17:52.640Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schneidmaster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-19T17:54:06.000Z","updated_at":"2015-06-19T17:54:17.000Z","dependencies_parsed_at":"2022-07-13T22:42:41.417Z","dependency_job_id":null,"html_url":"https://github.com/schneidmaster/exception_canary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/schneidmaster/exception_canary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneidmaster%2Fexception_canary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneidmaster%2Fexception_canary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneidmaster%2Fexception_canary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneidmaster%2Fexception_canary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schneidmaster","download_url":"https://codeload.github.com/schneidmaster/exception_canary/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schneidmaster%2Fexception_canary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31984558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T01:22:27.427Z","updated_at":"2026-04-18T21:03:54.464Z","avatar_url":"https://github.com/schneidmaster.png","language":"Ruby","readme":"[![Build Status](https://circleci.com/gh/schneidmaster/exception_canary.svg?style=svg)](https://circleci.com/gh/schneidmaster/exception_canary)\n\n# exception_canary\n\nexception_canary is a mountable, configurable Rails engine to notify you only of new or important exceptions in your application, designed as a drop-in replacement (actually scaffolding) for [exception_notification](https://github.com/smartinez87/exception_notification). and [exception_notification-rake](https://github.com/nikhaldi/exception_notification-rake).\n\n**Only compatible with Rails 3 - no present Rails 4 support.**\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'exception_canary'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install exception_canary\n\nYou will also need to install the migrations for the exception_canary tables:\n\n    $ rake exception_canary:install:migrations\n\n## Usage\n\nexception_canary is build directly on top of [exception_notification](https://github.com/smartinez87/exception_notification). and [exception_notification-rake](https://github.com/nikhaldi/exception_notification-rake), so all of the configuration options you know and love still work. Neato!\n\nSpecifically, check out the [Getting Started](https://github.com/smartinez87/exception_notification#getting-started) section of exception_notification and the [Usage](https://github.com/nikhaldi/exception_notification-rake#usage) section of exception_notification-rake. You will need to do all of this setup exactly as before.\n\nNext, you will need to mount exception_canary's admin interface in your application. This allows you to see and manipulate groups and stored exceptions. exception_canary stores all exceptions in the database to permit you to retroactively search them, apply groups, or recover data if something is being suppressed when it shouldn't be.\n\nFinally, exception_canary needs to know where it lives at so it can generate email links. If you just mount the engine without naming the route, you don't need to do anything. If exception_canary lives anywhere other than `:exception_canary_url` (e.g. you `mount ... as: some_url`), you must add the following line to your configuration in each environment:\n\n```ruby\nYour::Application.configure do\n  ...\n  config.exception_canary_root = :some_other_exception_canary_url\n  ...\nend\n```\n\nYou may also define this as an absolute path, e.g.:\n\n```ruby\nYour::Application.configure do\n  ...\n  config.exception_canary_root = 'https://myapp.io/some_exception_canary_url'\n  ...\nend\n```\n\n## Running Tests\n\nYou'll need to set up the database, install dependencies, and run specs like so:\n\n    $ rake db:create\n    $ rake db:migrate\n    $ rake app:db:test:prepare\n    $ rspec\n\n## Authorship\n\nWritten by Zach Schneider for [Aha!, the world's #1 product roadmap software](http://www.aha.io/)\n\n## Contributing\n\n1. Fork it ( https://github.com/schneidmaster/exception_canary/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschneidmaster%2Fexception_canary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschneidmaster%2Fexception_canary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschneidmaster%2Fexception_canary/lists"}