Skip to content

Repository files navigation

GitHub Shine app icon

GitHub Shine

Shine a spotlight on your github repos - powered by Shiny.NET

A cross-platform desktop dashboard for keeping an eye on the GitHub repositories you care about. GitHub Shine is a .NET MAUI Blazor Hybrid app that polls GitHub through fine-grained personal access tokens and surfaces stars, forks, issues, pull requests, and CI build status at a glance — with native notifications when something needs your attention, a tray menu for quick access, and bulk source archiving.

GitHub Shine dashboard on macOS

Features

GitHub Shine is organized into four tabs — Dashboard, Accounts, Archive, and Settings.

  • At-a-glance repo dashboard — every monitored repo is rendered as a card showing open issues, open pull requests, stars, forks, watchers, and the status of its latest workflow run.
  • Aggregate totals bar — running sums across all repos for stars, forks, watchers, open issues, open PRs, and how many builds are currently passing vs. failing.
  • Sortable sidebar — sort your repositories by most stars (default), forks, open issues, open PRs, or build status; clicking a repo scrolls it into focus in the main panel. The sort order is shared with the tray menu.
  • Live search — filter the repo grid as you type with a case-insensitive "contains" match on repo name and account.
  • Drag-to-reorder — arrange the dashboard cards by drag-and-drop (or the ‹ › buttons); your layout is persisted between sessions.
  • "Needs your attention" inbox — pulls your GitHub notifications and highlights the ones that matter: mentions, assignments, and requested reviews.
  • Repository archive — on the Archive tab, multi-select repos and download a source zip of each one's default branch into a folder of your choice, with per-repo progress, a Saved/Failed badge, and cancellation.
  • Local clones — on the Clone tab, pick a folder and keep real working copies of the repos you monitor. Each row shows the branch its working copy is on and how many commits that branch is behind, with a picker to check a different branch out and a "Select out of date" button to update only the repos that need it. A repo that isn't there yet is cloned on the initial branch of your choosing (its own default by default); one that already is gets fast-forwarded on whatever branch it's checked out on. Uncommitted changes, a detached HEAD or a diverged branch are reported and skipped rather than touched.
  • Native notifications — get notified about new issues, new pull requests, and failed workflow runs; mute them from the Settings tab or the tray menu.
  • Tray menu with repo list — a monochrome template tray icon whose menu opens the dashboard, refreshes, toggles mute, and lists your repositories (in the same order as the sidebar) — click one to open it on GitHub.
  • Settings tab — mute notifications, choose the repository sort order (shared by the sidebar and tray), set the refresh interval, and back up or restore the database.
  • Background polling — the refresh interval is configurable from Settings, with an immediate refresh whenever you add, edit, or remove an account/repo.
  • Multiple GitHub accounts — monitor repos across several accounts, each backed by its own fine-grained PAT.
  • Secure token storage — access tokens are kept in a secure vault, never in plain configuration.
  • Database backup/restore — export and import the local store (accounts, repos, tokens, card order) as a single SQLite file from the Settings tab.
  • Truly cross-platform desktop — runs natively on macOS (AppKit), Linux (GTK4), and Windows, all from a single MAUI project.

Third-Party Libraries

LibraryPurposeDocumentation
.NET MAUI (Microsoft.Maui.Controls)Cross-platform application frameworkhttps://learn.microsoft.com/dotnet/maui/
Blazor Hybrid (Microsoft.AspNetCore.Components.WebView.Maui)Hosts the Blazor UI inside the MAUI shellhttps://learn.microsoft.com/aspnet/core/blazor/hybrid/
Microsoft.Extensions.LoggingDebug/console logginghttps://learn.microsoft.com/dotnet/core/extensions/logging
OctokitOfficial GitHub API client for .NEThttps://github.com/octokit/octokit.net
Shiny.MediatorIn-process mediator for commands, requests, and eventshttps://shinylib.net/mediator/
Shiny.NotificationsCross-platform local notificationshttps://shinylib.net/client/notifications/
Shiny.Blazor.Controls / Shiny.Maui.Controls.DesktopUI control library (pills, toasts, desktop helpers)https://github.com/shinyorg/maui-controls
Shiny.DocumentDb.SqliteLocal document store backed by SQLitehttps://www.nuget.org/packages/Shiny.DocumentDb.Sqlite
Shiny.Extensions.StoresKey/value settings storeshttps://www.nuget.org/packages/Shiny.Extensions.Stores
Shiny.Extensions.DependencyInjectionSource-generated DI registrationhttps://www.nuget.org/packages/Shiny.Extensions.DependencyInjection
Platform.Maui.MacOS (maui-labs)Native macOS (AppKit) MAUI backend + BlazorWebViewhttps://www.nuget.org/packages/Platform.Maui.MacOS
Platform.Maui.Linux.Gtk4 (maui-labs)Native Linux (GTK4) MAUI backend + BlazorWebViewhttps://www.nuget.org/packages/Platform.Maui.Linux.Gtk4

Install

Grab a build from the latest release:

PlatformAssetNotes
macOS 14+*-osx-universal.dmgSigned and notarized by Apple. Open the DMG, drag to Applications. Universal (Intel + Apple silicon).
Windows 10 1809+*-win-x64.zipUnpack and run GitHubShine.exe. Self-contained — no .NET install needed.
Linux x64*-linux-x64.tar.gzUnpack and run ./GitHubShine. Requires GTK4 + WebKitGTK 6.0 on the host.
Android 7+*-android.apkSideload. The .aab is the Play Store upload bundle and is not device-installable.
iOS 15+*-ios-unsigned.ipaUnsigned — has to be re-signed with your own Apple account via a sideloading tool.

Releases are cut by tagging; see docs/RELEASING.md.

Getting Started

Prerequisites

Build & Run

# from the repository root
dotnet build GitHubShine.slnx
# run on the current desktop platform (macOS / Linux / Windows)
dotnet build src/GitHubShine/GitHubShine.csproj -t:Run

On first launch, add a GitHub account with its fine-grained PAT, pick the repositories to monitor, and the dashboard will begin polling.

Project Layout

GitHubShine.slnx Solution
src/GitHubShine/
├─ Components/ Blazor pages, layout, and routes
├─ Features/
│ ├─ Accounts/ Account/repo config, secure token vault
│ ├─ Archive/ Bulk source-zip download of selected repos
│ ├─ Clone/ Local git working copies: status, branch switching, fast-forward
│ ├─ Dashboard/ Snapshots, polling, Mediator handlers
│ ├─ Settings/ App settings, file dialogs, database backup/restore
│ └─ Tray/ System tray icon + repo menu
├─ Platforms/ macOS / Linux / Windows entry points
└─ wwwroot/ Blazor host page and CSS

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages