{"id":30830613,"url":"https://github.com/attogram/dashboard","last_synced_at":"2026-02-13T16:10:39.965Z","repository":{"id":312432038,"uuid":"1047449978","full_name":"attogram/dashboard","owner":"attogram","description":"Dashboard - Metrics for GitHub Creators","archived":false,"fork":false,"pushed_at":"2025-08-30T16:14:01.000Z","size":56,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-30T16:18:39.581Z","etag":null,"topics":["attogram-project","dashboard-script","dashboard-scripts","metrics","metrics-collector","metrics-gathering","metrics-scraping"],"latest_commit_sha":null,"homepage":"https://attogram.github.io/dashboard/","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/attogram.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-08-30T12:54:59.000Z","updated_at":"2025-08-30T14:57:40.000Z","dependencies_parsed_at":"2025-08-30T16:18:42.594Z","dependency_job_id":"b833503b-fba0-4a85-b6bc-848874252b88","html_url":"https://github.com/attogram/dashboard","commit_stats":null,"previous_names":["attogram/dashboard"],"tags_count":3,"template":false,"template_full_name":"attogram/base","purl":"pkg:github/attogram/dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Fdashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Fdashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Fdashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Fdashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/attogram","download_url":"https://codeload.github.com/attogram/dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Fdashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273926537,"owners_count":25192318,"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","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["attogram-project","dashboard-script","dashboard-scripts","metrics","metrics-collector","metrics-gathering","metrics-scraping"],"created_at":"2025-09-06T15:55:44.704Z","updated_at":"2026-02-13T16:10:39.957Z","avatar_url":"https://github.com/attogram.png","language":"Dockerfile","readme":"[![Run Tests](https://github.com/attogram/dashboard/actions/workflows/ci.yml/badge.svg)](https://github.com/attogram/dashboard/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/release/attogram/dashboard?style=flat)](https://github.com/attogram/dashboard/releases)\n[![GitHub stars](https://img.shields.io/github/stars/attogram/dashboard?style=flat)](https://github.com/attogram/dashboard/stargazers)\n[![GitHub watchers](https://img.shields.io/github/watchers/attogram/dashboard?style=flat)](https://github.com/attogram/dashboard/watchers)\n[![Forks](https://img.shields.io/github/forks/attogram/dashboard?style=flat)](https://github.com/attogram/dashboard/forks)\n[![Issues](https://img.shields.io/github/issues/attogram/dashboard?style=flat)](https://github.com/attogram/dashboard/issues)\n[![GitHub commit activity](https://img.shields.io/github/commit-activity/t/attogram/dashboard?style=flat)](https://github.com/attogram/dashboard/commits/main/)\n[![License](https://img.shields.io/github/license/attogram/dashboard?style=flat)](./LICENSE)\n\n# Dashboard\n\n![Dashboard Logo](./docs/logos/logo.320.160.png)\n\nA metrics tool for open-source creators.\n\nDashboard is a modular, configurable, and robust Bash script that provides a consolidated view of your key metrics from various services like GitHub, Hacker News, and more. With support for multiple output formats including JSON, XML, HTML, and Markdown, you can easily integrate your dashboard into websites, reports, or other tools.\n\n## Example output\n\n```bash\n./dashboard.sh -f tsv\n```\n\n```csv\ndate    module    channels    namespace    value\n2025-09-01T20:28:46Z    discord    online    discord    3\n2025-09-01T20:28:46Z    github    stars    repo.attogram.games    135\n2025-09-01T20:28:46Z    github    forks    repo.attogram.games    68\n2025-09-01T20:28:46Z    github    open_issues    repo.attogram.games    1\n2025-09-01T20:28:46Z    github    watchers    repo.attogram.games    7\n2025-09-01T20:28:47Z    github    stars    repo.attogram.EightQueens    15\n2025-09-01T20:28:47Z    github    forks    repo.attogram.EightQueens    4\n2025-09-01T20:28:47Z    github    open_issues    repo.attogram.EightQueens    0\n2025-09-01T20:28:47Z    github    watchers    repo.attogram.EightQueens    2\n2025-09-01T20:28:47Z    github    stars    repo.attogram.base    2\n2025-09-01T20:28:47Z    github    forks    repo.attogram.base    1\n2025-09-01T20:28:47Z    github    open_issues    repo.attogram.base    0\n2025-09-01T20:28:47Z    github    watchers    repo.attogram.base    2\n2025-09-01T20:28:48Z    github    stars    repo.attogram.dashboard    1\n2025-09-01T20:28:48Z    github    forks    repo.attogram.dashboard    0\n2025-09-01T20:28:48Z    github    open_issues    repo.attogram.dashboard    0\n2025-09-01T20:28:48Z    github    watchers    repo.attogram.dashboard    1\n2025-09-01T20:28:54Z    hackernews    karma    your_username_here    30\n```\n\n## Features\n\n- **Modular Architecture**: Easily add new services by creating new module scripts. Run a full report or just a single module.\n- **Multiple Output Formats**: Supports `plain`, `pretty` (with colors), `json`, `xml`, `html`, `yaml`, `csv`, `tsv`, `table`, and `markdown`.\n- **Configurable**: All settings are controlled via a simple `config/config.sh` file.\n- **Minimal Dependencies**: Requires only `curl` and `jq` to run.\n- **Bash v3.2+ Compatible**: Written in pure Bash for maximum compatibility.\n\n## Getting Started\n\n### Prerequisites\n\n- `bash` (version 3.2 or higher)\n- `curl`\n- `jq`\n\n### Installation\n\n1.  Clone this repository:\n\n    ```bash\n    git clone https://github.com/attogram/dashboard.git\n    cd dashboard\n    ```\n\n2.  Create your configuration file by copying the template:\n\n    ```bash\n    cp config/config.dist.sh config/config.sh\n    ```\n\n3.  Edit `config/config.sh` with your own usernames and settings.\n\n### Usage\n\nTo run a full report in the default `tsv` format:\n\n```bash\n./dashboard.sh\n```\n\nTo specify an output format, use the `-f` or `--format` flag:\n\n```bash\n./dashboard.sh --format pretty\n./dashboard.sh -f json\n```\n\nTo save the report to a specific file or directory, use the `-o` or `--output` flag:\n\n```bash\n# Save to a specific file\n./dashboard.sh -o my_report.tsv\n\n# Save to a directory (a timestamped filename will be generated)\n./dashboard.sh -o reports/\n```\n\nTo run only a specific module:\n\n```bash\n./dashboard.sh github\n./dashboard.sh --format html hackernews\n```\n\nTo run a specific reporter:\n\n- **`top-stars`**: Shows the top 10 repositories by stars.\n- **`trending`**: Shows the change in metrics over a given timespan. Only shows metrics that have changed.\n  - Usage: `./dashboard.sh -r trending [days]`\n\n## Configuration\n\nAll configuration is done in the `config/config.sh` file.\n\n```bash\n# Your Hacker News username\nHN_USER=\"your_username_here\"\n\n# Your GitHub username\nGITHUB_USER=\"your_username_here\"\n\n# A space-separated list of your key GitHub repositories to track.\nREPOS=(\"your-repo-1\" \"your-repo-2\")\n\n# (Optional) Your Discord Server ID for tracking online members.\nDISCORD_SERVER_ID=\"\"\n\n# (Optional) GitHub Personal Access Token (PAT) for the 'github-sponsors' module.\n# The token needs the 'read:user' scope.\nGITHUB_TOKEN=\"\"\n```\n\n## Full Documentation\n\nFor more detailed information on the architecture, modules, output formats, and contribution guidelines, please see the [full documentation](./docs/README.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattogram%2Fdashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fattogram%2Fdashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattogram%2Fdashboard/lists"}