mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2026-01-27 12:50:54 +03:00
Updated Docs
This commit is contained in:
12
CHANGELOG.md
12
CHANGELOG.md
@@ -5,6 +5,18 @@ All notable changes to the Gitea Mirror project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Mirror strategies now properly route repositories based on selected strategy
|
||||||
|
- Starred repositories now correctly go to the designated starred repos organization
|
||||||
|
- Organization routing for single-org and flat-user strategies
|
||||||
|
|
||||||
|
### Improved
|
||||||
|
- Documentation now explains all three mirror strategies (preserve, single-org, flat-user)
|
||||||
|
- Added detailed mirror strategy configuration guide
|
||||||
|
- Updated CLAUDE.md with mirror strategy architecture information
|
||||||
|
|
||||||
## [2.13.2] - 2025-06-15
|
## [2.13.2] - 2025-06-15
|
||||||
|
|
||||||
### Improved
|
### Improved
|
||||||
|
|||||||
@@ -79,6 +79,13 @@ export async function POST({ request }: APIContext) {
|
|||||||
- Tracks status in database
|
- Tracks status in database
|
||||||
- Supports scheduled automatic mirroring
|
- Supports scheduled automatic mirroring
|
||||||
|
|
||||||
|
6. **Mirror Strategies**: Three ways to organize repositories in Gitea:
|
||||||
|
- **preserve**: Maintains GitHub structure (default)
|
||||||
|
- **single-org**: All repos go to one organization
|
||||||
|
- **flat-user**: All repos go under user account
|
||||||
|
- Starred repos always go to separate organization (starredReposOrg)
|
||||||
|
- Routing logic in `getGiteaRepoOwner()` function
|
||||||
|
|
||||||
### Database Schema (SQLite)
|
### Database Schema (SQLite)
|
||||||
- `users` - User accounts and authentication
|
- `users` - User accounts and authentication
|
||||||
- `configs` - GitHub/Gitea connection settings
|
- `configs` - GitHub/Gitea connection settings
|
||||||
|
|||||||
26
README.md
26
README.md
@@ -36,9 +36,9 @@ See the [LXC Container Deployment Guide](scripts/README-lxc.md).
|
|||||||
## ✨ Features
|
## ✨ Features
|
||||||
|
|
||||||
- 🔁 Sync public, private, or starred GitHub repos to Gitea
|
- 🔁 Sync public, private, or starred GitHub repos to Gitea
|
||||||
- 🏢 Mirror entire organizations with structure preservation
|
- 🏢 Mirror entire organizations with flexible organization strategies
|
||||||
- 🐞 Optional mirroring of issues and labels
|
- 🐞 Optional mirroring of issues and labels
|
||||||
- 🌟 Mirror your starred repositories
|
- 🌟 Mirror your starred repositories to a dedicated organization
|
||||||
- 🕹️ Modern user interface with toast notifications and smooth experience
|
- 🕹️ Modern user interface with toast notifications and smooth experience
|
||||||
- 🧠 Smart filtering and job queue with detailed logs
|
- 🧠 Smart filtering and job queue with detailed logs
|
||||||
- 🛠️ Works with personal access tokens (GitHub + Gitea)
|
- 🛠️ Works with personal access tokens (GitHub + Gitea)
|
||||||
@@ -317,6 +317,28 @@ Key configuration options include:
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **SQLite is the only database required for Gitea Mirror**, handling both data storage and real-time event notifications.
|
> **SQLite is the only database required for Gitea Mirror**, handling both data storage and real-time event notifications.
|
||||||
|
|
||||||
|
### Mirror Strategies
|
||||||
|
|
||||||
|
Gitea Mirror offers three flexible strategies for organizing your repositories in Gitea:
|
||||||
|
|
||||||
|
#### 1. **Preserve GitHub Structure** (Default)
|
||||||
|
- Personal repositories → Your Gitea username
|
||||||
|
- Organization repositories → Same organization name in Gitea
|
||||||
|
- Maintains the exact structure from GitHub
|
||||||
|
|
||||||
|
#### 2. **Single Organization**
|
||||||
|
- All repositories → One designated organization
|
||||||
|
- Simplifies management by consolidating everything
|
||||||
|
- Requires specifying a destination organization name
|
||||||
|
|
||||||
|
#### 3. **Flat User Structure**
|
||||||
|
- All repositories → Your Gitea user account
|
||||||
|
- No organizations needed
|
||||||
|
- Simplest approach for personal use
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> **Starred Repositories**: Regardless of the chosen strategy, starred repositories are always mirrored to a separate organization (default: "starred") to keep them organized separately from your own repositories.
|
||||||
|
|
||||||
## 🚀 Development
|
## 🚀 Development
|
||||||
|
|
||||||
### Local Development Setup
|
### Local Development Setup
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ const githubOptions = [
|
|||||||
{ name: 'Mirror Wiki', desc: 'Mirror wiki pages from GitHub to Gitea', default: 'false' },
|
{ name: 'Mirror Wiki', desc: 'Mirror wiki pages from GitHub to Gitea', default: 'false' },
|
||||||
{ name: 'Mirror Organizations', desc: 'Mirror organization repositories', default: 'false' },
|
{ name: 'Mirror Organizations', desc: 'Mirror organization repositories', default: 'false' },
|
||||||
{ name: 'Only Mirror Orgs', desc: 'Only mirror organization repositories', default: 'false' },
|
{ name: 'Only Mirror Orgs', desc: 'Only mirror organization repositories', default: 'false' },
|
||||||
{ name: 'Preserve Org Structure', desc: 'Maintain organization structure in Gitea', default: 'false' },
|
|
||||||
{ name: 'Skip Forks', desc: 'Exclude repositories that are forks', default: 'false' },
|
{ name: 'Skip Forks', desc: 'Exclude repositories that are forks', default: 'false' },
|
||||||
{ name: 'Skip Starred Issues', desc: 'Skip issues for starred repositories', default: 'false' }
|
{ name: 'Skip Starred Issues', desc: 'Skip issues for starred repositories', default: 'false' }
|
||||||
];
|
];
|
||||||
@@ -249,6 +248,74 @@ const giteaOptions = [
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Mirror Strategies -->
|
||||||
|
<div class="bg-gradient-to-r from-primary/5 to-transparent rounded-lg p-6 border-l-4 border-primary mb-6">
|
||||||
|
<h4 class="font-semibold text-lg mb-4">Mirror Strategies</h4>
|
||||||
|
<p class="text-sm text-muted-foreground mb-4">Choose how your repositories will be organized in Gitea:</p>
|
||||||
|
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div class="bg-card rounded-lg border border-border p-4">
|
||||||
|
<h5 class="font-semibold text-base mb-2 flex items-center gap-2">
|
||||||
|
<span class="text-blue-600 dark:text-blue-500">📁</span>
|
||||||
|
Preserve GitHub Structure
|
||||||
|
</h5>
|
||||||
|
<p class="text-sm text-muted-foreground mb-2">Maintains the exact structure from GitHub:</p>
|
||||||
|
<ul class="space-y-1 text-sm ml-4">
|
||||||
|
<li class="flex gap-2">
|
||||||
|
<span class="text-muted-foreground">•</span>
|
||||||
|
<span>Personal repos → Your Gitea username</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex gap-2">
|
||||||
|
<span class="text-muted-foreground">•</span>
|
||||||
|
<span>Organization repos → Same organization name in Gitea</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-card rounded-lg border border-border p-4">
|
||||||
|
<h5 class="font-semibold text-base mb-2 flex items-center gap-2">
|
||||||
|
<span class="text-purple-600 dark:text-purple-500">🏢</span>
|
||||||
|
Single Organization
|
||||||
|
</h5>
|
||||||
|
<p class="text-sm text-muted-foreground mb-2">Consolidates all repositories into one organization:</p>
|
||||||
|
<ul class="space-y-1 text-sm ml-4">
|
||||||
|
<li class="flex gap-2">
|
||||||
|
<span class="text-muted-foreground">•</span>
|
||||||
|
<span>All repos → One designated organization</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex gap-2">
|
||||||
|
<span class="text-muted-foreground">•</span>
|
||||||
|
<span>Requires setting "Organization" field</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-card rounded-lg border border-border p-4">
|
||||||
|
<h5 class="font-semibold text-base mb-2 flex items-center gap-2">
|
||||||
|
<span class="text-green-600 dark:text-green-500">👤</span>
|
||||||
|
Flat User Structure
|
||||||
|
</h5>
|
||||||
|
<p class="text-sm text-muted-foreground mb-2">Mirrors all repositories under your user account:</p>
|
||||||
|
<ul class="space-y-1 text-sm ml-4">
|
||||||
|
<li class="flex gap-2">
|
||||||
|
<span class="text-muted-foreground">•</span>
|
||||||
|
<span>All repos → Your Gitea username</span>
|
||||||
|
</li>
|
||||||
|
<li class="flex gap-2">
|
||||||
|
<span class="text-muted-foreground">•</span>
|
||||||
|
<span>No organizations needed</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-amber-500/10 border border-amber-500/20 rounded-lg p-3 mt-4">
|
||||||
|
<p class="text-sm">
|
||||||
|
<span class="font-semibold">Note:</span> Starred repositories are always mirrored to the "Starred Repos Org" (default: "starred") regardless of the chosen strategy.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="pl-4 border-l-2 border-primary/20">
|
<div class="pl-4 border-l-2 border-primary/20">
|
||||||
<h5 class="font-semibold mb-3">To create a Gitea access token:</h5>
|
<h5 class="font-semibold mb-3">To create a Gitea access token:</h5>
|
||||||
<ol class="space-y-2 text-sm">
|
<ol class="space-y-2 text-sm">
|
||||||
|
|||||||
Reference in New Issue
Block a user