No description
Find a file
2026-04-24 10:42:38 +01:00
public Switch GitHub adapter to GraphQL API, add single-repo sync 2026-04-21 09:44:17 +01:00
src/sigilwatch Rewrite README, set license to AGPL-3.0 2026-04-21 09:49:32 +01:00
test Initial project from sigil init 2026-04-18 17:39:16 +01:00
.gitignore Add .sigil to gitignore 2026-04-24 10:42:38 +01:00
package.sgl Switch GitHub adapter to GraphQL API, add single-repo sync 2026-04-21 09:44:17 +01:00
README.md Rewrite README, set license to AGPL-3.0 2026-04-21 09:49:32 +01:00
sigil.lock Switch GitHub adapter to GraphQL API, add single-repo sync 2026-04-21 09:44:17 +01:00

SigilWatch

A self-hosted repository dashboard for GitHub and Codeberg/Forgejo, written in Sigil. It pulls metadata from your forges into a local SQLite database and presents it as a dark-mode web UI.

What it does

SigilWatch syncs repos you own or watch across multiple forges and gives you a single view of their health. It tracks branches, commits, releases, open issues, open pull requests, README/license presence, and flags repos that have gone stale.

You can sync all repos for a configured owner or add individual repos from any user on a supported forge.

GitHub uses the GraphQL API (one request per owner instead of dozens). Codeberg and other Forgejo/Gitea instances use the REST API.

Getting started

sigil deps install
sigil build
sigil run

The server starts on port 3333 by default. Open http://localhost:3333 and head to Settings to add your forges and owners, then visit Sync to pull your repos.

Configuration

SigilWatch reads its config from ~/.config/sigilwatch/config.sgl. You can manage it through the Settings page in the web UI, or edit it directly:

(config
  (forge name: "GitHub" type: "github" url: "https://github.com")
  (forge name: "Codeberg" type: "forgejo" url: "https://codeberg.org")
  (owner forge: "GitHub" name: "your-username" mine: #t token-env: "GITHUB_TOKEN")
  (owner forge: "Codeberg" name: "your-username" mine: #t token-env: "CODEBERG_TOKEN"))

Tokens can be set via environment variables (recommended) or stored directly in the config file.

Env Variable Default Description
PORT 3333 HTTP server port
SIGILWATCH_DB data/sigilwatch.db SQLite database path

Features

  • Dashboard with status counts, last sync time, paginated mine/watching sections
  • Repo detail showing branches, recent commits, releases, and local notes
  • Activity feed of recent commits and releases across all repos
  • Stale repos list (not updated in 90+ days)
  • Missing README/license views
  • Single repo sync to add any repo from any owner without pulling everything
  • Multi-forge support (GitHub, Codeberg, Forgejo, Gitea)
  • Per-repo notes stored locally in SQLite

Stack

Written entirely in Sigil:

  • sigil-web for routing and middleware
  • sigil-http for the HTTP server and client
  • sigil-sxml for HTML generation
  • sigil-sqlite for the database
  • sigil-json for JSON encoding/decoding
  • sigil-log for structured logging

License

AGPL-3.0