From ba68b446c0d187b94b4fcc11adb5a0278ff8b0fb Mon Sep 17 00:00:00 2001 From: qwerty287 <80460567+qwerty287@users.noreply.github.com> Date: Sun, 5 Jan 2025 13:45:53 +0200 Subject: [PATCH 1/2] Fix addon `nil` values (#4666) --- server/forge/addon/args.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/forge/addon/args.go b/server/forge/addon/args.go index 9760124a3..a8677c6b1 100644 --- a/server/forge/addon/args.go +++ b/server/forge/addon/args.go @@ -110,6 +110,9 @@ type modelUser struct { } func (m *modelUser) asModel() *model.User { + if m == nil { + return nil + } m.User.ForgeRemoteID = m.ForgeRemoteID m.User.AccessToken = m.Token m.User.RefreshToken = m.Secret @@ -119,6 +122,9 @@ func (m *modelUser) asModel() *model.User { } func modelUserFromModel(u *model.User) *modelUser { + if u == nil { + return nil + } return &modelUser{ User: u, ForgeRemoteID: u.ForgeRemoteID, @@ -138,6 +144,9 @@ type modelRepo struct { } func (m *modelRepo) asModel() *model.Repo { + if m == nil { + return nil + } m.Repo.UserID = m.UserID m.Repo.Hash = m.Hash m.Repo.Perm = m.Perm @@ -145,6 +154,9 @@ func (m *modelRepo) asModel() *model.Repo { } func modelRepoFromModel(r *model.Repo) *modelRepo { + if r == nil { + return nil + } return &modelRepo{ Repo: r, UserID: r.UserID, From 7d64138855a1994a59ac0cb193f1c676a99be535 Mon Sep 17 00:00:00 2001 From: qwerty287 <80460567+qwerty287@users.noreply.github.com> Date: Sun, 5 Jan 2025 13:46:08 +0200 Subject: [PATCH 2/2] Do not start metrics collector if metrics are disabled (#4667) --- cmd/server/server.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/server/server.go b/cmd/server/server.go index 420f0c500..b6ab3c3b7 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -111,8 +111,6 @@ func run(ctx context.Context, c *cli.Command) error { log.Info().Msgf("starting Woodpecker server with version '%s'", version.String()) - startMetricsCollector(ctx, _store) - serviceWaitingGroup.Go(func() error { log.Info().Msg("starting cron service ...") if err := cron.Run(ctx, _store); err != nil { @@ -260,6 +258,8 @@ func run(ctx context.Context, c *cli.Command) error { } if metricsServerAddr := c.String("metrics-server-addr"); metricsServerAddr != "" { + startMetricsCollector(ctx, _store) + serviceWaitingGroup.Go(func() error { metricsRouter := gin.New() metricsRouter.GET("/metrics", gin.WrapH(prometheus_http.Handler()))