github RayLabsHQ/gitea-mirror v3.3.0

latest releases: v3.5.1, v3.5.0, v3.4.0...
4 days ago

Release Notes - v3.3.0

🎯 Highlights

This release brings significant improvements to automatic mirroring, repository management, UI enhancements, and security fixes. The scheduler is now more reliable, the UI is more polished, and several critical bugs have been resolved.

🐛 Major Fixes

Automatic Mirroring & Scheduling (Issue #72)

Fixed multiple issues preventing automatic mirroring from working correctly:

  • Duration Parser: New comprehensive duration parser that supports human-readable formats:

    • 8h (8 hours)
    • 30m (30 minutes)
    • 1d (1 day)
    • Cron expressions
    • Plain numbers (seconds)
  • Auto-Enable Behavior: Setting GITEA_MIRROR_INTERVAL now automatically enables the scheduler - no need to separately enable it

  • Timing Calculation: Fixed confusion about when mirroring runs:

    • Timer now calculates from last successful run, not container startup
    • Clear logging shows exactly when next sync will occur
    • Prevents unexpected gaps in mirroring schedule

Repository Cleanup Service

Implemented comprehensive cleanup functionality for orphaned repositories:

  • Automatic Cleanup: Setting CLEANUP_DELETE_IF_NOT_IN_GITHUB=true automatically enables cleanup
  • Orphaned Repository Detection: Identifies repos that exist in Gitea but no longer in GitHub
  • Multiple Actions: Support for skip, archive, or delete actions
  • Dry-Run Mode: Test cleanup operations before executing
  • Batch Processing: Prevents rate limiting with configurable batch sizes

✨ New Features & Improvements

UI/UX Enhancements

  • Password Visibility Toggle: Added eye/eye-off icon for password fields in login/signup forms
  • Status Badges: Repository and organization status now use visual badges for better clarity
  • Dashboard Updates: Minor UI improvements for better information presentation
  • Login Redirect: Added automatic redirect to login page when authentication is required
  • Beta Tag: Added BETA indicator for experimental features like LFS support
  • Organization Cards: Display repository count breakdown (public, private, forks) with zero-value filtering

Repository Management

  • Improved Ignore Feature: Enhanced repository ignore functionality with better UI controls
  • Repository Table: Removed duplicate owner/name display for cleaner presentation
  • Organization Ignore: Added ability to ignore entire organizations from mirroring

Security & Stability

  • CVE-2025-57820 Fix: Resolved security vulnerability in the devalue package
  • Authentication URLs: Better handling of environment variable URLs with validation
  • Config Mapper Fix: Fixed TypeError in configuration mapping functions
  • Default Configs: Improved default configuration values for better out-of-box experience

📚 Documentation Updates

  • Added clear "Automatic Mirroring" section to README
  • Updated environment variable documentation with auto-enabling behavior
  • Added examples of supported interval formats
  • Clarified that timer starts from last run, not container startup
  • Added LFS environment variable documentation
  • Enhanced configuration documentation with more options

🔧 Technical Improvements

  • Enhanced scheduler service with better error handling
  • Improved environment variable precedence handling
  • Added manual cleanup trigger API endpoint (/api/cleanup/trigger)
  • Better logging throughout scheduling and cleanup operations
  • Updated Docker base image with latest Bun version
  • Fixed TypeScript compilation issues
  • Enhanced test suite with better coverage
  • Updated Astro framework to latest version
  • Dependency updates for security and performance

💡 Usage Examples

Setting Up Automatic Mirroring

Via environment variable (auto-enables):

GITEA_MIRROR_INTERVAL=8h  # Sync every 8 hours

Via web UI:

  • Navigate to Configuration → Automatic Mirroring
  • Enable and set your preferred interval

Repository Cleanup

Enable automatic cleanup of orphaned repos:

CLEANUP_DELETE_IF_NOT_IN_GITHUB=true  # Auto-enables cleanup
CLEANUP_RETENTION_DAYS=7              # Keep logs for 7 days

🙏 Acknowledgments

Special thanks to the community members who reported and helped diagnose these issues, particularly the detailed reports in Issue #72.

📝 Upgrade Notes

  • No breaking changes
  • Existing configurations will continue to work
  • New auto-enable features are backward compatible
  • Environment variables now provide better defaults

🔗 Issues Resolved

  • #72: Automatic Mirroring and some docker compose flags not working
  • #68: Enhanced pull request mirroring with rich metadata (partial fix from v3.2.6)
  • #80: Various UI/UX improvements and bug fixes
  • CVE-2025-57820: Security vulnerability in devalue package

📦 Dependencies

  • Updated to Bun 1.2.18
  • Updated Astro to latest version
  • Security updates for npm packages
  • Fixed vulnerabilities in www package dependencies

For full changelog, see CHANGELOG.md

Don't miss a new gitea-mirror release

NewReleases is sending notifications on new releases.