🎉 New Features
Mixed Organization Strategy
A new fourth organization strategy option has been added that provides flexible repository mirroring:
- Personal repositories are mirrored to a single configurable organization
- Organization repositories preserve their GitHub organization structure
- Combines the benefits of both "Single Organization" and "Preserve Structure" strategies
- Visual indicators with orange color theme for easy identification
Override Options Documentation
Added comprehensive in-app documentation for destination customization:
- New "Override Options" info button in the Organization Strategy component
- Explains how to use organization-level overrides (via edit buttons on org cards)
- Details repository-level overrides (via inline destination editor)
- Clarifies starred repositories behavior and priority hierarchy
🔧 Improvements
- Simplified Implementation: The mixed strategy reuses existing database fields (
organization
) instead of adding new complexity - Enhanced UI: Better visual indicators and hover interactions for the new features
- Consistent Experience: Maintains backward compatibility while adding new functionality
📋 Technical Details
Files Modified
/src/types/config.ts
- Added "mixed" to MirrorStrategy type/src/lib/db/schema.ts
- Updated mirrorStrategy enum/src/lib/gitea.ts
- Added mixed strategy routing logic/src/components/config/OrganizationStrategy.tsx
- Added UI for mixed strategy and override docs/src/components/config/OrganizationConfiguration.tsx
- Updated labels for mixed mode/src/lib/gitea.test.ts
- Added comprehensive tests for mixed strategy
Priority Hierarchy
The destination resolution follows this priority order:
- Repository-specific override (highest priority)
- Organization-specific override
- Strategy default behavior (lowest priority)
🚀 Usage Example
When using the Mixed Mode strategy:
- Your personal repos (e.g.,
username/my-project
) →github-mirrors
organization - Organization repos (e.g.,
my-org/team-project
) →my-org
organization - Starred repos → Always go to the configured starred repos organization
📦 Installation
# Using Docker
docker pull ghcr.io/arunavo4/gitea-mirror:2.18.0
# Using Bun
bun install
bun run build
bun run start
🔗 Links
Thank you to all contributors and users who provide feedback to improve Gitea Mirror!