Commit Graph
56 Commits
Author SHA1 Message Date
Gary Thomas 226f648c64 Add support for using azure clientid and secret credentials 2025-10-29 21:25:07 +00:00
Gary Thomas 57bbe4093e Add support for using azure cli credential 2025-10-27 21:43:37 +00:00
Gary Thomas cfd1b6ea04 Implement azure blob destination with SAS url 2025-10-26 22:04:44 +00:00
jj 5464f6083d github: bump go-github to v74 2025-08-11 22:41:23 +00:00
Andreas Wachter 17f7c6cf05 remove defaultbranch, as it is not used anywhere 2025-07-24 08:00:21 +02:00
Andreas Wachter 3f831c33b3 Revert "upgraded go-git to v6 (#340)"
This reverts commit 6f2bfc2419.
2025-07-24 06:55:34 +02:00
Andreas Wachter 6f2bfc2419 upgraded go-git to v6 (#340) 2025-07-03 09:06:48 +02:00
yubazhandy.bazhenov 97c26eef7b add backup creation date directory in s3 (#320)
* add backup creation date directory in s3

* fix var name

---------

Co-authored-by: y.bazhenov <y.bazhenov@arenadata.io>
2025-04-29 18:40:04 +02:00
Aleksey @soar Smyrnov eadd2f7347 feat(local): Add mirror mode (#308)
* feat(local): Add mirror mode

* fix: Add `.git` to the mirror repos too
2025-04-05 20:30:31 +02:00
Andreas Wachter 377378ce3a add Apprise (#309)
* added apprise

* fixed yaml type, check for / at the end of url

* return error message

* adapted example config and gickup_spec

* re-format spec

* Revert "re-format spec"

This reverts commit b938a0587e.

* fix spec
2025-04-02 11:29:40 +02:00
Sjors Holtrop 00d278094a add support for specifying storageclass for S3 dest (#307) 2025-04-01 08:13:42 +02:00
Sjors Holtrop 6be0214ee3 add zip support for s3 destination (#304) 2025-03-25 19:16:01 +01:00
sjorsholtrop-ritense 57a38a4d8f Fix bitbucket source, add temp token support to s3 dest (#302) 2025-03-23 15:05:12 +01:00
Andreas Wachter dea1d8cac2 added cloning of gists (#274) 2024-09-28 15:48:20 +02:00
Andreas Wachter 45056fce58 don't use user for token on gogs (#268) 2024-09-02 16:11:52 +02:00
Andreas Wachter 3cd914a4e1 Add s3 (#259)
* added s3 add destination

* read environment variables for s3 buckets

* adapted example config

* added debug message

* added s3 add destination

* read environment variables for s3 buckets

* adapted example config

* added debug message
2024-08-26 13:46:16 +02:00
Andreas Wachter 6a293dd625 implemented mirror using gickup and not giteas mirror function (#225)
* implemented mirror using gickup and not giteas mirror function

* added "mirror" to gogs

* push to gogs

* mirror is now a struct

* move deprecation notice, no need to spam
2024-04-15 07:10:49 +02:00
Andreas Wachter 52a834b42b backup issues from github (#185)
* backup issues from github

* gitlab issues

* added gitea

* added gogs

* added onedev

* updated examples

* added more documentation
2023-12-01 07:58:53 +01:00
Andreas Wachter f03be6607f Gitea lfs (#177)
* variable mirror interval

* added LFS switch for gitea
2023-10-04 08:09:42 +02:00
Andreas Wachter 604d18d4ab added interval (#174) 2023-10-03 08:25:40 +02:00
Andreas Wachter 082821bfb9 added force push (#172) 2023-09-29 17:10:06 +02:00
Andreas Wachter 77024fb0a5 implemented backup to organization (#169)
* implemented backup to organization

* go mod tidy

* update lint
2023-09-29 12:26:03 +02:00
Andreas Wachter f468f48ba1 mirror functions (#164)
* added github mirror functionality

* create temporary directory to clone into

* added onedev as destination

* added sourcehut

* add new examples
2023-08-15 18:13:21 +02:00
Andreas Wachter beae85c182 implemented git lfs (#160)
* implemented git lfs

* removed arm/v6 from docker builds

* add lfs to example
2023-07-18 10:56:43 +02:00
Andreas Wachter 64a67254e6 implemented exclude forks (#155) 2023-06-04 08:30:02 +02:00
Andreas Wachter b2da20028e added gotify and ntfy to notify (#147) 2023-05-02 16:40:56 +02:00
Seow Alex d622367738 Backup description and visibility (#146) 2023-04-23 21:11:12 +02:00
Andreas Wachter 8a86bc4904 backup contributed repos from github (#141) 2023-02-28 19:11:36 +01:00
Andreas Wachter 9a947e7cb4 fix tokens 2023-02-20 16:58:22 +01:00
Andreas Wachter 1eb19f16a0 token can be environment variable (#138) 2023-02-20 16:43:03 +01:00
Andreas Wachter 3d125133ef implement filters for github (#137)
* implement filters for github

* add filter to exclude archived repositories

* add filter for gitea/forgejo

* gogs filter option

* fix error log

* include gitlab filters

* fix logging

* parse duration

* filters for onedev and sourcehut

* adapted conf.example.yml
2023-02-20 16:05:01 +01:00
Andreas Wachter 12d496dba7 added option to clone the repository as bare (#131) 2023-01-11 11:00:48 +01:00
Andreas Wachter 6ddf340744 added possibility to add date to path (#130)
* added possibility to add date to path

* adds zip functionality

* added keep parameter

* cleanup

* keep parameter creates files with the timestamp in repo name directory

* fixed clone with keep without structured=true

* remove search
2023-01-08 20:22:07 +01:00
Andreas Wachter 2ec9d55f82 added visibility, new create org options and wiki support (#128)
* added visibility, new create org options and wiki support

* added gogs

* log error instead of fatal
2022-12-09 15:45:13 +01:00
Andreas Wachter fa2dfd4434 Sourcehut (#123)
* added createorg to gogs

* added sourcehut capabilities

* fix variable names

* added sourcehut to readme
2022-11-16 08:09:33 +01:00
Andreas Wachter 8a84f57965 create orgs for gitea with 'createorg: true' 2022-10-30 22:42:23 +01:00
Andreas Wachter 5dbb12fb8a added onedev to source count 2022-10-18 09:53:00 +02:00
Andreas Wachter 6461754630 added onedev functionality (#111)
* added onedev functionality

* go mod tidy
2022-08-11 21:31:03 +02:00
Andreas Wachter 3ae5a3a463 backup any repo (#110)
* added any module

* update dependencies

* clone local repos too

* fixed the separator and adjusted example config and README.md

* go mod tidy

* ran gofumpt and goimports

* cleaned up a bit and implemented timeformat as environment variable
2022-07-18 13:59:20 +02:00
510e234e52 feat: Support multiple heartbeat URLs (#109)
* feat: add heartbeat metrics

* feat: Support multiple heartbeat URLs

#100 introduced heartbeat support but only supported one URL. This PR was closed, however I've re-introduced this feature and added support for multiple heartbeat URLs as discussed in the #100 discussion.

This also resolves #108 which is a feature request for the heartbeat feature.

* fix: When sending the heartbeat fails, log an error but don't crash the program

This prevents problems with external services from causing the program to quit.

Co-authored-by: Matthew Toohey <contact@mtoohey.com>
Co-authored-by: Jordan Crawford <>
2022-05-17 13:12:07 +02:00
Tom Moulard 646b792ac1 chore: add linting (#101)
* chore: adding makefile

* chore: adding lint

* chore: update package name

* lint: run with fix

* chore: update main.go

* chore: update main_test.go

* chore: update types.go

* chore: update logger.go

* chore: update types_test.go

* chore: update prometheus.go

* chore: update local.go

* chore: update gitlab.go

* chore: update gogs.go

* chore: update bitbucket.go

* chore: update gitea.go

* chore: update github.go

* chore: update main*.go

* chore: go mod tidy

* chore: update action to have a correct working-directory
2022-03-20 11:25:11 +01:00
Matthew Toohey 545c9e3f73 fix: stat github wiki remotes to verify their existence (#98)
* fix: stat github wiki remotes to verify their existence

* fix: also check gitea wiki remotes
2022-03-02 22:21:23 +01:00
Andreas Wachter 9e4e9e1d6a #94 remove new lines in token files. 2022-02-24 21:22:10 +01:00
Matthew Toohey b0cd28c761 feat: backup starred repos (#89)
* feat: github starred support

* feat: gitea starred support

* fix: increment gitlab request pages properly

* feat: gitlab starred support
2022-02-22 07:42:05 +01:00
Andreas Wachter df6767fc53 implemented includeorgs parameter 2022-01-27 18:36:41 +01:00
Andreas Wachter d52d7cc8be fixed the prometheus dependency for cron 2022-01-03 07:07:10 +01:00
Andreas Wachter 1d4693003a added wiki support to all cvs (except bitbucket) (#76)
* added wiki support to all cvs (except bitbucket)

* added wiki parameter to the example config
2021-12-29 18:27:19 +01:00
Colin DeanandAndreas Wachter ebce0def10 Allows reading a token from a file (#73)
Fixes #69

Co-authored-by: Andreas Wachter <buddyspencer@protonmail.com>
2021-12-29 07:49:02 +01:00
Colin Dean d98ccdb454 Adds Prometheus metrics when in scheduled mode (#62)
* WIP: Adds InfluxDB2 metrics

* Adds basic Prometheus metrics

It's much easier to implement so I'm switching to focusing on it for
now.

* Add some more counters and gauges

Use some labeled counters for backup destinations

* Extract methods for local repo clone and update

It was a little difficult to understand what was going where, esp. with
Go's verbose logging, so I extracted methods where appropriate. This
should also ease some testing concerns down the road.

* Fixes missing y in yaml

* Refactor next run logging

* Add run start and end log messaging

* Adds prom histogram for job duration

* Adds a prom gauge for number of repos discovered

* Switch prom job duration to a summary

I'm really not sure if it should be a summary or a histogram, but
reading about both, it seems like it would be more valuable with
quantiles and not buckets, so summary it is.

* Drop InfluxDB integration for now

We can revert this if we decide to implement InfluxDB after all.
@cooperspencer prefers Prometheus and frankly it's a lot easier to set
up so I'll use it, too, since I already have it running in my
environment anyways!
2021-12-29 07:31:19 +01:00
Andreas Wachter 93b7c8fad6 added structured checkout mode (#44)
* added structured checkout mode

* path understand now ~
2021-12-16 17:22:44 +01:00