1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# 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
- Add or remove watched repos from the popover; a background poll keeps
the feed fresh even while it's closed
- Sign in with GitHub via device authorization — no password or manually
generated token needed, and nothing is ever typed into the app itself
- Zero third-party dependencies — pure SwiftUI and URLSession
## Requirements
- macOS 14 or later
- A GitHub account with access to whatever repos you want to watch
## Usage
1. Build and run the app (see Building, below).
2. Click the shield icon in the menu bar, then **Sign in with GitHub**.
You'll get a short code — click **Open GitHub**, enter the code there,
and authorize. The popover updates automatically once that completes.
3. Click the gear icon to add or remove watched repos (`owner/repo`).
4. 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 your account lacks permission for it — not
that something is broken. Classic OAuth's `security_events` scope
(what device flow grants) may not be sufficient for Dependabot alerts on
private repos — if you hit that, it needs verifying against a real
private repo case by case.
## 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](LICENSE).
|