Skip to main content

Generate a self-hosted backlog snapshot and dashboard for maintainers.

Project description

Backlog Atlas

Generates a self-hosted backlog snapshot and dashboard for maintainers.

Backlog Atlas keeps the issue tracker as the source of truth and publishes a derived view of one repository's open issues, linked pull requests, status, and recent backlog activity.

What it produces

Outputs land on a dedicated backlog-atlas branch (kept off main so issue churn doesn't pollute the main history):

  • BACKLOG.md — categorized table of open issues + recently-done.
  • BACKLOG-UPDATES.md — append-only human changelog of new/closed/status/label events.
  • backlog.json — same data as BACKLOG.md but structured, consumed by the web UI.
  • updates.jsonl — append-only structured event log (machine-readable changelog). Bootstrapped from BACKLOG-UPDATES.md on first run.
  • last_snapshot.json — internal state used to diff against the next run.
  • events.jsonl — log of GitHub issue/PR events queued for the next debounced run.
  • index.html — bundled with the package; copied to the backlog-atlas branch by the workflow so a static page can be served via GitHub Pages.

Install

pip install .
# or, once published:
# pip install backlog-atlas

CLI

backlog-atlas update [flags]        # regenerate outputs from current GitHub state
backlog-atlas install [flags]       # set up backlog-atlas branch + workflow YAML in a target repo
backlog-atlas uninstall [flags]     # reverse install
backlog-atlas dump-web --output X   # write the bundled index.html (or full web/ dir)

update

Fetches issues/PRs from GitHub via gh and rewrites the backlog files. Useful flags:

  • --repo owner/name — override repo detection (defaults to sl/git remote).
  • --dry-run — print what would change without writing.
  • --snapshot-path / --event-log-path / --commit-msg-path — workflow-driven I/O paths.
  • --data-json-path / --updates-jsonl-path — override default output locations.

Defaults write everything under <target-repo>/.backlog-atlas/ so the file system isn't littered.

install

backlog-atlas install --repo owner/name [--pip-spec <pip arg>]

Creates the backlog-atlas branch via the GitHub API (if missing) and drops .github/workflows/update-backlog-atlas.yml into the target repo. The generated workflow does pip install <pip-spec> and runs backlog-atlas update + backlog-atlas dump-web. Default --pip-spec is backlog-atlas (PyPI). Override with a git URL or local path until publication.

uninstall

Removes the workflow YAML and (with confirmation) deletes the backlog-atlas branch.

Web UI

The page is served from the backlog-atlas branch via GitHub Pages: enable Pages → branch backlog-atlas / /. It fetches backlog.json and renders an interactive view with search, category/status filters, sortable columns, dark/light themes, and a fixed bottom activity panel.

For local preview:

backlog-atlas dump-web --output ./preview/
backlog-atlas update --data-json-path ./preview/backlog.json
cd preview && python3 -m http.server 8000
# open http://localhost:8000/

Tests

pytest tests/test_update_backlog.py

Maintainers

See MAINTAINERS.md for local development, testing, packaging, and publishing notes.

Publishing

Publishing uses PyPI Trusted Publishing from .github/workflows/publish.yml. Configure the PyPI publisher for:

  • repository: omry/backlog-atlas
  • workflow: publish.yml
  • environment: pypi

The workflow builds and publishes when a GitHub Release is published.

License

MIT.

Layout

.
├── pyproject.toml
├── README.md
├── MAINTAINERS.md
├── backlog_atlas/
│   ├── __init__.py             # CLI + all logic (single-module package for now)
│   ├── config.yaml             # default category/keyword/emoji config
│   ├── templates/
│   │   ├── backlog.md.tmpl
│   │   ├── backlog_updates_entry.md.tmpl
│   │   └── workflow.yml.tmpl   # GitHub Actions workflow template installed by `install`
│   └── web/
│       └── index.html          # bundled static UI
└── tests/
    └── test_update_backlog.py

Project details


Download files

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

Source Distribution

backlog_atlas-0.1.0.tar.gz (32.7 kB view details)

Uploaded Source

Built Distribution

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

backlog_atlas-0.1.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file backlog_atlas-0.1.0.tar.gz.

File metadata

  • Download URL: backlog_atlas-0.1.0.tar.gz
  • Upload date:
  • Size: 32.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for backlog_atlas-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a6fd9d272b2fe9b274015086b18d7725dffb39936d0f8d360d461678be0b6595
MD5 cca3c0c92b1c45bf8ccc69ba5a358a49
BLAKE2b-256 e98e2683b3a49ad096140a78ca36002d9f664e58e651cd8d5ea165139a349ad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for backlog_atlas-0.1.0.tar.gz:

Publisher: publish.yml on omry/backlog-atlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file backlog_atlas-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: backlog_atlas-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for backlog_atlas-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78090b42be8150850166e6a2ead05b0de84e6acfa391e0fe5e552c1d79abed7d
MD5 17828609da91576ed71a55941ac145e9
BLAKE2b-256 0018f61667aeff13274a8c06df74d8ed64fb33fb1a5420fc5d09f0f244d044dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for backlog_atlas-0.1.0-py3-none-any.whl:

Publisher: publish.yml on omry/backlog-atlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page