This repository makes GitHub issue data in the Jupyter ecosystem easier to access. It does two things:
- Publishes issue data. A GitHub workflow runs each night, scrapes issues, pull requests, and comments from several Jupyter organizations, and publishes them as SQLite databases in a GitHub release.
- Shows issue tables. A MyST website reads that data and shows, for each organization, the open issues sorted by community reactions (👍 and ❤️).
🔗 View the live site: https://jupyter.org/github-data/
🚨 This is not an official Jupyter service, it is just an experiment at making issue data more useful to the community.
The list lives in orgs.toml.
To add an organization, add it there.
The next nightly run scrapes it and the site gets a page for it.
release.yml runs every night.
It reads orgs.toml, then runs scripts/download_issues.py once per organization, in parallel.
That script uses github-to-sqlite to write repositories, issues, pull requests, and comments into data/<org>.db.
The workflow then attaches every .db file to the latest release.
To download the data yourself:
gh release download latest --repo jupyter/github-data --pattern "jupyterhub.db"book.yml builds the site after every nightly release and on every push to main.
scripts/generate_pages.pyfills intemplates/table.mdonce per organization and writes the result tobook/org/. That folder is generated, not committed.- Each generated page downloads its organization's
.dbfile from the latest release and renders the issue table. - MyST builds the site and GitHub Pages hosts it.
Preview the site with a live server:
nox -s docs-liveScrape one organization yourself (needs a GITHUB_TOKEN environment variable):
nox -s download -- jupyter-bookLaunch JupyterLab in the same environment, for debugging:
nox -s labGitHub disables scheduled workflows in repositories with no commits for 60 days.
If the latest release stops updating, check the Actions tab and re-enable the release workflow.
This repository was originally built by @choldgraf before being moved to the Jupyter org so it could be used and maintained by more people.