krz/octosentry
macOS menu bar app to monitor GitHub security alerts
clone: git clone https://gitbay.org/krz/octosentry.git
0.1.0:
| 100644 | .gitignore | 131 |
| 100644 | LICENSE | 35149 |
| 100644 | README.md | 2496 |
| 040000 | octosentry.xcodeproj/ | |
| 040000 | octosentry/ | |
| 040000 | octosentryTests/ | |
| 040000 | octosentryUITests/ |
octosentry
A macOS menu bar app that aggregates GitHub security alerts — Dependabot, code scanning, and secret scanning — across your repos into a single, severity-ranked feed. No dashboard, no general-purpose GitHub browsing: just a fast triage view that deep-links out to github.com to act.
Features
- Unified feed across all three GitHub security alert types, normalized onto one severity scale
- Source badge, repo, GitHub's own severity label, one-line summary, and age for each alert
- Click an alert to open it directly on github.com
- Errors and unavailable sources (e.g. an alert type disabled for a repo) are surfaced in the popover instead of failing silently
- Zero third-party dependencies — pure SwiftUI and URLSession
Requirements
- macOS 14 or later
- A GitHub personal access token (fine-grained or classic) with read access to Dependabot alerts, code scanning alerts, and secret scanning alerts for the repo you want to watch
Usage
octosentry currently watches a single, hardcoded repo and reads its
GitHub token from the GITHUB_TOKEN environment variable — this is a
development-only shortcut ahead of a proper device authorization flow.
- Build and run the app (see Building, below).
- Set
GITHUB_TOKENin your personal, non-shared Xcode scheme (Product → Scheme → Edit Scheme… → Run → Arguments → Environment Variables). Don't add it to a shared scheme — that would commit the token to git. - Click the shield icon in the menu bar to open the popover. It fetches automatically on open, or use the refresh button.
- Click any alert to open it on github.com.
If a source shows as unavailable, it usually means that alert type is disabled for the repo, or the token is missing that one permission — not that something is broken.
Building
Open octosentry.xcodeproj in Xcode and run the octosentry scheme.
The project targets macOS 14 with Swift 6 language mode and strict
concurrency enabled — no package dependencies to resolve.
Contributing
Issues and pull requests are welcome. A few things worth knowing before you start:
- No third-party dependencies — this is a hard constraint, not a preference.
- Swift 6 strict concurrency is on; new code should compile clean under it, not suppress it.
- Match the existing file-per-type layout (models, mapping, API client, views) rather than introducing new architectural patterns.
License
GPL-3.0 — see LICENSE.