forgejo-sync-manager-gui v1.0.2

Desktop GUI application for batch synchronization of Forgejo repositories

Modern dark theme interface with real-time progress tracking.

Python PyQt6 Forgejo GUI Repository Manager

forgejo-sync-manager-gui — desktop GUI application for batch synchronization of Forgejo repositories to local machine.

Modern dark theme interface with automatic authentication via personal access token, batch repository cloning and updating, and real-time progress tracking.

  • Modern Dark Theme — sleek GUI interface
  • Automatic Authentication — via personal access token
  • Batch Repository Cloning — with real-time progress tracking
  • Visual Repository List — with search and filter capabilities
  • Re-cloning Option — full repository recloning
  • Local Deletion — delete local repositories
  • One-click Open — open in browser or local folder
  • Multi-selection — batch operations on multiple repositories

Requirements:

  • Python 3.8+
  • Git
  • Forgejo server with API access
  • PyQt6
git clone https://github.com/smartlegionlab/forgejo-sync-manager-gui.git
cd forgejo-sync-manager-gui
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py

On first run, the setup dialog will guide you through:

  1. Server URL (e.g., http://localhost:3000)
  2. Personal access token with read:repository and read:user scopes

Configuration is stored in ~/forgejo-sync-manager/config.json

Main Window Components:

  • Top Panel — Application title and description
  • Info Panel — Connection status, user info (clickable), server URL (clickable), repository statistics
  • Repository Table — List of all repositories with columns: #, Repository, Type (Public 🔒/Private 🌍), Size, Status (Local 📁/Remote 🌐)
  • Search & Filter — Search by name, filter by Public/Private/Forks/Local/Remote
  • Action Buttons — Sync All, Update Only, Re-clone All

Context Menu (Right-click on repository):

  • Sync — Clone if missing, update if exists
  • Re-clone — Delete local copy and clone again
  • Delete Local — Remove local repository folder
  • Open Local Folder — Open repository folder in file manager
  • Open in Browser — Open repository on Forgejo web interface

ShortcutAction
Ctrl+Shift+SSync All Repositories
Ctrl+Shift+UUpdate Only Existing Repositories
Ctrl+Shift+RRe-clone All Repositories
Ctrl+QExit Application
Ctrl+,Open Settings
Ctrl+/Show Keyboard Shortcuts
Ctrl+Shift+AShow About Dialog

Information Dialogs: Click on username — Shows user information dialog with statistics · Click on server URL — Opens Forgejo server in default browser

When starting any sync operation, a dialog appears showing:

  • Real-time progress bar
  • Current repository being processed
  • Operation log with timestamps
  • Summary statistics upon completion

  • Authentication — Token-based authentication via Forgejo API
  • Repository Discovery — Fetches complete repository list with pagination (50 per page)
  • Sync Operations — Uses authenticated URLs with embedded token for Git operations
  • Real-time UI Updates — Repository status changes immediately after each successful operation

This application is built on top of:

LibraryDescriptionVersion
forgejo-sync-manager-coreUniversal core library for Forgejo repository synchronizationv1.0.0
PyQt6Python bindings for Qt6 framework≥6.5.0
requestsHTTP library for Python≥2.31.0

Related Projects:

By using this software, you agree to the full disclaimer terms.

Software provided "AS IS" without warranty. You assume all risks.

Full legal disclaimer: See DISCLAIMER.md

License: BSD 3-Clause License