{"id":32167091,"url":"https://github.com/liefery-it-legacy/bugsnex","last_synced_at":"2026-02-21T15:04:44.831Z","repository":{"id":57481279,"uuid":"55972281","full_name":"liefery-it-legacy/bugsnex","owner":"liefery-it-legacy","description":"API client and logger for Bugsnag","archived":false,"fork":false,"pushed_at":"2020-09-11T09:27:44.000Z","size":75,"stargazers_count":10,"open_issues_count":3,"forks_count":2,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-12-13T01:51:07.538Z","etag":null,"topics":["bugsnag","elixir","elixir-lang"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liefery-it-legacy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-11T12:55:27.000Z","updated_at":"2021-03-16T08:48:04.000Z","dependencies_parsed_at":"2022-09-26T17:50:44.229Z","dependency_job_id":null,"html_url":"https://github.com/liefery-it-legacy/bugsnex","commit_stats":null,"previous_names":["liefery/bugsnex"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/liefery-it-legacy/bugsnex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liefery-it-legacy%2Fbugsnex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liefery-it-legacy%2Fbugsnex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liefery-it-legacy%2Fbugsnex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liefery-it-legacy%2Fbugsnex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liefery-it-legacy","download_url":"https://codeload.github.com/liefery-it-legacy/bugsnex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liefery-it-legacy%2Fbugsnex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29684076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T14:31:22.911Z","status":"ssl_error","status_checked_at":"2026-02-21T14:31:22.570Z","response_time":107,"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":["bugsnag","elixir","elixir-lang"],"created_at":"2025-10-21T15:20:39.703Z","updated_at":"2026-02-21T15:04:44.826Z","avatar_url":"https://github.com/liefery-it-legacy.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bugsnex [![Hex Version](https://img.shields.io/hexpm/v/bugsnex.svg)](https://hex.pm/packages/bugsnex) [![Build Status](https://travis-ci.org/liefery/bugsnex.svg?branch=master)](https://travis-ci.org/liefery/bugsnex)\n\nAPI client and logger for Bugsnag\n\n## Installation\n\nIf [available in Hex](https://hex.pm/docs/publish), the package can be installed as:\n\n  1. Add bugsnex to your list of dependencies in `mix.exs`:\n\n     ```elixir\n     def deps do\n       [{:bugsnex, \"~\u003e 0.4.3\"}]\n     end\n     ```\n\n  2. If you use Elixir \u003c 1.4 ensure bugsnex is started before your application:\n\n     ```elixir\n     def application do\n       [applications: [:bugsnex]]\n     end\n     ```\n\n  3. Check out how to send notifications to bugsnag via `Bugsnag.notify` or the\n     plug in the \"Usage\" section\n\n## Configuration\n\n```elixir\nconfig :bugsnex, :otp_app, :your_app_name\nconfig :bugsnex, :api_key, \"your_api_key\"\nconfig :bugsnex, :release_stage, \"staging\"\nconfig :bugsnex, :use_logger, true\nconfig :bugsnex, :filter_params, ~w(password password_confirmation api_key)\n```\n\nThe `:filter_params` config is used by the `Bugsnex.Plug` module to filter out\nparameters that should not be sent to Bugsnag.\n\n## Usage\n\n### Sending bug reports\n\nOnce configured, use `Bugsnex.notice(exception)` or `Bugsnex.notice(exception,stacktrace)` to send errors to Bugsnag.\n\nIf `use_logger` is set to `true`, an [error logger](http://erlang.org/doc/man/error_logger.html) event handler is added\nand [SASL](http://erlang.org/doc/apps/sasl/error_logging.html) compliant errors are sent to Bugsnag.\n\nYou can also manually wrap code in a `Bugsnex.handle_error` block. Errors in this block will then be sent to Bugsnag and reraised. Example:\n\n```elixir\nBugsnex.handle_errors %{some: \"metadata\"} do\n  somthing_that_could_raise_and_error()\nend\n```\n\n### Automatic reports via Bugsnex.Plug\n\nBugsnex also provides a Plug called `Bugsnex.Plug` that you could add to\nyour router to send errors automatically. Example:\n\n```elixir\ndefmodule YourApp.Router do\n  use YourApp.Web, :router\n  use Bugsnex.Plug\n\n  # ...\nend\n```\n\n### Tracking deployments\n\nUse `Bugsnex.track_deploy(additional_params)` to send a deployment notification to bugsnag.\n`additional_params` is an optional map with keys:\n\n  * `:apiKey`: your bugsnag api key (default is `Application.get_env(:bugsnex, :api_key)`)\n  * `:repository`: url of your source code repository (default is `Application.get_env(:bugsnex, :repository_url)`)\n  * `:releaseStage`: the release stage (e.g. staging, production) (default is `Application.get_env(:bugsnex, :release_stage)`)\n  * `:branch`: scm branch this release was deployed from\n  * `:revision`: scm revision this release was deployed from\n  * `:appVersion`: SemVer version of your app\n\n\n### Metadata\n\nYou can associate metadata by calling `Bugsnex.put_metadata(%{some: \"metadata\"})`.\nNote that metadata is stored inside the [process dictionary](http://www.erlang.org/course/advanced#dict).\nThis means that you shouldn't put a lot of data in there and also that it's only associated with the\ncalling process. Errors in different processes won't be associated with that metadata.\n\nThere are some special keys for metadata that Bugsnag understands (explanations paraphrased from the Bugsnag API documentation):\n\n  * `%{user: %{id: 123, email: \"user@example.com\", name: \"Some name\"}`: Information about the user affected by the crash\n  * `%{context: \"auth/session#create\"}`: A string representing what was happening in the application at the time of the error\n  * `%{device: %{osVersion: \"2.1.1\", hostname: \"web1.internal\"}}`: Information about the computer/device running the app\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliefery-it-legacy%2Fbugsnex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliefery-it-legacy%2Fbugsnex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliefery-it-legacy%2Fbugsnex/lists"}