Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: yangflow/gitrelay

GitRelay 0.3.2

25 Apr 11:21
@yangflow yangflow

Choose a tag to compare

Sync health dashboard release.

  • Adds sidebar and menu bar health summaries for today's succeeded, failed, and not-run repositories.
  • Tracks last successful sync and consecutive failure counts, with badges for repositories failing 3+ times.
  • Preserves sync health fields when editing repos and migrates existing configs safely.
  • Includes tests for config migration, sync result bookkeeping, and health summary classification.

SHA256:

cdf0e34521f1948faddb7733cd14c5a73e33ad00c6589c073c0847fd9f465242

Assets 4
Loading

GitRelay 0.3.1

25 Apr 10:54
@yangflow yangflow

Choose a tag to compare

Added

  • Added destructive mirror push protection.
  • GitRelay now runs git push --mirror --dry-run before pushing.
  • New repositories default to strict protection and block target ref deletes or forced updates.
  • Existing repositories keep the previous automatic mirror behavior during migration.
  • Added a per-repository setting to choose strict protection or automatic mirror push behavior.

Notes

  • This build is unsigned. On first launch, right-click the app and choose Open, or run xattr -cr /Applications/GitRelay.app.
Loading

GitRelay 0.3.0

20 Apr 10:38
@yangflow yangflow

Choose a tag to compare

What's changed

New features

  • Browse & bulk-add from providers — A new toolbar button opens a 3-step sheet that lists your GitHub or GitLab repositories, supports multi-select with search, and generates target URLs from a {name} template. No more copy-pasting clone URLs one by one.
  • Self-hosted GitLab — Point at your own GitLab instance (e.g. https://gitlab.company.com); the client auto-appends /api/v4. Host is persisted for next time.
  • Auto-create on Gitea — Toggle "在目标端自动创建仓库" in the target step to create the destination repo on a self-hosted Gitea in the same batch. Three namespace modes:
    • Current user
    • Organization
    • Admin-for-user (creates under another user, requires admin token)
    • Name conflicts (HTTP 409) are resolved by reusing the existing repo instead of failing.
  • Batch result summary — After submitting, see per-repo success / reused / failed status with the server message, then commit only the successful ones to the sync list.

UI

  • Sidebar toolbar now has two dedicated icons: + (manual add) and magnifyingglass (browse). Previously hidden behind an overflow menu.

Download

Unsigned ad-hoc build. On first launch, right-click → Open, or run:

xattr -cr /Applications/GitRelay.app
Loading

GitRelay 0.2.4

13 Apr 16:54
@yangflow yangflow

Choose a tag to compare

What's changed

Internal refactor and accessibility pass — no user-facing feature changes.

Code quality

  • Split 11 large SwiftUI views into dedicated files (RepoDetailView → 6, MenuBarPopoverView → 3, SyncLogView → 2) so each type lives in its own file.
  • Replaced hand-rolled layout in AddEditRepoSheet with Form + Section + .formStyle(.grouped).
  • Replaced custom empty-state layout with ContentUnavailableView.
  • Replaced NSOpenPanel.runModal with SwiftUI-native .fileImporter for the SSH key picker.
  • Replaced DispatchQueue.main.asyncAfter with Task + Task.sleep(for:).

Accessibility

  • StatusIconView now honors Reduce Motion: the sync rotation is disabled and replaced with an opacity dim when the user has enabled that setting.
  • Replaced hardcoded .font(.system(size:)) and .caption2 throughout with semantic Dynamic Type fonts so text scales correctly.

Reliability

  • RepoStore.save / RepoStore.load errors are now surfaced to the user via an alert instead of being silently swallowed with try? / print.
  • RepoDetailViewModel.loadBranches is now async and invoked via .task(id:), so the underlying git for-each-ref is cancelled when the detail view disappears.
  • Menu bar NSImage is cached statically instead of being rebuilt every time the status dictionary updates.

Download

Unsigned ad-hoc build. On first launch, right-click → Open, or run:

xattr -cr /Applications/GitRelay.app
Loading

GitRelay 0.2.3

13 Apr 16:28
@yangflow yangflow

Choose a tag to compare

What's New

  • Popover footer: About and Quit buttons moved to the bottom of the menu bar popover, matching standard macOS app conventions
  • Clicking About or Open Main Window now automatically closes the popover
Loading

GitRelay 0.2.2

12 Apr 10:11
@yangflow yangflow

Choose a tag to compare

Bug fixes

  • Fix "An error occurred in retrieving update information" — disable App Sandbox to allow Sparkle and git network access
  • Fix Info.plist appearing in Copy Bundle Resources build phase
  • Configure SUFeedURL and SUPublicEDKey for Sparkle
Loading

GitRelay 0.2.1

12 Apr 10:01
@yangflow yangflow

Choose a tag to compare

Bug fixes

  • Fix "Check for Updates" button doing nothing — startingUpdater was false, leaving the Sparkle controller uninitialized
Loading

GitRelay 0.2.0

12 Apr 09:57
@yangflow yangflow

Choose a tag to compare

What's new

  • About window — app icon, version, copyright, MIT license, GitHub link
  • Check for Updates — menu bar i → About → 检查更新; opens GitHub Releases until Sparkle signing is configured
  • Homebrewbrew tap yangflow/tap && brew install --cask gitrelay

Fixes

  • Menu bar icon size increased to 16 pt semibold for better visibility

Install

brew tap yangflow/tap
brew install --cask gitrelay

Or download the DMG below.

Unsigned build: right-click → Open on first launch, or run xattr -cr /Applications/GitRelay.app

Loading

GitRelay 0.1.0

12 Apr 09:31
@yangflow yangflow

Choose a tag to compare

First public release.

Features

  • Mirror any Git repository to any other — GitLab, GitHub, Gitea, Gitee, or any self-hosted server
  • SSH Agent, SSH key, and HTTPS token auth (tokens stored in macOS Keychain)
  • Per-repo sync schedule: manual, 15 min, 30 min, 1 h, 1 day
  • Sync log with credential redaction and error classification
  • Menu bar quick access — status at a glance, trigger sync without opening the main window
  • Commit delta counter (src ahead of dst)

Install

Download GitRelay-0.1.0.dmg, open it, drag GitRelay to Applications.

Unsigned build: right-click → Open on first launch, or run xattr -cr /Applications/GitRelay.app

Requirements

  • macOS 14 (Sonoma) or later
  • git installed
Loading

AltStyle によって変換されたページ (->オリジナル) /