Follow-up to #281 / v3.15.8. That PR made scheduleConfig.autoMirror an independent trigger in the scheduler, but it was still reachable only via the AUTO_MIRROR_REPOS env var. This PR surfaces it in the UI so the option can be toggled per-config without touching the environment.
New checkbox "Auto-mirror new repositories" in the Automatic Syncing section of the Automation tab
Visible only when scheduling is enabled (auto-mirror without a scheduler is meaningless)
Independent of the existing "Auto-mirror new starred repositories" toggle under GitHub settings — together they cover the full owned/starred matrix the scheduler supports
Plumbing: config-mapper.ts round-trips autoMirror through the UI ↔ DB boundary; ScheduleConfig in types/config.ts gets the matching field
No schema or migration change — autoMirror was already in the zod schema (db/schema.ts:105).
Test plan
bun test — full suite, 234 pass / 0 fail
bunx tsc --noEmit — no type errors in changed files
bun run build — clean
Browser smoke test not performed in this PR. The change is contained (one checkbox + 3 lines of mapper) and the round-trip is covered by config-mapper.test.ts. Recommended manual check before release: load /config, switch to Automation tab, toggle the new checkbox, save, reload, confirm value persists. Then verify with autoMirrorStarred=false + autoMirror=true that newly imported owned repos mirror on the next scheduler tick.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/RayLabsHQ/gitea-mirror/pull/282
**Author:** [@arunavo4](https://github.com/arunavo4)
**Created:** 5/4/2026
**Status:** ✅ Merged
**Merged:** 5/4/2026
**Merged by:** [@arunavo4](https://github.com/arunavo4)
**Base:** `main` ← **Head:** `feat/auto-mirror-owned-ui`
---
### 📝 Commits (1)
- [`8327be3`](https://github.com/RayLabsHQ/gitea-mirror/commit/8327be374fdab6f92c62fc66a5d05b6f97fa5371) feat: surface auto-mirror toggle in automation settings (refs #278)
### 📊 Changes
**3 files changed** (+29 additions, -0 deletions)
<details>
<summary>View changed files</summary>
📝 `src/components/config/AutomationSettings.tsx` (+25 -0)
📝 `src/lib/utils/config-mapper.ts` (+3 -0)
📝 `src/types/config.ts` (+1 -0)
</details>
### 📄 Description
## Summary
Follow-up to #281 / v3.15.8. That PR made `scheduleConfig.autoMirror` an independent trigger in the scheduler, but it was still reachable only via the `AUTO_MIRROR_REPOS` env var. This PR surfaces it in the UI so the option can be toggled per-config without touching the environment.
- New checkbox **"Auto-mirror new repositories"** in the Automatic Syncing section of the Automation tab
- Visible only when scheduling is enabled (auto-mirror without a scheduler is meaningless)
- Independent of the existing **"Auto-mirror new starred repositories"** toggle under GitHub settings — together they cover the full owned/starred matrix the scheduler supports
- Plumbing: `config-mapper.ts` round-trips `autoMirror` through the UI ↔ DB boundary; `ScheduleConfig` in `types/config.ts` gets the matching field
No schema or migration change — `autoMirror` was already in the zod schema (`db/schema.ts:105`).
## Test plan
- [x] `bun test` — full suite, 234 pass / 0 fail
- [x] `bunx tsc --noEmit` — no type errors in changed files
- [x] `bun run build` — clean
- [ ] **Browser smoke test not performed in this PR.** The change is contained (one checkbox + 3 lines of mapper) and the round-trip is covered by `config-mapper.test.ts`. Recommended manual check before release: load `/config`, switch to Automation tab, toggle the new checkbox, save, reload, confirm value persists. Then verify with `autoMirrorStarred=false` + `autoMirror=true` that newly imported owned repos mirror on the next scheduler tick.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/RayLabsHQ/gitea-mirror/pull/282
Author: @arunavo4
Created: 5/4/2026
Status: ✅ Merged
Merged: 5/4/2026
Merged by: @arunavo4
Base:
main← Head:feat/auto-mirror-owned-ui📝 Commits (1)
8327be3feat: surface auto-mirror toggle in automation settings (refs #278)📊 Changes
3 files changed (+29 additions, -0 deletions)
View changed files
📝
src/components/config/AutomationSettings.tsx(+25 -0)📝
src/lib/utils/config-mapper.ts(+3 -0)📝
src/types/config.ts(+1 -0)📄 Description
Summary
Follow-up to #281 / v3.15.8. That PR made
scheduleConfig.autoMirroran independent trigger in the scheduler, but it was still reachable only via theAUTO_MIRROR_REPOSenv var. This PR surfaces it in the UI so the option can be toggled per-config without touching the environment.config-mapper.tsround-tripsautoMirrorthrough the UI ↔ DB boundary;ScheduleConfigintypes/config.tsgets the matching fieldNo schema or migration change —
autoMirrorwas already in the zod schema (db/schema.ts:105).Test plan
bun test— full suite, 234 pass / 0 failbunx tsc --noEmit— no type errors in changed filesbun run build— cleanconfig-mapper.test.ts. Recommended manual check before release: load/config, switch to Automation tab, toggle the new checkbox, save, reload, confirm value persists. Then verify withautoMirrorStarred=false+autoMirror=truethat newly imported owned repos mirror on the next scheduler tick.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.