Releases: AkashRajpurohit/git-sync
v0.21.0
What's New!
This release brings two new features — Issue Backup and Anonymous Telemetry.
Issue Backup
You can now backup issues from your GitHub and GitLab repositories as JSON files alongside your repo backups. Enable it in your config:
include_issues: true
Issues are saved to <backup_dir>/<repo>/issues/ with one JSON file per issue, preserving titles, descriptions, labels, comments, and metadata. Issue backup status is included in the sync summary and notifications.
Anonymous Telemetry
git-sync now collects anonymous usage analytics via PostHog to help understand which platforms and features are popular. No PII, repository names, or tokens are ever collected, only aggregate counts and metadata like platform, OS, architecture, and sync success/failure counts.
Telemetry is enabled by default and can be disabled in any of these ways:
- Set telemetry.enabled: false in your config
- Set the environment variable GIT_SYNC_NO_TELEMETRY=1
telemetry:
enabled: false # opt out of anonymous telemetry
Other Changes
- Dependency upgrades across the board
Changelog
- 8e6c792 feat: ✨ telemetry added
- f47d758 feat: ✨ backup issues for GitHub and GitLab
- d98ecdf chore: 📝 update sponsor banner
- fce5dc7 chore(deps): update module github.com/spf13/cobra to v1.10.2
- 696ead3 chore(deps): update module go.uber.org/zap to v1.27.1
- d08b913 chore(deps): update module golang.org/x/oauth2 to v0.35.0
- a903166 chore(deps): update module github.com/spf13/viper to v1.21.0
- 1864ea5 chore(deps): update actions/checkout action to v6
- 5178d6e chore(deps): update actions/download-artifact action to v7
- c4397d9 chore(deps): update actions/setup-go action to v6
- b65ec7d chore(deps): update actions/stale action to v10
- e8023bb chore(deps): update actions/upload-artifact action to v6
- 1d9c734 chore(deps): update actions/checkout action to v5
- a60717e chore(deps): update actions/download-artifact action to v5 (#128)
v0.20.0
v0.19.0
What's New!
Nothing much really, we have upgraded the dependencies that the project relies upon as well as included a change which will reduce the docker image size from ~43MB to ~38MB.
Changelog
- 6ebf792 chore: simplify apk usage in Dockerfile (#114)
- f1a0f2b chore(deps): upgrade github.com/google/go-github from v71 to v72
- 87b92ae chore(deps): update module github.com/google/go-github/v71 to v72 (#117)
- 468a68b chore: ⬆️ upgrade go to 1.24.4
- 6235d16 chore(deps): update module github.com/ktrysmt/go-bitbucket to v0.9.85 (#113)
- 698ab17 chore(deps): update module golang.org/x/oauth2 to v0.30.0 (#115)
- f17ce74 chore(deps): update golang docker tag to v1.24.4 (#116)
- 11a5fe2 chore: 🚚 code cleanup
- e85e826 chore: 🔧 go mod tidy
- eb4b453 chore(deps): update module github.com/ktrysmt/go-bitbucket to v0.9.83 (#112)
- 007a9dc chore: ♻️ reference to go-github v71
- f87033a build: ⬆️ go version upgraded to 1.24.2
- c471765 chore(deps): update module github.com/google/go-github/v70 to v71 (#110)
- 73025f1 chore(deps): update module github.com/ktrysmt/go-bitbucket to v0.9.82 (#107)
- 6f60369 chore(deps): update golang docker tag to v1.24.2 (#108)
- 831ed93 chore(deps): update module golang.org/x/oauth2 to v0.29.0 (#109)
- d1f9ecc chore(deps): upgrade github.com/google/go-github from v69 to v70 and remove unused dependencies
- 5d6a24a chore(deps): update module github.com/google/go-github/v69 to v70 (#105)
- db2388e chore(deps): update module github.com/spf13/viper to v1.20.1 (#104)
v0.18.0
What's New!
In this release, we have added support for notifications! So now you can get notified when your sync is complete, or if there are any errors.
Supported Providers
- Ntfy
- Gotify
- (If you want to add another provider, please let me know!)
Configuration
You can configure the notifications in the config.yaml file.
notification:
enabled: true
only_failures: false
ntfy:
topic: 'backup'
server: 'https://ntfy.sh' # Optional
username: 'akash' # Optional
password: 'password' # Optional
priority: 4 # Optional (1-5)
tags: ['backup'] # Optional
gotify:
url: 'http://localhost:2444'
app_token: 'your_app_token'
priority: 4 # Optional (1-5)Full configuration can be found in our Wiki.
Changelog
- 36692d3 feat: ✨ notification configuration added
- 3a26bfc feat(logger): 🔧 add initial fields to logger configuration for app identification
- 6006220 chore(deps): update Go version to 1.24.1 and upgrade go-github to v69
- 1572213 chore(deps): update module github.com/spf13/cobra to v1.9.1 (#100)
- 095c1fb chore(deps): update module github.com/google/go-github/v68 to v69 (#95)
- 698fe40 chore(deps): update golang docker tag to v1.24.1 (#91)
- f632107 chore(deps): update module golang.org/x/oauth2 to v0.28.0 (#94)
- e5e6d1b build: ⬆️ go version upgraded to 1.23.5
- 55d99ea chore: 🔧 update goreleaser config
v0.17.0
What's New!
This release adds support for Gitea platform 🎉
More details about the configuration options and example configuration for Gitea can be found in our Wiki.
Changelog
v0.16.0
What's New!
There are sensible defaults added to the configuration in case when you skip some of them. Refer to the configuration options on our Wiki here
Changelog
- fcaf024 feat: ✨ add sensible defaults
- ceec51d build(deps): bump golang.org/x/crypto from 0.28.0 to 0.31.0 (#84)
- e0559e0 fix(deps): ⬆️ update go-github dependency
- 9a36c62 chore(deps): update module github.com/google/go-github/v67 to v68 (#80)
- 35fe0cf chore(deps): update module golang.org/x/oauth2 to v0.25.0 (#82)
v0.15.1
This release fixes a bug from 0.15.0 release. Kindly upgrade to this version.
Release notes from previous release for convenience.
What's New! 🎉
In this release, we have another major improvement on how git-sync handles syncing operation. The major changes are:
- Now git-sync will not fail and exit if there is some failure while syncing some repository, instead it can skip it and move ahead with syncing other repositories/wiki's. This is especially very helpful when you are trying to sync large number of repositories and failure in one of them was breaking your entire sync operation.
- There is a new config option called
retrywhich will let you specify the retry count and delay. When retry config is present, git-sync will keep attempting to retry a failed sync operation till the max attempts are reached with each attempt having the delay (in seconds). While this option is not required, it is highly advisable to use it. More info about it is available in our Wiki page.
At the end of the operation, we will now show a summary of the number of repositories and wiki's that got synced and the number and name of repositories that failed.
Changelog
- e2e95e9 fix: 🩹 perform git fetch command inside the retry function
v0.15.0
Important ⚠️
Use the version 0.15.1 instead of this which fixes a bug in this release 🙏🏽
What's New! 🎉
In this release, we have another major improvement on how git-sync handles syncing operation. The major changes are:
- Now git-sync will not fail and exit if there is some failure while syncing some repository, instead it can skip it and move ahead with syncing other repositories/wiki's. This is especially very helpful when you are trying to sync large number of repositories and failure in one of them was breaking your entire sync operation.
- There is a new config option called
retrywhich will let you specify the retry count and delay. When retry config is present, git-sync will keep attempting to retry a failed sync operation till the max attempts are reached with each attempt having the delay (in seconds). While this option is not required, it is highly advisable to use it. More info about it is available in our Wiki page.
At the end of the operation, we will now show a summary of the number of repositories and wiki's that got synced and the number and name of repositories that failed.
Changelog
v0.14.1
This release fixes a bug introduced in the previous 0.14.0 release. Please use this version instead of 0.14.0.
Release notes from previous release for convenience.
What's New!
This release majorly helps the users who have a large number of repositories to sync and often run into rate limiting issues.
git-sync now supports passing multiple personal access tokens to avoid this issue. The new option is named tokens in the config file, more details can be found in the Wiki.
For simplicity, the token option is deprecated and will be removed in the future during v1.0 release. You can still use it for now but it's recommended to use the tokens option instead.
Apart from this, you will also start seeing warning logs in the console for any invalid configurations that might cause issue after the release of v1.0, so it is advised to fix them as soon as possible.
Changelog
v0.14.0
Important ⚠️
Use the version 0.14.1 instead of this which fixes the bug introduced in this release 🙏🏽
What's New!
This release majorly helps the users who have a large number of repositories to sync and often run into rate limiting issues.
git-sync now supports passing multiple personal access tokens to avoid this issue. The new option is named tokens in the config file, more details can be found in the Wiki.
For simplicity, the token option is deprecated and will be removed in the future during v1.0 release. You can still use it for now but it's recommended to use the tokens option instead.
Apart from this, you will also start seeing warning logs in the console for any invalid configurations that might cause issue after the release of v1.0, so it is advised to fix them as soon as possible.