FossilRepo

Features

3 days, 16 hours ago by ragelink

Features

Code Browser

  • Directory navigation with breadcrumbs and file size display
  • Syntax-highlighted source view with line numbers and permalinks
  • Copy-link popover on line number click
  • Blame with age-based coloring (newest = red, oldest = gray)
  • File history showing all checkins that touched a file
  • Raw file download
  • Rendered preview for Markdown, HTML, and other markup
  • README auto-rendering at directory level

Timeline

  • DAG graph with fork/merge connectors and color-coded branches (8-color palette)
  • Merge commit diamonds, leaf indicators (open circles)
  • Date headers grouping commits by day
  • Keyboard navigation (j/k to move, Enter to open)
  • HTMX infinite scroll for seamless loading
  • Event type filtering (checkins, wiki, tickets)
  • RSS feed

Diffs

  • Unified and side-by-side view (toggle with localStorage preference)
  • Syntax highlighting via highlight.js (auto-detected from file extension)
  • Color-coded additions (green) and deletions (red)
  • Line-level permalinks
  • Compare any two checkins
  • Fossil delta decoding for accurate diff computation

Tickets

  • Full CRUD: create, edit, close/reopen, add comments
  • Filter by status, type, priority, severity
  • Pagination with configurable per-page (25/50/100)
  • Live search via HTMX
  • CSV export
  • Custom field definitions (text, textarea, select, checkbox, date, URL)
  • Custom SQL ticket reports with injection prevention
  • Per-page count selector

Wiki

  • Markdown + Fossil wiki markup + raw HTML rendering
  • Pikchr diagram rendering (via fossil CLI)
  • Create and edit pages
  • Right-sidebar table of contents
  • Internal link rewriting (Fossil URLs mapped to app URLs)
  • Footnotes, tables, fenced code blocks

Forum

  • Threaded discussions (Fossil-native + Django-backed posts)
  • Create new threads with markdown body
  • Post replies with threading
  • Merged view showing both Fossil and Django posts

Releases

  • Versioned releases with tag names and markdown changelogs
  • Source code archives: tar.gz and zip (via fossil tarball/zip)
  • File attachments with download counts
  • Draft and prerelease support
  • CRUD for authorized users

Technotes

  • Create and edit developer journal entries
  • Markdown body with preview
  • Timestamped, shown in timeline

Unversioned Files

  • Browse Fossil's unversioned content (equivalent to Git LFS)
  • File list with size and date
  • Download individual files
  • Admin upload via fossil uv CLI

Branches, Tags, Technotes

  • List all branches with open/closed status
  • List all tags
  • Searchable and paginated
  • Full-text search across checkins, tickets, and wiki pages
  • Global search shortcut (/ key)
  • Per-project scoped search

Sync

  • Pull from upstream Fossil remotes
  • Push to downstream Fossil remotes
  • Bidirectional sync
  • Git mirror to GitHub/GitLab via OAuth or SSH key auth
  • Multiple mirrors per repo, each with own schedule and direction
  • Configurable sync modes: on-change, scheduled (cron), both, disabled
  • Clone/push/pull over HTTP (fossil http CGI proxy)
  • Clone/push/pull over SSH (port 2222, forced command)

Webhooks

  • Outbound HTTP webhooks on checkin, ticket, wiki, release events
  • HMAC-SHA256 signed payloads
  • Exponential backoff retry (3 attempts)
  • Delivery log with response status and timing
  • Per-project webhook configuration

CI Status Checks

  • External API for CI systems to POST build status per checkin
  • Bearer token authentication
  • SVG badge endpoint for embedding in READMEs
  • Status display on checkin detail page (green/red/yellow icons)

Releases

  • Create/edit/delete versioned releases
  • Link to Fossil checkin
  • Markdown changelog body
  • Source code download (tar.gz, zip)
  • File attachments with download tracking
  • Draft and prerelease flags

Organization Management

  • Single-org model with settings, website, description
  • Member management: create, edit, deactivate, change password
  • Team management: create, assign members
  • Project groups: organize related repos under a group header
  • Project-level team roles: read, write, admin

Roles and Permissions

  • Predefined roles: Admin, Manager, Developer, Viewer
  • Custom role creation with permission picker (grouped by app)
  • Role assignment on user create/edit
  • Permissions synced to Django Groups automatically
  • Two-layer model: org-level roles + project-level RBAC

User Profiles

  • Personal profile page: name, email, @handle, bio, location, website
  • SSH key management with encrypted storage
  • Personal access tokens (frp_ prefix, hash-only storage)
  • Notification preferences (immediate/daily/weekly/off + event toggles)
  • Change password

Project Features

  • Project starring with counts
  • Explore/discover page for public projects (sort by stars/recent/name)
  • Project groups for organizing related repos
  • Public/internal/private visibility
  • Anonymous access for public repos (all read views)

API Tokens and Deploy Keys

  • Project-scoped API tokens with SHA-256 hashed storage
  • Token shown once on creation, never stored in plaintext
  • Configurable permissions and expiry
  • Last-used tracking

Branch Protection

  • Per-branch protection rules with glob pattern matching
  • Restrict push to admins only
  • Required CI status check contexts
  • Enforced on HTTP sync, CLI push/sync, and SSH push

Artifact Shunning

  • Admin UI for permanently removing artifacts
  • Type-to-confirm safety (must enter first 8 chars of UUID)
  • Calls fossil shun CLI
  • Irreversible with clear warning

SQLite Explorer

  • Visual schema map with category-colored table cards
  • SVG relationship graph showing Fossil's internal table connections
  • HTMX-powered table browser with column definitions and paginated data
  • Custom SQL query runner (SELECT only, validated against injection)
  • Admin-only access

Audit Log

  • Unified view of all model changes via django-simple-history
  • Filter by model type (Project, Organization, Team, Repository)
  • Shows user, action (Created/Changed/Deleted), timestamp
  • Superuser/org-admin access

Email Notifications

  • HTML email templates (dark themed, inline CSS for email clients)
  • Immediate delivery per event
  • Daily/weekly digest mode
  • Per-user event type toggles (checkins, tickets, wiki, releases, forum)
  • Unsubscribe links

Agentic Development Platform

  • MCP server with 17 tools for AI assistant integration
  • JSON API: 10+ read endpoints with Bearer token auth
  • Batch API: execute up to 25 API calls in one request
  • Agent workspaces: isolated Fossil branches per agent
  • Atomic ticket claiming for multi-agent coordination
  • Server-Sent Events for real-time notifications
  • Code review API: submit diffs, comment, approve, merge

UI/UX

  • Dark/light theme with system preference detection
  • Collapsible sidebar with project tree navigation
  • Keyboard shortcuts (j/k, Enter, /, ?)
  • Consistent pagination (25/50/100 per-page selector) across all lists
  • HTMX live search with 300ms debounce
  • Mobile responsive (slide-out drawer)
  • Custom branded error pages (403, 404, 500)
  • Public nav for anonymous users (logo, Explore, Sign in)

Infrastructure

  • Omnibus Docker image (Fossil compiled from source)
  • Multi-arch builds (amd64 + arm64)
  • Caddy for SSL termination and subdomain routing
  • Litestream for continuous SQLite-to-S3 replication
  • Supply chain attestations (SLSA provenance + SBOM)
  • Non-root container execution (gosu privilege dropping)
  • Celery Beat for scheduled tasks

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button