{"id":48045477,"url":"https://github.com/mafhper/push_","last_synced_at":"2026-04-04T14:17:35.679Z","repository":{"id":345630241,"uuid":"1186274351","full_name":"mafhper/push_","owner":"mafhper","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-28T00:13:06.000Z","size":589,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T07:22:00.332Z","etag":null,"topics":["css","dashboard","github","html","javascript","typescript"],"latest_commit_sha":null,"homepage":"https://mafhper.github.io/push_/","language":"TypeScript","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/mafhper.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-19T13:04:23.000Z","updated_at":"2026-03-28T00:13:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mafhper/push_","commit_stats":null,"previous_names":["mafhper/push_"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mafhper/push_","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mafhper%2Fpush_","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mafhper%2Fpush_/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mafhper%2Fpush_/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mafhper%2Fpush_/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mafhper","download_url":"https://codeload.github.com/mafhper/push_/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mafhper%2Fpush_/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["css","dashboard","github","html","javascript","typescript"],"created_at":"2026-04-04T14:17:35.542Z","updated_at":"2026-04-04T14:17:35.663Z","avatar_url":"https://github.com/mafhper.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md) | [Português (Brasil)](README.pt-BR.md) | [Español](README.es.md)\n\n# Push_\n\nPush_ is a GitHub repository attention dashboard built for one job: surface what needs action first.\n\nIt ships in two runtime modes:\n- `localhost`: local secure mode, with memory-only GitHub token access for repository discovery and richer diagnostics\n- `GitHub Pages`: public snapshot mode, with static data only and no browser token flow\n\n## Why it exists\n\nMost personal dashboards waste space on vanity metrics. Push_ is built around operational signals:\n- open alerts\n- degraded repository health\n- failed workflow runs\n- stale activity\n- recent movement across watched repositories\n\n## Key capabilities\n\n- Attention-first dashboard ordered by problem pressure and latest movement\n- Repository detail pages with health, workflow, security, and recent commit context\n- Public profile inspection without a token for public repositories\n- Snapshot publishing for a Pages-safe public runtime\n- Locale support for `en`, `pt-BR`, and `es`\n- Automatic browser-language detection with manual override in settings\n\n## Runtime modes\n\n### Local secure mode\n\n- Accepts a GitHub token only on `localhost`\n- Keeps the token in memory for the active tab only\n- Lets you discover accessible public repositories and choose what enters the dashboard\n\n### Public snapshot mode\n\n- Serves static JSON generated ahead of time\n- Never accepts a browser token\n- Preserves deep links and public repository inspection safely\n\n## Installation\n\n```bash\nnpm ci\n```\n\nOptional but recommended:\n\n```bash\nnpm run hooks:install\n```\n\nThat installs the tracked `.githooks/pre-push` hook so pushes run the local validation gate first.\n\n## Local usage\n\nStart the app:\n\n```bash\nnpm run dev\n```\n\nStart with a fresh snapshot sync:\n\n```bash\nnpm run dev:snapshot\n```\n\nGenerate snapshot data manually:\n\n```bash\nnpm run data:sync\n```\n\n## Snapshot and public mode\n\n- The published site reads snapshot data from `data/`\n- Snapshot generation is handled locally or in GitHub Actions\n- Public profile mode can inspect public GitHub data directly without authentication\n\n## Security model\n\n- No token is accepted in the published GitHub Pages runtime\n- No token is persisted to `localStorage`, `sessionStorage`, cookies, or the static bundle\n- Local secure mode keeps credentials in memory only\n- Sensitive validation checks block common regressions before `push`\n\n## Validation and quality gates\n\nCore commands:\n\n```bash\nnpm run lint\nnpm run type-check\nnpm run test:ci\nnpm run validate\n```\n\nValidation coverage:\n- lint and static typing\n- tests\n- locale key integrity and reserved jargon checks\n- docs consistency\n- secure coding pattern checks\n- repo pattern checks\n- public build audit\n\nThe GitHub Pages workflow uses the same audit entrypoint:\n\n```bash\nnpm run audit\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmafhper%2Fpush_","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmafhper%2Fpush_","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmafhper%2Fpush_/lists"}