Skip to main content

genericissuetracker

A reusable, versioned, schema-safe Django Issue Tracker application.

Maintained by: https://djangoplay.org

genericissuetracker is a production-grade, installable Django app that drops issue tracking -- issues, comments, labels, and attachments -- into any Django project behind a versioned REST API.

Features

  • Issue management with human-friendly, sequential issue numbers
  • Comments and labels
  • Attachments, including atomic multipart creation alongside an issue or comment
  • Deterministic lifecycle state machine with a full status-history audit trail
  • Soft delete throughout
  • No dependency on AUTH_USER_MODEL -- reporter/uploader identity stored by email/user id
  • Versioned REST API (/api/v1/...)
  • Configurable permissions, pagination, and filtering
  • OpenAPI schema support via drf-spectacular

Requirements

  • Python 3.8 or later
  • Django 4.2 or later
  • djangorestframework 3.14 or later
  • drf-spectacular 0.27 or later

Installation

pip install genericissuetracker

Add it to INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    "genericissuetracker",
]

Include its URLs:

path("api/", include("genericissuetracker.urls.root")),

Then run migrations:

python manage.py migrate

Configuration

All settings are namespaced under GENERIC_ISSUETRACKER_<SETTING>:

Setting Description
IDENTITY_RESOLVER Custom identity resolver path
ALLOW_ANONYMOUS_REPORTING Allow anonymous issue creation
MAX_ATTACHMENTS Max attachments per issue
MAX_ATTACHMENT_SIZE_MB Max file size
DEFAULT_PERMISSION_CLASSES Default DRF permissions
DEFAULT_PAGINATION_CLASS Pagination class
PAGE_SIZE Pagination size
DEFAULT_FILTER_BACKENDS Filtering backends

Example:

GENERIC_ISSUETRACKER_DEFAULT_PERMISSION_CLASSES = [
    "rest_framework.permissions.IsAuthenticated"
]

API Endpoints

Resource Endpoint
Issues /api/v1/issues/
Issue detail /api/v1/issues/{issue_number}/
Status change /api/v1/issues/{issue_number}/change-status/
Comments /api/v1/comments/
Labels /api/v1/labels/
Attachments /api/v1/attachments/

Filtering and ordering are supported out of the box:

/api/v1/issues/?search=bug
/api/v1/issues/?ordering=-created_at

An OpenAPI schema and interactive docs are available at /schema/ and /docs/ (drf-spectacular).

Identity Model

Reporters and uploaders are tracked by reporter_email / uploaded_by_email plus an optional reporter_user_id / uploaded_by_user_id -- there is no hard foreign key to a user model, so the package drops into any Django auth setup unmodified.

Issue Identifiers

  • id -- UUID, internal
  • issue_number -- sequential, human-friendly, public
/api/v1/issues/12/

Links

License

genericissuetracker is released under the MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genericissuetracker-0.6.3.tar.gz (32.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

genericissuetracker-0.6.3-py3-none-any.whl (55.0 kB view details)

Uploaded Python 3

File details

Details for the file genericissuetracker-0.6.3.tar.gz.

File metadata

  • Download URL: genericissuetracker-0.6.3.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.16

File hashes

Hashes for genericissuetracker-0.6.3.tar.gz
Algorithm Hash digest
SHA256 938955765e3b61b20b29fb44138c4b1e5dad934531b59fdac2210b5fac9e573a
MD5 1bdd5e7778986cbb53651c3665234540
BLAKE2b-256 11beb398401a791f7691f58f2932f068c09864bc6c085ddb61ad0492bca79aca

See more details on using hashes here.

File details

Details for the file genericissuetracker-0.6.3-py3-none-any.whl.

File metadata

File hashes

Hashes for genericissuetracker-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a193edd7a992f0f568501b42ca7a0cc17c58c4ec77907827017643f79c987238
MD5 fc6a75388dc6fedebcd974bddb1c7d9f
BLAKE2b-256 730571534d07d445de9c86f1b826ca3ecac11168eeefeffcba5c6f9a2230cec8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.3 This release

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page