-
-
Notifications
You must be signed in to change notification settings - Fork 34
Configuration
Akash Rajpurohit edited this page Dec 20, 2024
·
22 revisions
Before using git-sync, you need to create a configuration file named config.yaml. The default path for the configuration file is ~/.config/git-sync/config.yaml.
Here's an example configuration file:
# Git Sync Configuration
# Repository settings
include_forks: false # Include forked repositories
include_wiki: true # Include wiki's
include_repos: [] # Include specific repositories
exclude_repos: [] # Exclude specific repositories
include_orgs: [] # Include repositories from specific organizations
exclude_orgs: [] # Exclude repositories from specific organizations
raw_git_urls: [] # Raw valid git URLs
# Authentication
username: <username>
tokens: ['<token 1'>]
# Server settings
backup_dir: /path/to/backup
clone_type: bare # Clone type: bare, shallow, mirror or full. Default: bare
cron: 0 0 * * * # run every 24 hours at 00:00
concurrency: 5
platform: github
server:
domain: github.com
protocol: https| Field | Description | Required |
|---|---|---|
username |
Your service username. | Yes |
tokens |
List of service personal access token. You can create a new token here. Ensure that the token has the repo scope. |
Yes |
include_wiki |
Include wiki in your backup process along with the code. | No (Default is true) |
include_forks |
If set to true, forks of the user's repositories will also be backed up. Default is false. |
No (Default is false) |
include_repos |
A list of repositories to include in the backup. If set then only these repositories will be backed up. | No (Default is []) |
exclude_repos |
A list of repositories to exclude from the backup. If set then all repositories except these will be backed up. | No (Default is []) |
include_orgs |
A list of orgs to include in the backup. If set then repositories only from these organizations will be backed up | No (Default is []) |
exclude_orgs |
A list of orgs to exclude from the backup. If set then all organization repositories except these orgs will be backed up. | No (Default is []) |
raw_git_urls |
A list of raw git URLs to sync | No (Default is []) |
backup_dir |
The directory where the repositories will be backed up. | No (Default is ~/git-backups) |
cron |
The cron expression to run the sync job periodically. | No (Default is "") |
concurrency |
Number of repos being synced concurrently. | No* (Default is "5") |
clone_type |
The type of clone you want to perform. Options are: bare, shallow, mirror or full
|
No* (Default is bare) |
platform |
The platform to use for syncing repositories. Currently, it supports github, gitlab, bitbucket or forgejo. |
No (Default is github) |
server |
The server settings. This includes the domain and the protocol which is http or https
|
No (Default is {"domain": "github.com", "protocol": "https"}) |
workspace |
The workspace name. | Yes (only if the platform is bitbucket) |
'*' means that currently it is not required while we are before v1 release to maintain backward compatibility, but that can change after v1 release.
Note: The include_repos, exclude_repos, include_orgs and exclude_orgs fields accept repository/organization name as well as glob patterns. The patterns supported are those defined by filepath.Match.
Here are some examples you can see for different configurations