{"id":14972886,"url":"https://github.com/sonus21/error-tracker","last_synced_at":"2026-04-01T20:43:52.612Z","repository":{"id":36339490,"uuid":"223595792","full_name":"sonus21/error-tracker","owner":"sonus21","description":"Full featured error tracking module for Python","archived":false,"fork":false,"pushed_at":"2023-07-17T17:57:49.000Z","size":1440,"stargazers_count":31,"open_issues_count":1,"forks_count":11,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-05T13:13:22.663Z","etag":null,"topics":["django","django-application","error-monitoring","error-reporting","exception-reporting","flask","flask-application","flask-extensions","python","python2","python3"],"latest_commit_sha":null,"homepage":"https://error-tracker.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sonus21.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"sonus21"}},"created_at":"2019-11-23T13:47:21.000Z","updated_at":"2026-02-13T20:51:43.000Z","dependencies_parsed_at":"2025-03-29T11:31:00.834Z","dependency_job_id":"5b3c1418-5d7d-4919-9c9e-6aaaad947bf1","html_url":"https://github.com/sonus21/error-tracker","commit_stats":null,"previous_names":["sonus21/flask-error-monitor"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/sonus21/error-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonus21%2Ferror-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonus21%2Ferror-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonus21%2Ferror-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonus21%2Ferror-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonus21","download_url":"https://codeload.github.com/sonus21/error-tracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonus21%2Ferror-tracker/sbom","scorecard":{"id":838158,"data":{"date":"2025-08-11","repo":{"name":"github.com/sonus21/error-tracker","commit":"13324bcf67abc14ea38c3d3d01fcd030ffe9ddc7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.9,"checks":[{"name":"Code-Review","score":1,"reason":"Found 5/30 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"46 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2014-5 / GHSA-296w-6qhq-gf92","Warn: Project is vulnerable to: PYSEC-2011-2 / GHSA-3jqw-crqj-w8qw","Warn: Project is vulnerable to: PYSEC-2012-3 / GHSA-59w8-4wm2-4xw8","Warn: Project is vulnerable to: PYSEC-2012-4 / GHSA-5h2q-4hrp-v9rr","Warn: Project is vulnerable to: PYSEC-2014-6 / GHSA-625g-gx8c-xcmg","Warn: Project is vulnerable to: PYSEC-2015-8 / GHSA-6565-fg86-6jcx","Warn: Project is vulnerable to: PYSEC-2021-98 / GHSA-68w8-qjq3-2gfm","Warn: Project is vulnerable to: PYSEC-2012-2 / GHSA-78vx-ggch-wghm","Warn: Project is vulnerable to: PYSEC-2015-9 / GHSA-7fq8-4pv5-5w5c","Warn: Project is vulnerable to: PYSEC-2015-4 / GHSA-7qfw-j7hp-v45g","Warn: Project is vulnerable to: PYSEC-2011-9 / GHSA-7wph-fc4w-wqp2","Warn: Project is vulnerable to: GHSA-7xr5-9hcq-chf9","Warn: Project is vulnerable to: PYSEC-2014-2 / GHSA-89hj-xfx5-7q66","Warn: Project is vulnerable to: GHSA-8x94-hmjh-97hq","Warn: Project is vulnerable to: PYSEC-2016-2 / GHSA-c8c8-9472-w52h","Warn: Project is vulnerable to: PYSEC-2016-3 / GHSA-crhm-qpjc-cm64","Warn: Project is vulnerable to: PYSEC-2014-4 / GHSA-f7cm-ccfp-3q4r","Warn: Project is vulnerable to: PYSEC-2016-16 / GHSA-fp6p-5xvw-m74f","Warn: Project is vulnerable to: PYSEC-2011-8 / GHSA-fwr5-q9rx-294f","Warn: Project is vulnerable to: PYSEC-2015-5 / GHSA-gv98-g628-m9x5","Warn: Project is vulnerable to: PYSEC-2015-20 / GHSA-h582-2pch-3xv3","Warn: Project is vulnerable to: PYSEC-2011-5 / GHSA-h95j-h2rv-qrg4","Warn: Project is vulnerable to: GHSA-hmr4-m2h5-33qx","Warn: Project is vulnerable to: PYSEC-2015-6 / GHSA-jhjg-w2cp-5j44","Warn: Project is vulnerable to: PYSEC-2016-15 / GHSA-pw27-w7w4-9qc7","Warn: Project is vulnerable to: PYSEC-2015-10 / GHSA-q5qw-4364-5hhm","Warn: Project is vulnerable to: PYSEC-2011-4 / GHSA-rm2j-x595-q9cj","Warn: Project is vulnerable to: GHSA-rrqc-c2jx-6jgv","Warn: Project is vulnerable to: PYSEC-2014-1 / GHSA-rvq6-mrpv-m6rm","Warn: Project is vulnerable to: PYSEC-2014-7 / GHSA-rw75-m7gp-92m3","Warn: Project is vulnerable to: PYSEC-2019-16 / GHSA-vfq6-hq5r-27r6","Warn: Project is vulnerable to: PYSEC-2014-3 / GHSA-wqjj-hx84-v449","Warn: Project is vulnerable to: PYSEC-2011-3 / GHSA-wxg3-mfph-qg9w","Warn: Project is vulnerable to: PYSEC-2011-1 / GHSA-x88j-93vc-wpmp","Warn: Project is vulnerable to: PYSEC-2007-1","Warn: Project is vulnerable to: PYSEC-2008-1","Warn: Project is vulnerable to: PYSEC-2008-2","Warn: Project is vulnerable to: PYSEC-2009-3","Warn: Project is vulnerable to: PYSEC-2015-11","Warn: Project is vulnerable to: PYSEC-2015-7","Warn: Project is vulnerable to: PYSEC-2016-18","Warn: Project is vulnerable to: PYSEC-2020-263 / GHSA-fx83-3ph3-9j2q","Warn: Project is vulnerable to: GHSA-gw84-84pc-xp82","Warn: Project is vulnerable to: PYSEC-2018-66 / GHSA-562c-5r94-xh97","Warn: Project is vulnerable to: PYSEC-2019-179 / GHSA-5wv5-4vpf-pj6m","Warn: Project is vulnerable to: PYSEC-2023-62 / GHSA-m2qf-hxjv-5gpq"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T19:44:23.344Z","repository_id":36339490,"created_at":"2025-08-23T19:44:23.344Z","updated_at":"2025-08-23T19:44:23.344Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"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":["django","django-application","error-monitoring","error-reporting","exception-reporting","flask","flask-application","flask-extensions","python","python2","python3"],"created_at":"2024-09-24T13:47:41.573Z","updated_at":"2026-04-01T20:43:52.574Z","avatar_url":"https://github.com/sonus21.png","language":"Python","readme":"=============\nError Tracker\n=============\n\n**Full featured error tracking module for Python apps supports Flask and Django**\n\n.. image::  https://img.shields.io/pypi/v/error-tracker.svg?color=dark-green\n    :target: https://pypi.org/project/error-tracker\n\n.. image::  https://img.shields.io/pypi/pyversions/error-tracker.svg?color=dark-green\n    :target: https://pypi.org/project/error-tracker\n\n.. image:: https://img.shields.io/github/license/sonus21/error-tracker.svg?color=dark-green\n    :target: https://github.com/sonus21/error-tracker/blob/master/LICENSE.txt\n\n.. image:: https://travis-ci.org/sonus21/error-tracker.svg?branch=master\n    :target: https://travis-ci.org/sonus21/error-tracker\n\n.. image:: https://coveralls.io/repos/github/sonus21/error-tracker/badge.svg?color=dark-green\n    :target: https://coveralls.io/github/sonus21/error-tracker\n\nIntroduction\n------------\nErrorTracker is a batteries-included app and extensions for python app, that can track errors, send notification, mask sensitive data and capture frames data.\n\nIt plays nicely with `Django \u003chttps://www.djangoproject.com/\u003e`_ and `Flask \u003chttp://flask.pocoo.org/\u003e`_\n\nSimple to use  extension that lets you add error recording interfaces to Python applications.\nIt's implemented in such a way that the developer has total control of the resulting application.\n\nOut-of-the-box, Error Tracker plays nicely with various ORM's, including\n\n- `SQLAlchemy \u003chttp://www.sqlalchemy.org/\u003e`_,\n- `MongoEngine \u003chttp://mongoengine.org/\u003e`_,\n- `Django ORM \u003chttps://tutorial.djangogirls.org/en/django_orm/\u003e`_\n\n\nIt also boasts a simple Model management interface.\n\nThe biggest feature of ErrorTracker is flexibility. To start off with you can create a very simple application in no time,\nwith exception monitor enabled, but then you can go further and customize different aspects.\n\nErrorTracker is an active project, well-tested and production ready.\n\nInstallation\n------------\nTo install ErrorTracker, simply::\n\n    pip install error-tracker\n\n\nFeatures\n--------\n- Sensitive data( like *password*, *secret* ) Masking\n- Record all the frames ( frame data are stored in JSON format so that it can be analyzed later)\n- Unique URL generation\n- Number of times the exception occurred and first/last time of exception\n- Sending notifications with exception details\n- Record different types of exception like 500 or 404 etc\n- Raise or update ticket in Jira/Bugzilla etc by ticketing interface.\n\nUsage\n-----\n\nFlask App configuration\n=======================\n\n.. code::\n\n    ...\n    APP_ERROR_SEND_EMAIL = True\n    APP_ERROR_RECIPIENT_EMAIL = ('example@example.com',)\n    APP_ERROR_SUBJECT_PREFIX = \"Server Error\"\n    APP_ERROR_EMAIL_SENDER = 'user@example.com'\n\n\n\napp.py\n\n.. code::\n\n    from flask import Flask\n    from flask_mail import Mail\n    import settings\n    from error_tracker import AppErrorTracker, NotificationMixin\n    from flask_sqlalchemy import SQLAlchemy\n    ...\n    app = Flask(__name__)\n    app.config.from_object(settings)\n    db = SQLAlchemy(app)\n    class Notifier(Mail, NotificationMixin):\n        def notify(self, request, exception,\n                   email_subject=None,\n                   email_body=None,\n                   from_email=None,\n                   recipient_list=None):\n            message = Message(email_subject, recipient_list, email_body, sender=from_email)\n            self.send(message)\n    mailer = Notifier(app=app)\n    error_tracker = AppErrorTracker(app=app, db=db, notifier=mailer)\n\n    ....\n\n    ....\n    # Record exception when 404 error code is raised\n    @app.errorhandler(403)\n    def error_403(e):\n        error_tracker.capture_exception()\n        # any custom logic\n\n    # Record error using decorator\n    @app.errorhandler(500)\n    @error_tracker.track_exception\n    def error_500(e):\n        # some custom logic\n    ....\n\n\nDjango App Usage\n================\n\nWe need to update settings.py file as\n\n-  Add app to installed apps list\n-  Add Middleware for exception tracking. This should be added at the end so that it can process exception 1st in the middleware call stack.\n-  Other configs related to notification\n\nSample Code\n\n\n.. code::\n\n    ...\n    APP_ERROR_RECIPIENT_EMAIL = ('example@example.com',)\n    APP_ERROR_SUBJECT_PREFIX = \"Server Error\"\n    APP_ERROR_EMAIL_SENDER = 'user@example.com'\n\n    INSTALLED_APPS = [\n        ...\n        'error_tracker.DjangoErrorTracker'\n    ]\n    MIDDLEWARE = [\n        ...\n        'error_tracker.django.middleware.ExceptionTrackerMiddleWare'\n    ]\n\n\nDocumentations\n--------------\nThis has got extensive document browse at https://error-tracker.readthedocs.io/en/latest/\n\nAll docs are in `docs/source`\n\nAnd if you want to preview any *.rst* snippets that you may want to contribute, go to `http://rst.ninjs.org/ \u003chttp://rst.ninjs.org/\u003e`_.\n\n\nExamples\n--------\nSeveral usage examples are included in the */tests* folder. Please feel free to add your own examples, or improve\non some of the existing ones, and then submit them via GitHub as a *pull-request*.\n\nYou can see some of these examples in action at https://github.com/sonus21/error-tracker/tree/master/examples\nTo run the examples on your local environment, one at a time, do something like::\n\n    cd error-tracker/examples\n\n\nDjango::\n\n     cd error-tracker/examples\n     cd DjangoSample\n     python manage.py runserver\n\nFlask::\n\n      cd flask-sample\n      python app.py\n\n\nTests\n-----\nTo run the tests, from the project directory, simply::\n\n    pip install -r requirements-dev.txt\n    bash run-tests.sh\n\nYou should see output similar to::\n\n    .............................................\n    ----------------------------------------------------------------------\n    Ran 31 tests in 1.144s\n\n    OK\n\n\nContribution\n-------------\nYou're most welcome to raise pull request or fixes.\n","funding_links":["https://github.com/sponsors/sonus21"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonus21%2Ferror-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonus21%2Ferror-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonus21%2Ferror-tracker/lists"}