Background Sync
How GitRadar keeps your starred repositories up to date automatically.
GitRadar continuously syncs your GitHub stars in the background so your recommendations always reflect your current interests.
Sync types
| Type | When it runs | Triggered by |
|---|---|---|
| Initial sync | Once, right after sign-in | Automatic |
| Background sync | Every 6 hours | Automatic |
| Manual sync | On demand | You |
Initial sync
The first time you sign in, GitRadar fetches every repository you've ever starred on GitHub. This is a one-time operation. You'll see a progress indicator on the Discover page while it runs:
Syncing your repositories...
[████████████████░░░░] 412 / 500 repositories processedWhen the initial sync completes, you'll receive a confirmation email with the total number of repositories imported. After that, the Discover page becomes available.
Background sync
Once the initial sync is done, GitRadar automatically re-syncs your stars every 6 hours. This picks up any new repositories you've starred directly on GitHub since the last sync.
You don't need to do anything — it runs silently in the background. The sync status is visible in the app if a sync is currently in progress.
Manual sync
You can trigger a sync at any time from the app. This is useful if you've starred a batch of repositories on GitHub and want them available in GitRadar immediately without waiting for the next scheduled sync.
What gets synced
During each sync, GitRadar:
- Fetches your full list of starred repositories from the GitHub API.
- Upserts each repository into the database (name, description, stars, topics, language, etc.).
- Records the star relationship between you and each repository.
- Generates vector embeddings for repositories that meet the minimum star threshold (used for discovery).
Repositories you've dismissed in GitRadar are not unstarred on GitHub — dismissal only affects GitRadar's recommendations.
Sync status
The current sync state is one of:
| Status | Meaning |
|---|---|
idle | No sync running. Everything is up to date. |
initial_sync | First-time import in progress. |
background_sync | Scheduled 6-hour sync running. |
manual_sync | You triggered a sync manually. |
error | The last sync failed. Try triggering a manual sync. |
If your sync status shows error, your recommendations may be based on stale
data. Trigger a manual sync to recover.