Skip to content

Commit 4ef71f1

Browse files
authored
update git-mirror and adjust git time-out (#345)
* update git-mirror and other dependencies * git operations can be delayed by server when rate limited * kill cmd when context cancelled
1 parent 7193852 commit 4ef71f1

File tree

4 files changed

+28
-24
lines changed

4 files changed

+28
-24
lines changed

go.mod

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ require (
1919
github.com/redis/go-redis/v9 v9.7.3
2020
github.com/robfig/cron/v3 v3.0.1
2121
github.com/urfave/cli/v2 v2.27.6
22-
github.com/utilitywarehouse/git-mirror v0.3.2
23-
github.com/utilitywarehouse/go-operational v0.0.0-20250206100814-e7d65e48b364
22+
github.com/utilitywarehouse/git-mirror v0.3.5
23+
github.com/utilitywarehouse/go-operational v0.0.0-20250423084238-c80547bcb12b
2424
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
2525
golang.org/x/oauth2 v0.29.0
2626
gopkg.in/yaml.v2 v2.4.0
27-
k8s.io/api v0.32.3
27+
k8s.io/api v0.33.0
2828
k8s.io/apimachinery v0.34.0-alpha.0
29-
k8s.io/client-go v0.32.3
29+
k8s.io/client-go v0.33.0
3030
sigs.k8s.io/controller-runtime v0.20.4
3131
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20250407161039-6ad5c1dd4418
3232
sigs.k8s.io/controller-tools v0.17.3
@@ -56,7 +56,6 @@ require (
5656
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
5757
github.com/gobuffalo/flect v1.0.3 // indirect
5858
github.com/gogo/protobuf v1.3.2 // indirect
59-
github.com/golang/protobuf v1.5.4 // indirect
6059
github.com/google/btree v1.1.3 // indirect
6160
github.com/google/gnostic-models v0.6.9 // indirect
6261
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
@@ -86,7 +85,7 @@ require (
8685
github.com/pkg/errors v0.9.1 // indirect
8786
github.com/prometheus/client_model v0.6.2 // indirect
8887
github.com/prometheus/common v0.63.0 // indirect
89-
github.com/prometheus/procfs v0.16.0 // indirect
88+
github.com/prometheus/procfs v0.16.1 // indirect
9089
github.com/russross/blackfriday/v2 v2.1.0 // indirect
9190
github.com/ryanuber/go-glob v1.0.0 // indirect
9291
github.com/sasha-s/go-deadlock v0.3.5 // indirect
@@ -112,7 +111,7 @@ require (
112111
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
113112
gopkg.in/inf.v0 v0.9.1 // indirect
114113
gopkg.in/yaml.v3 v3.0.1 // indirect
115-
k8s.io/apiextensions-apiserver v0.32.3 // indirect
114+
k8s.io/apiextensions-apiserver v0.33.0 // indirect
116115
k8s.io/klog/v2 v2.130.1 // indirect
117116
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
118117
k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e // indirect

go.sum

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,6 @@ github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8J
7676
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
7777
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
7878
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
79-
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
80-
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
8179
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
8280
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
8381
github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw=
@@ -179,17 +177,16 @@ github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
179177
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
180178
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
181179
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
180+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
182181
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
183-
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
184-
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
185182
github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
186183
github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
187184
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
188185
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
189186
github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k=
190187
github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18=
191-
github.com/prometheus/procfs v0.16.0 h1:xh6oHhKwnOJKMYiYBDWmkHqQPyiY40sny36Cmx2bbsM=
192-
github.com/prometheus/procfs v0.16.0/go.mod h1:8veyXUu3nGP7oaCxhX6yeaM5u4stL2FeMXnCqhDthZg=
188+
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
189+
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
193190
github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM=
194191
github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA=
195192
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
@@ -215,6 +212,8 @@ github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
215212
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
216213
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
217214
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
215+
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
216+
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
218217
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
219218
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
220219
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
@@ -223,10 +222,10 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
223222
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
224223
github.com/urfave/cli/v2 v2.27.6 h1:VdRdS98FNhKZ8/Az8B7MTyGQmpIr36O1EHybx/LaZ4g=
225224
github.com/urfave/cli/v2 v2.27.6/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ=
226-
github.com/utilitywarehouse/git-mirror v0.3.2 h1:KyLgqAgqcm5xPxLPG/V+pv/kKMZM5U1ArE9AZ3tgNpM=
227-
github.com/utilitywarehouse/git-mirror v0.3.2/go.mod h1:LPsR3F6HQVXFqQFzDw/hsO45fLF//YuRDOuOiHhfROw=
228-
github.com/utilitywarehouse/go-operational v0.0.0-20250206100814-e7d65e48b364 h1:wHz/n1b93X/xZ+HgieOXwTjNRVnjki90TyJFW+lNy8o=
229-
github.com/utilitywarehouse/go-operational v0.0.0-20250206100814-e7d65e48b364/go.mod h1:NVEoiRSDBsLOEk9X+pwskLIPWL5YGmZMaGP0kXnpvhM=
225+
github.com/utilitywarehouse/git-mirror v0.3.5 h1:bVmq3aH6CSe3yRgDdXF6kgMeZE5w/gfhxRnm9FxT7Ns=
226+
github.com/utilitywarehouse/git-mirror v0.3.5/go.mod h1:LPsR3F6HQVXFqQFzDw/hsO45fLF//YuRDOuOiHhfROw=
227+
github.com/utilitywarehouse/go-operational v0.0.0-20250423084238-c80547bcb12b h1:CDmTsF4ZGaktK4PdofcB7Mittb8jhGAWUa5P/Z89F+w=
228+
github.com/utilitywarehouse/go-operational v0.0.0-20250423084238-c80547bcb12b/go.mod h1:NVEoiRSDBsLOEk9X+pwskLIPWL5YGmZMaGP0kXnpvhM=
230229
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
231230
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
232231
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
@@ -320,14 +319,14 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
320319
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
321320
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
322321
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
323-
k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls=
324-
k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k=
325-
k8s.io/apiextensions-apiserver v0.32.3 h1:4D8vy+9GWerlErCwVIbcQjsWunF9SUGNu7O7hiQTyPY=
326-
k8s.io/apiextensions-apiserver v0.32.3/go.mod h1:8YwcvVRMVzw0r1Stc7XfGAzB/SIVLunqApySV5V7Dss=
322+
k8s.io/api v0.33.0 h1:yTgZVn1XEe6opVpP1FylmNrIFWuDqe2H0V8CT5gxfIU=
323+
k8s.io/api v0.33.0/go.mod h1:CTO61ECK/KU7haa3qq8sarQ0biLq2ju405IZAd9zsiM=
324+
k8s.io/apiextensions-apiserver v0.33.0 h1:d2qpYL7Mngbsc1taA4IjJPRJ9ilnsXIrndH+r9IimOs=
325+
k8s.io/apiextensions-apiserver v0.33.0/go.mod h1:VeJ8u9dEEN+tbETo+lFkwaaZPg6uFKLGj5vyNEwwSzc=
327326
k8s.io/apimachinery v0.34.0-alpha.0 h1:arymqm+uCpPEAVWBCvNF+yq01AJzsoUeUd2DYpoHuzc=
328327
k8s.io/apimachinery v0.34.0-alpha.0/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
329-
k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU=
330-
k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY=
328+
k8s.io/client-go v0.33.0 h1:UASR0sAYVUzs2kYuKn/ZakZlcs2bEHaizrrHUZg0G98=
329+
k8s.io/client-go v0.33.0/go.mod h1:kGkd+l/gNGg8GYWAPr0xF1rRKvVWvzh9vmZAMXtaKOg=
331330
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
332331
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
333332
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4=

main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,8 @@ func applyGitDefaults(c *cli.Context, mirrorConf mirror.RepoPoolConfig) mirror.R
498498
}
499499

500500
if mirrorConf.Defaults.MirrorTimeout == 0 {
501-
mirrorConf.Defaults.MirrorTimeout = 2 * time.Minute
501+
// git operations can be delayed by server when rate limited
502+
mirrorConf.Defaults.MirrorTimeout = 4 * time.Minute
502503
}
503504

504505
if mirrorConf.Defaults.Auth.SSHKeyPath == "" {

runner/strongbox.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"os/exec"
1111
"path/filepath"
1212
"strings"
13+
"time"
1314

1415
"filippo.io/age"
1516
"filippo.io/age/armor"
@@ -72,6 +73,8 @@ func setupGitConfigForSB(ctx context.Context, cwd string, runEnv []string) error
7273
s := exec.CommandContext(ctx, "strongbox", "-git-config")
7374
s.Dir = cwd
7475
s.Env = runEnv
76+
// force kill cmd & child process 5 seconds after sending it sigterm (when ctx is cancelled/timed out)
77+
s.WaitDelay = 5 * time.Second
7578

7679
stderr, err := s.CombinedOutput()
7780
if err != nil {
@@ -87,6 +90,8 @@ func runStrongboxDecryption(ctx context.Context, cwd string, runEnv []string) er
8790
s := exec.CommandContext(ctx, "strongbox", "-decrypt", "-recursive", cwd)
8891
s.Dir = cwd
8992
s.Env = runEnv
93+
// force kill cmd & child process 5 seconds after sending it sigterm (when ctx is cancelled/timed out)
94+
s.WaitDelay = 5 * time.Second
9095

9196
stderr, err := s.CombinedOutput()
9297
if err != nil {

0 commit comments

Comments
 (0)