From c5ba30d1e21dc044a85dbc7274cbc5883ac1aa02 Mon Sep 17 00:00:00 2001 From: Fitz Date: Tue, 16 Apr 2024 13:15:00 +0100 Subject: [PATCH 1/3] fix project pull webhook args --- pkg/controller/webhooks.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/controller/webhooks.go b/pkg/controller/webhooks.go index 2c63ab12..9c9da20c 100644 --- a/pkg/controller/webhooks.go +++ b/pkg/controller/webhooks.go @@ -170,7 +170,7 @@ func (c *Controller) triggerRefMetricsPull(ctx context.Context, ref schemas.Ref) } if matches { - c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, ref.Project.Name) + c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, ref.Project.Name, ref.Project.Name) log.WithFields(logFields).Info("project ref not currently exported but its configuration matches a wildcard, triggering a pull of the project") } else { log.WithFields(logFields).Debug("project ref not matching wildcard, skipping..") @@ -284,7 +284,7 @@ func (c *Controller) triggerEnvironmentMetricsPull(ctx context.Context, env sche } if matches { - c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, env.ProjectName) + c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, env.ProjectName, env.ProjectName) log.WithFields(logFields).Info("project environment not currently exported but its configuration matches a wildcard, triggering a pull of the project") } else { log.WithFields(logFields).Debug("project ref not matching wildcard, skipping..") From 5cd1e227fcf3b95a282a465d0dddcfa33d186a7b Mon Sep 17 00:00:00 2001 From: Fitz Date: Tue, 16 Apr 2024 16:02:21 +0100 Subject: [PATCH 2/3] pull projects needs to use the correct pull config --- pkg/config/project.go | 1 + pkg/controller/projects.go | 3 ++- pkg/controller/scheduler.go | 4 ++-- pkg/controller/webhooks.go | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/config/project.go b/pkg/config/project.go index c35ca4b0..af34961a 100644 --- a/pkg/config/project.go +++ b/pkg/config/project.go @@ -172,6 +172,7 @@ type Projects []Project // NewProject returns a new project composed with the default parameters. func NewProject(name string) (p Project) { + defaults.MustSet(&p) p.Name = name diff --git a/pkg/controller/projects.go b/pkg/controller/projects.go index e4ec5fbb..ff14fed3 100644 --- a/pkg/controller/projects.go +++ b/pkg/controller/projects.go @@ -10,13 +10,14 @@ import ( ) // PullProject .. -func (c *Controller) PullProject(ctx context.Context, name string) error { +func (c *Controller) PullProject(ctx context.Context, name string, pull config.ProjectPull) error { gp, err := c.Gitlab.GetProject(ctx, name) if err != nil { return err } p := schemas.NewProject(gp.PathWithNamespace) + p.Pull = pull projectExists, err := c.Store.ProjectExists(ctx, p.Key()) if err != nil { diff --git a/pkg/controller/scheduler.go b/pkg/controller/scheduler.go index 0430caef..ac6a0be7 100644 --- a/pkg/controller/scheduler.go +++ b/pkg/controller/scheduler.go @@ -72,10 +72,10 @@ func NewTaskController(ctx context.Context, r *redis.Client, maximumJobsQueueSiz } // TaskHandlerPullProject .. -func (c *Controller) TaskHandlerPullProject(ctx context.Context, name string) error { +func (c *Controller) TaskHandlerPullProject(ctx context.Context, name string, pull config.ProjectPull) error { defer c.unqueueTask(ctx, schemas.TaskTypePullProject, name) - return c.PullProject(ctx, name) + return c.PullProject(ctx, name, pull) } // TaskHandlerPullProjectsFromWildcard .. diff --git a/pkg/controller/webhooks.go b/pkg/controller/webhooks.go index 9c9da20c..252ae8f2 100644 --- a/pkg/controller/webhooks.go +++ b/pkg/controller/webhooks.go @@ -170,7 +170,7 @@ func (c *Controller) triggerRefMetricsPull(ctx context.Context, ref schemas.Ref) } if matches { - c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, ref.Project.Name, ref.Project.Name) + c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, ref.Project.Name, ref.Project.Name, w.Pull) log.WithFields(logFields).Info("project ref not currently exported but its configuration matches a wildcard, triggering a pull of the project") } else { log.WithFields(logFields).Debug("project ref not matching wildcard, skipping..") @@ -284,7 +284,7 @@ func (c *Controller) triggerEnvironmentMetricsPull(ctx context.Context, env sche } if matches { - c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, env.ProjectName, env.ProjectName) + c.ScheduleTask(context.TODO(), schemas.TaskTypePullProject, env.ProjectName, env.ProjectName, w.Pull) log.WithFields(logFields).Info("project environment not currently exported but its configuration matches a wildcard, triggering a pull of the project") } else { log.WithFields(logFields).Debug("project ref not matching wildcard, skipping..") From d012ee098736a122517570f6bd8859188164693b Mon Sep 17 00:00:00 2001 From: Fitz Date: Mon, 29 Apr 2024 10:11:58 +0100 Subject: [PATCH 3/3] fix linting --- pkg/config/project.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/config/project.go b/pkg/config/project.go index af34961a..c35ca4b0 100644 --- a/pkg/config/project.go +++ b/pkg/config/project.go @@ -172,7 +172,6 @@ type Projects []Project // NewProject returns a new project composed with the default parameters. func NewProject(name string) (p Project) { - defaults.MustSet(&p) p.Name = name