Skip to content
mafhperPublic

Latest commit

 

History

202 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | Português (Brasil) | Español

push_

push_ is a GitHub repository attention dashboard built for one job: surface what needs action first.

It ships in three runtime modes:

  • desktop (Tauri): native Windows/macOS/Linux app, full dashboard with the token saved in the system keyring, including your private repositories
  • localhost: local secure mode, with memory-only GitHub token access for repository discovery and richer diagnostics, including your private repositories
  • GitHub Pages: public snapshot mode, with static data only, no browser token flow, and no private repository data at all

Why it exists

Most personal dashboards waste space on vanity metrics. push_ is built around operational signals:

  • open alerts
  • degraded repository health
  • failed workflow runs
  • stale activity
  • recent movement across watched repositories

Key capabilities

  • Attention-first dashboard ordered by problem pressure and latest movement
  • Repository detail pages with health, workflow, security, and recent commit context
  • Per-repository health scoring with context on the alerts, workflows, and activity that drive it
  • Balanced, Detailed, and Full view modes to control how much a repository page shows
  • Real repository logos with an initials fallback (no generic GitHub preview cards)
  • Public profile inspection without a token for public repositories
  • Private repository discovery and tracking in the desktop and localhost runtimes only, opt-in and never included in the published snapshot
  • Snapshot publishing for a Pages-safe public runtime
  • Locale support for en, pt-BR, and es
  • Automatic browser-language detection with manual override in settings

Runtime modes

Desktop mode (Tauri)

  • Native app built with Tauri 2, no browser required
  • GitHub token is saved in the system keyring (tauri-plugin-keyring-store), never in localStorage
  • Session is restored from the keyring on launch and validated against the GitHub API
  • Custom platform titlebar with native window controls
  • OS theme sync (light/dark) plus the app's 7 named themes
npm run tauri:dev    # run in development
npm run tauri:build  # build the installer (NSIS on Windows)

Local secure mode

  • Accepts a GitHub token only on localhost
  • Keeps the token in memory for the active tab only
  • Lets you discover every accessible repository, public and private, and choose what enters the dashboard
  • Groups the list into Public, Private, Forks and Others, with per-group select and clear actions
  • Reports how many repositories are in the scope of the connected token and how many of them are private

Public snapshot mode

  • Serves static JSON generated ahead of time
  • Never accepts a browser token
  • Never lists, reads or publishes a private repository: snapshot generation refuses a private entry
  • Preserves deep links and public repository inspection safely

Installation

npm ci

Optional but recommended:

npm run hooks:install

That installs the tracked .githooks/pre-push hook so pushes run the local validation gate first.

Local usage

Start the app:

npm run dev

Start with a fresh snapshot sync:

npm run dev:snapshot

Generate snapshot data manually:

npm run data:sync

Snapshot and public mode

  • The published site reads snapshot data from data/
  • Snapshot generation is handled locally or in GitHub Actions
  • Public profile mode can inspect public GitHub data directly without authentication

Security model

  • No token is accepted in the published GitHub Pages runtime
  • No token is persisted to localStorage, sessionStorage, cookies, or the static bundle
  • Local secure mode keeps credentials in memory only
  • Desktop mode saves the token in the operating system keyring, not in files
  • Private repository content is never written to the local cache or to a published snapshot: only public repository names can appear in a local cache, everything else is rebuilt from the token
  • Sensitive validation checks block common regressions before push

Validation and quality gates

Core commands:

npm run lint
npm run type-check
npm run test:ci
npm run validate

Validation coverage:

  • lint and static typing
  • tests
  • locale key integrity and reserved jargon checks
  • docs consistency
  • secure coding pattern checks
  • repo pattern checks
  • public build audit

The GitHub Pages workflow uses the same audit entrypoint:

npm run audit

Releases

Releases are cut by pushing a vX.Y.Z tag and run through the reusable Release Core protocol from mafhper/release-core (the caller lives in .github/workflows/release.yml, the contract in .github/release.config.json).

  • Per-line release artwork: docs/images/releases/release.webp (new major.minor line requires a new image)
  • Editorial notes: .github/release-notes/ (English, plain language)

Bump the desktop versions and append the change log entry locally:

npm run release -- minor

Then commit, tag, and push to trigger the release build:

git tag vX.Y.Z && git push origin main && git push origin vX.Y.Z

Releases

Used by

Contributors

Languages