{"id":15477093,"url":"https://github.com/ichard26/ghstats","last_synced_at":"2025-10-07T09:13:53.447Z","repository":{"id":115374070,"uuid":"453262642","full_name":"ichard26/ghstats","owner":"ichard26","description":"Graphs of issue and pull request data and more!","archived":false,"fork":false,"pushed_at":"2025-04-06T15:03:13.000Z","size":125430,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T16:20:27.906Z","etag":null,"topics":["github-api","visualization"],"latest_commit_sha":null,"homepage":"https://ichard26.github.io/ghstats/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ichard26.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-01-29T01:04:19.000Z","updated_at":"2024-04-19T22:54:58.000Z","dependencies_parsed_at":"2023-09-21T19:01:38.346Z","dependency_job_id":"f3c84158-7015-447c-b14c-cb9b99a0430a","html_url":"https://github.com/ichard26/ghstats","commit_stats":{"total_commits":26,"total_committers":2,"mean_commits":13.0,"dds":"0.11538461538461542","last_synced_commit":"14c7946c2c594154751eaa0e8267ea0107c4236f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichard26%2Fghstats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichard26%2Fghstats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichard26%2Fghstats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichard26%2Fghstats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ichard26","download_url":"https://codeload.github.com/ichard26/ghstats/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248396633,"owners_count":21096970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["github-api","visualization"],"created_at":"2024-10-02T03:43:53.965Z","updated_at":"2025-10-07T09:13:48.414Z","avatar_url":"https://github.com/ichard26.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GHstats\n\nA probably over-engineered project to show some statistics using data pulled from the\nGitHub API :)\n\n[Here's my instance!](https://ichard26.github.io/ghstats/)\n\n## Features\n\n- Simple setup\n- Automated front-end generation\n- Automatic management of GitHub data and view data (initial downloading and\n  updating are handled for you!)\n\nGHstats supports these \"views\" at the moment:\n\n1. `issue-counts`\n1. `pull-counts`\n1. `issue-deltas`\n1. `issue-closers`\n\n## Setting up your own instance\n\n### Configuring GHstats \u0026 generating HTML\n\n1. Clone this repository with only the `main` branch\n\n   ```bash\n   git clone https://github.com/ichard26/ghstats.git --single-branch\n   ```\n\n1. Run `nox -s run-ghstats -R -- setup` and follow/answer the prompts\n\n   ```console\n   $ nox -s run-ghstats -R -- setup\n   nox \u003e Running session run-ghstats\n   nox \u003e Creating virtual environment (virtualenv) using python in .nox/run-ghstats\n   nox \u003e python -m pip install attrs click colorama jinja2\n   nox \u003e python -m scripts.ghstats setup\n   [ghstats] Deleted web directory.\n   Instance title: Richard's GHstats instance\n   Instance repository name (used to set up relative URLs): ghstats\n   GitHub username (used in user-agent + footer): ichard26\n   [ghstats] Configuration saved!\n   Would you like to add a repository to your instance? [Y/n]: y\n   Repository ($owner/$name): psf/black\n   Add 'issue-counts' (open issues over time) view? [Y/n]: y\n   Add 'pull-counts' (open pull requests over time) view? [Y/n]: y\n   Add 'issue-deltas' (monthly delta of open issues over time) view? [Y/n]: y\n   Add 'issue-closers' (number of issues closed by collaborators over time) view? [Y/n]: y\n   [ghstats] Added 'psf/black' to configuration.\n   [ghstats] Wrote index page.\n   [ghstats] Wrote HTML for 'psf/black'.\n   [ghstats] Wrote Vite build configuration.\n   [ghstats] Copied static assets. Web directory is ready!\n   nox \u003e Session run-ghstats was successful.\n   ```\n\n1. If you'd like to track stats for another repository, you can run\n   `nox -s run-ghstats -- add-repository`\n\n   You can repeat this step to add as many repositories as you want (although if you add\n   too many repositories at once, the `Refresh assets` GHA workflow may run API rate\n   limits).\n\n1. Stage and commit the new/updated files and directories: `config.json`and `web/`\n\n### Deployment\n\n1. Create a new repository on GitHub and push your local Git repository to it (manually\n   or using `gh`)\n1. Either locally or via the GitHub web interface, create a new branch called `production`\n1. Go into your repository settings under the `Pages` tab and ...\n   - Set `Source` to `Deploy from a branch`\n   - Set `Branch` to `production`\n1. Trigger a new run of the `Refresh assets` GHA workflow from the `Actions` tab\n1. Observe `production` being updated and your new instance being deployed to GitHub\n   Pages ...\n\nIf the website is up and looks good, congrats! You've set up your own instance. It\nshouldn't require any maintenance on your part from now on. The workflow will\nautomatically run every day and push updates as needed.\n\n**Note**: the `Refresh assets` workflow will probably fail after step one since the\n`production` branch doesn't exist yet, just ignore the first failure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichard26%2Fghstats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fichard26%2Fghstats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichard26%2Fghstats/lists"}