[PR #241] [MERGED] feat: custom sync start time and frequency scheduling #2896

Closed
opened 2026-05-17 19:22:18 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/RayLabsHQ/gitea-mirror/pull/241
Author: @arunavo4
Created: 3/18/2026
Status: Merged
Merged: 3/18/2026
Merged by: @arunavo4

Base: mainHead: codex/issue-240-custom-sync-time


📝 Commits (4)

  • ab0aac5 feat: add custom sync start time scheduling
  • 09582f8 Updated UI
  • ca01024 docs: add updated issue 240 UI screenshot
  • 6e24ce3 fix: improve schedule UI with client-side next run calc and timezone handling

📊 Changes

12 files changed (+1627 additions, -172 deletions)

View changed files

design/giteamirror.pen (+804 -0)
docs/images/issue-240-automation-ui-v2.png (+0 -0)
docs/images/issue-240-automation-ui.png (+0 -0)
📝 src/components/config/AutomationSettings.tsx (+146 -70)
📝 src/lib/scheduler-service.ts (+76 -82)
📝 src/lib/utils/config-defaults.ts (+16 -5)
src/lib/utils/config-mapper.test.ts (+36 -0)
📝 src/lib/utils/config-mapper.ts (+48 -5)
src/lib/utils/schedule-utils.test.ts (+65 -0)
src/lib/utils/schedule-utils.ts (+420 -0)
📝 src/pages/api/job/schedule-sync-repo.ts (+9 -9)
📝 src/types/config.ts (+7 -1)

📄 Description

Summary

  • add schedule utilities to support timezone-aware next-run calculation for both duration intervals and cron expressions
  • add a new automation scheduling mode in Configuration: Relative interval or Start time + frequency
  • persist schedule timezone/mode metadata and use it across scheduler runtime, config defaults, and manual schedule-sync API
  • improve Automatic Syncing layout with a clearer schedule builder and compact run-state panel
  • add tests for schedule conversion and cron/next-run behavior

Screenshot

Automatic Syncing schedule controls

Testing

  • bun test src/lib/utils/config-mapper.test.ts src/lib/utils/schedule-utils.test.ts
  • bun test src/pages/api/config/index.test.ts

Closes #240


🔄 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/241 **Author:** [@arunavo4](https://github.com/arunavo4) **Created:** 3/18/2026 **Status:** ✅ Merged **Merged:** 3/18/2026 **Merged by:** [@arunavo4](https://github.com/arunavo4) **Base:** `main` ← **Head:** `codex/issue-240-custom-sync-time` --- ### 📝 Commits (4) - [`ab0aac5`](https://github.com/RayLabsHQ/gitea-mirror/commit/ab0aac584bb5826b38895c7af6c99c073ce38cf5) feat: add custom sync start time scheduling - [`09582f8`](https://github.com/RayLabsHQ/gitea-mirror/commit/09582f84314eea6c6d0b7724940d67cced24da5e) Updated UI - [`ca01024`](https://github.com/RayLabsHQ/gitea-mirror/commit/ca010245a8bd42de245ba0861bfb876f69c9b808) docs: add updated issue 240 UI screenshot - [`6e24ce3`](https://github.com/RayLabsHQ/gitea-mirror/commit/6e24ce3c39c006cd79568875c2e086da05cfb70f) fix: improve schedule UI with client-side next run calc and timezone handling ### 📊 Changes **12 files changed** (+1627 additions, -172 deletions) <details> <summary>View changed files</summary> ➕ `design/giteamirror.pen` (+804 -0) ➕ `docs/images/issue-240-automation-ui-v2.png` (+0 -0) ➕ `docs/images/issue-240-automation-ui.png` (+0 -0) 📝 `src/components/config/AutomationSettings.tsx` (+146 -70) 📝 `src/lib/scheduler-service.ts` (+76 -82) 📝 `src/lib/utils/config-defaults.ts` (+16 -5) ➕ `src/lib/utils/config-mapper.test.ts` (+36 -0) 📝 `src/lib/utils/config-mapper.ts` (+48 -5) ➕ `src/lib/utils/schedule-utils.test.ts` (+65 -0) ➕ `src/lib/utils/schedule-utils.ts` (+420 -0) 📝 `src/pages/api/job/schedule-sync-repo.ts` (+9 -9) 📝 `src/types/config.ts` (+7 -1) </details> ### 📄 Description ## Summary - add schedule utilities to support timezone-aware next-run calculation for both duration intervals and cron expressions - add a new automation scheduling mode in Configuration: `Relative interval` or `Start time + frequency` - persist schedule timezone/mode metadata and use it across scheduler runtime, config defaults, and manual schedule-sync API - improve Automatic Syncing layout with a clearer schedule builder and compact run-state panel - add tests for schedule conversion and cron/next-run behavior ## Screenshot ![Automatic Syncing schedule controls](https://raw.githubusercontent.com/RayLabsHQ/gitea-mirror/codex/issue-240-custom-sync-time/docs/images/issue-240-automation-ui-v2.png) ## Testing - `bun test src/lib/utils/config-mapper.test.ts src/lib/utils/schedule-utils.test.ts` - `bun test src/pages/api/config/index.test.ts` Closes #240 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-17 19:22:18 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea-mirror#2896