Skip to content

davidmonnom/sentinel

Repository files navigation

Sentinel

A desktop app for managing GitHub pull request reviews, mocking API endpoints, and sharing files via S3.


Reviews view

PR review dashboard with real-time sync, unread tracking, and change stats.


Features

Pull Request Reviews

  • Sync PRs from GitHub via personal access token
  • Unread detection — tracks updates since you last read a PR
  • Branch-colored badges with customizable colors
  • Virtual-scrolled list for smooth performance at scale
  • Search, filter, and one-click open in browser

Mock Server

  • Configurable HTTP endpoints with path matching and wildcards
  • Per-endpoint method, status code, and JSON response body
  • Toggle endpoints on/off, edit response bodies inline
  • Start/stop/restart from the UI — no terminal needed
  • Useful for frontend development against simulated APIs

S3 Storage

  • Upload and manage files on any S3-compatible provider (AWS S3, MinIO, Cloudflare R2, etc.)
  • Multi-file upload with per-file progress bars and smooth animation
  • Drag & drop files from anywhere — a full-window drop zone appears automatically
  • One-click presigned URL sharing — copy a temporary link to clipboard
  • Optimistic UI — files appear in the list instantly during upload, with error recovery

Developer Utilities

  • Branch badge color picker with preset palette
  • Clipboard-ready server URL
  • Carbon Rose dark theme — polished UI with subtle shadows, tooltips, and button feedback
  • SQLite-backed persistence — data lives locally

Mock HTTP server with inline editing  ·  S3 file storage with drag & drop upload


Tech Stack

Layer Technology
Framework Wails v2 — Go backend + web frontend
Backend Go 1.24, GORM, SQLite, go-github v83, minio-go v7
Frontend React 18, TypeScript, Chakra UI v3, Vite
Virtualization @tanstack/react-virtual
Platform macOS (hidden title bar), Windows, Linux

Getting Started

Prerequisites

go install github.com/wailsapp/wails/v2/cmd/wails@latest

Development

# Clone the repository
git clone https://github.com/your-username/sentinel.git
cd sentinel

# Run in development mode (hot reload)
wails dev

This starts a Vite dev server with hot reload for the frontend and live reloading for Go changes.

Build

# Production build
wails build

The output binary will be in build/bin/.


Configuration

On first launch, head to Settings to configure:

  1. GitHub Personal Access Token — required for PR sync (create one here)
  2. Server Port — port for the mock HTTP server (default: auto-assigned)
  3. S3 Storage — endpoint, bucket, access key, and secret key for any S3-compatible provider
  4. Branch Colors — assign colors to branch name patterns

Data is stored in a local SQLite database:

OS Path
macOS ~/Library/Application Support/sentinel/sentinel.db
Windows %APPDATA%/sentinel/sentinel.db
Linux ~/.config/sentinel/sentinel.db

Project Structure

sentinel/
├── backend/
│   ├── app.go              # Wails-bound methods (API surface)
│   ├── data/               # Business logic layer
│   ├── database/           # GORM models + CRUD
│   ├── github_api/         # GitHub client wrapper
│   ├── server/             # Mock HTTP server
│   └── storage/            # S3 client (minio-go)
├── frontend/
│   └── src/
│       ├── components/     # React components
│       │   ├── reviews/    # PR review list + dialogs
│       │   ├── server/     # Endpoint rows + dialogs
│       │   ├── settings/   # Badge settings + dialogs
│       │   └── storage/    # File rows (uploading + stored)
│       ├── contexts/       # State management (React Context)
│       ├── pages/          # Page-level views
│       └── theme.ts        # Carbon Rose dark theme tokens
└── main.go                 # Entry point + Wails config

License

This project is not currently licensed. All rights reserved.


Built with Wails and coffee.

About

Helpers for developers and reviewers

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages