Commit Graph
70 Commits
Author SHA1 Message Date
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
Andreas Wachter 6ffcda16aa add an include parameter 2021-12-13 11:53:20 +01:00
Andreas Wachter dfe400ecbb Added logger functionality 2021-12-13 08:15:48 +01:00
Colin Dean 2c8c6bcdd6 Adds some basic tests for cron spec validation 2021-12-12 23:02:31 -05:00
Colin Dean 87523e7213 Implements config validation into Conf functions
I strangely experienced a crash while saving this initial that corrupted
my local git index and lost the series of commits that brought me to
this state. This feels cleaner than having the functions floating in
main.go but this is the first substantial Go code I've written in
~5 years and I have no idea what I'm doing!
2021-12-12 22:44:40 -05:00
Andreas Wachter e8e33da6a6 implemented a cron mod 2021-12-12 22:12:47 +01:00
Andreas Wachter 5015f4fb73 switched cvs functions to modules 2021-12-12 19:23:55 +01:00