1
1
mirror of https://github.com/cooperspencer/gickup synced 2024-10-18 13:48:07 +02:00
gickup/conf.example.yml

189 lines
8.1 KiB
YAML

source:
github:
- token: some-token
# alternatively, specify token in a file, relative to current working directory when executed.
# token_file: token.txt
user: some-user # the user you want to clone the repositories from.
# if you want to get everything from your user, leave out the user parameter and just use the token.
# for the clone process, either use:
# - username + password
# - sshkey
# - token
username: your-user # user is used to clone the repo with
password: your-password
ssh: true # can be true or false
sshkey: /path/to/key # if empty, it uses your home directories' .ssh/id_rsa
exclude: # this excludes the repos "foo" and "bar"
- foo
- bar
include: # this includes the repo "foobar"
- foobar
excludeorgs: # this excludes repos from the organizations "foo" and "bar"
- foo
- bar
includeorgs: # this includes repos from the organizations "foo1" and "bar1"
- foo1
- bar1
wiki: true # includes wiki too
starred: true # includes the user's starred repositories too
gitea:
- token: some-token
# token_file: token.txt # alternatively, specify token in a file
user: some-user # the user you want to clone the repositories from.
url: http(s)://url-to-gitea # if empty, it uses https://gitea.com
# if you want to get everything from your user, leave out the user parameter and just use the token.
# for the clone process, either use:
# - username + password
# - sshkey
# - token
username: your-user # user is used to clone the repo with
password: your-password
ssh: true # can be true or false
sshkey: /path/to/key # if empty, it uses your home directories' .ssh/id_rsa
exclude: # this excludes the repos "foo" and "bar"
- foo
- bar
include: # this includes the repo "foobar"
- foobar
excludeorgs: # this excludes repos from the organizations "foo" and "bar"
- foo
- bar
includeorgs: # this includes repos from the organizations "foo1" and "bar1"
- foo1
- bar1
wiki: true # includes wiki too
starred: true # includes the user's starred repositories too
gogs:
- token: some-token
# token_file: token.txt # alternatively, specify token in a file
user: some-user # the user you want to clone the repositories from.
url: http(s)://url-to-gogs # no default value
# if you want to get everything from your user, leave out the user parameter and just use the token.
# for the clone process, either use:
# - username + password
# - sshkey
# - token
username: your-user # user is used to clone the repo with
password: your-password
ssh: true # can be true or false
sshkey: /path/to/key # if empty, it uses your home directories' .ssh/id_rsa
exclude: # this excludes the repos "foo" and "bar"
- foo
- bar
include: # this includes the repo "foobar"
- foobar
excludeorgs: # this excludes repos from the organizations "foo" and "bar"
- foo
- bar
includeorgs: # this includes repos from the organizations "foo1" and "bar1"
- foo1
- bar1
wiki: true # includes wiki too
gitlab:
- token: some-token
# token_file: token.txt # alternatively, specify token in a file
user: some-user # the user you want to clone the repositories from.
url: http(s)://url-to-gitlab # if empty, it uses https://gitlab.com
# if you want to get everything from your user, leave out the user parameter and just use the token.
# for the clone process, either use:
# - username + password
# - sshkey
# - token
username: your-user # user is used to clone the repo with
password: your-password
ssh: true # can be true or false
sshkey: /path/to/key # if empty, it uses your home directories' .ssh/id_rsa
exclude: # this excludes the repos "foo" and "bar"
- foo
- bar
include: # this includes the repo "foobar"
- foobar
excludeorgs: # this excludes repos from the organizations "foo" and "bar"
- foo
- bar
includeorgs: # this includes repos from the organizations "foo1" and "bar1"
- foo1
- bar1
wiki: true # includes wiki too
starred: true # includes the user's starred repositories too
bitbucket:
- user: some-user # the user you want to clone the repositories from.
url: http(s)://url-to-bitbucket # if empty, it uses https://bitbucket.org
username: your-user # user is used to clone the repo with
password: your-password
ssh: true # can be true or false
sshkey: /path/to/key # if empty, it uses your home directories' .ssh/id_rsa
exclude: # this excludes the repos foo and bar
- foo
- bar
include:
- foobar
onedev:
- user: some-user # the user you want to clone the repositories from.
url: http(s)://url-to-onedev # if empty, it uses https://bitbucket.org
username: your-user # user is used to clone the repo with
password: your-password
ssh: true # can be true or false
sshkey: /path/to/key # if empty, it uses your home directories' .ssh/id_rsa
exclude: # this excludes the repos foo and bar
- foo
- bar
include:
- foobar
any:
- url: url-to-any-repo # can be https, http or ssh
username: your-user # user is used to clone the repo with
password: your-password
ssh: true # can be true or false
sshkey: /path/to/key # if empty, it uses your home directories' .ssh/id_rsa
- url: can-also-be-a-local-path-to-a-bare-repo
destination:
gitea:
- token: some-token
# token_file: token.txt # alternatively, specify token in a file
user: some-nome # can be a user or an organization, it must exist on the system
url: http(s)://url-to-gitea
gogs:
- token: some-token
# token_file: token.txt # alternatively, specify token in a file
user: some-nome # can be a user or an organization, it must exist on the system
url: http(s)://url-to-gogs
gitlab:
- token: some-token
# token_file: token.txt # alternatively, specify token in a file
url: http(s)://url-to-gitlab
local:
# Export this path from Docker with a volume to make it accessible and more permanent.
- path: /some/path/gickup
structured: true # checks repos out like hostersite/user|organization/repo
cron: 0 22 * * * # optional - when cron is not provided, the program runs once and exits.
# Otherwise, it runs according to the cron schedule.
# See timezone commentary in docker-compose.yml for making sure this container runs
# in the timezone you want.
# For more information on crontab or testing: https://crontab.guru/
log: # optional
timeformat: 2006-01-02 15:04:05 # you can use a custom time format, use https://yourbasic.org/golang/format-parse-string-time-date-example/ to check how date formats work in go
# or set it as environment variable GICKUP_TIME_FORMAT
file-logging: # optional
dir: log # directory to log into
file: gickup.log # file to log into
maxage: 7 # keep logs for 7 days
metrics:
prometheus: # optional
endpoint: /metrics
listen_addr: ":6178" # default listens on port 6178 on all IPs.
heartbeat: # optional - upon successful backup, makes a GET http request to one or more URLs. This is useful for use with monitoring services such as healthchecks.io or deadmanssnitch.com
urls:
- http(s)://url-to-make-request-to
- http(s)://another-url-to-make-request-to
---
# you can define separate source and destination pairs,
# like "mirror all repos from github to gitea but keep gitlab repos up-to-date in ~/backup"
# if cron is defined in the first config, this cron interval will be used for all the other confgurations, except it has one of its own.
# if cron is not enabled for the first config, cron will not run for any other configuration
# metrics configuration is always used from the first configuration