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

64 Commits

Author SHA1 Message Date
Andreas Wachter
0e76cf9481
enable push to gitlab (#233) 2024-04-16 13:34:05 +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
61d5070f50
fixed some backup path issues and reload issues (#220)
* fixed some backup path issues and reload issues

* removed all chdirs
2024-04-04 07:31:28 +02:00
Andreas Wachter
54feabae23
check if config is null (#223) 2024-04-03 16:32:55 +02:00
Andreas Wachter
dca5a55a8a
add cron to all files if necessary (#211) 2024-02-27 07:01:04 +01:00
Andreas Wachter
8de9d0f16f
added git lfs for mirrors (#204)
* added git lfs for mirrors

* added openssh-client to ubuntu image

* working push on all branches

* fetch after clone and before pull to get all branches

* checkout all branches is not needed

* fix fetch
2024-02-19 08:42:35 +01:00
Andreas Wachter
76bcf763aa
Issue 200 (#203)
* force fetch

* do not fetch

* log push

* log clone too
2024-01-29 12:31:36 +01:00
Andreas Wachter
acbb331450
get gitlab user (#201) 2024-01-25 07:40:36 +01:00
Andreas Wachter
d1568d4545
Reload config (#199)
* reload on config changes

* handle prometheus metrics

* compare config structs

* create seperate object for logging
2024-01-09 14:43:51 +01:00
Andreas Wachter
a70f9c939f
Revert "Reload config (#196)" (#198)
This reverts commit 61cac5dda6803d22f4baa0ab1316f3e599283d98.
2024-01-09 14:33:28 +01:00
Andreas Wachter
61cac5dda6
Reload config (#196)
* reload on config changes

* handle prometheus metrics

* compare config structs
2024-01-04 12:54:12 +01:00
Andreas Wachter
fecb4040e6
added sublogger to gitea (#178)
* added sublogger to gitea

* implemented the rest of the subloggers
2023-10-04 10:55:24 +02:00
Andreas Wachter
f8ad43bb29
Multiple branches (#165)
* added github mirror functionality

* create temporary directory to clone into

* added onedev as destination

* added sourcehut

* add new examples

* added push of all branches, autocreation of repos on sourcehut

* push everything

* sourcehut visibility fix
2023-08-16 14:04:59 +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
2e75d80540
Push notification not on all runs (#152)
* added gotify and ntfy to notify

* added new example config

* use push config in all configs
2023-05-16 09:39:46 +02:00
Andreas Wachter
b2da20028e
added gotify and ntfy to notify (#147) 2023-05-02 16:40:56 +02:00
Andreas Wachter
3009366b05 set warning if no destinations are configured 2023-03-03 07:26:35 +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
f61574bf9c
improved prometheus metrics (#134)
* improved prometheus metrics

* change RepoTime to gauge

* fix gitea, only set metrics if ran
2023-02-10 06:07:11 +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
527e740ed7
check if config is nil (#118) 2022-10-18 10:34:11 +02:00
Andreas Wachter
041a5a88b7
handle multiple configs (#114)
* handle multiple configs

* upgrade golangci_lint_version

* SnakeCase and replaces ioutil with os
2022-10-03 19:20:19 +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
Jordan Crawford
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
Andreas Wachter
70ddbc829c updated dependencies 2022-02-22 08:15:54 +01:00
Andreas Wachter
d52d7cc8be fixed the prometheus dependency for cron 2022-01-03 07:07:10 +01:00
Andreas Wachter
9e175cf41b duration as string 2021-12-30 16:00:19 +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
Colin Dean
b471943f19
Set log level based on --quiet and --silent (#72)
* Adjusts --quiet to output only warn+ log messages

Fixes #51

* Adds a --silent option to suppress all log output
2021-12-29 07:29:30 +01:00
Andreas Wachter
19306748ac implemented quiet into main 2021-12-25 16:37:33 +01:00
Colin Dean
c05e8c9329
Extracts tilde-in-home check and tests it (#45)
* Extract user home directory detection to a function

* Extracts tilde-in-path substitution and tests it
2021-12-17 06:37:43 +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
5befa164c5 improved gitlab, gitea and gogs organization/group clones 2021-12-14 08:45:13 +01:00
Andreas Wachter
a4580cd4ea set version to unknown 2021-12-13 12:01:46 +01:00
Andreas Wachter
5a434573a8 switched from panic to fatal 2021-12-13 08:39:38 +01:00
Andreas Wachter
dfe400ecbb Added logger functionality 2021-12-13 08:15:48 +01: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
316364b7e7 refactor 2021-12-12 21:49:20 +01:00
Andreas Wachter
5015f4fb73 switched cvs functions to modules 2021-12-12 19:23:55 +01:00
Andreas Wachter
0ea1ba5036 updated version 2021-12-12 13:48:00 +01:00
Andreas Wachter
58577ea619 force pull for gitea and gogs 2021-12-12 13:31:17 +01:00
Andreas Wachter
4d1b9006a3 fixed the nested backup issue 2021-12-12 12:37:27 +01:00
Andreas Wachter
df07675b5e added --dryrun 2021-12-09 19:24:22 +01:00
Andreas Wachter
ceecb85a71 added version, added exclude organizations 2021-12-03 21:34:46 +01:00
Andreas Wachter
3508c7bc64 upgraded libraries 2021-12-03 10:17:33 +01:00
Andreas Wachter
5d6d075703 start at 1, so we don't have a duplicate of repos 2021-12-03 08:57:04 +01:00