From 3d33f3da344eba9add4e2239667bc1e275bab8a6 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Tue, 17 Jun 2025 07:29:44 +0000 Subject: [PATCH] spindle: add repo filter Signed-off-by: oppiliappan --- spindle/server.go | 18 ++++++++++++++++++ spindle/db/repos.go | 20 ++++++++++++++++++++ 2 file(s) changed, 38 insertion(s)(+), 0 deletion(s)(-) diff --git a/spindle/server.go b/spindle/server.go --- a/spindle/server.go +++ b/spindle/server.go @@ -159,6 +159,24 @@ return err } + if pipeline.TriggerMetadata == nil { + return fmt.Errorf("no trigger metadata found") + } + + if pipeline.TriggerMetadata.Repo == nil { + return fmt.Errorf("no repo data found") + } + + // filter by repos + _, err = s.db.GetRepo( + pipeline.TriggerMetadata.Repo.Knot, + pipeline.TriggerMetadata.Repo.Did, + pipeline.TriggerMetadata.Repo.Repo, + ) + if err != nil { + return err + } + pipelineId := models.PipelineId{ Knot: src.Knot, Rkey: msg.Rkey, diff --git a/spindle/db/repos.go b/spindle/db/repos.go --- a/spindle/db/repos.go +++ b/spindle/db/repos.go @@ -1,5 +1,11 @@ package db +type Repo struct { + Knot string + Owner string + Name string +} + func (d *DB) AddRepo(knot, owner, name string) error { _, err := d.Exec(`insert or ignore into repos (knot, owner, name) values (?, ?, ?)`, knot, owner, name) return err @@ -25,4 +31,18 @@ } return knots, nil +} + +func (d *DB) GetRepo(knot, owner, name string) (*Repo, error) { + var repo Repo + + query := "select knot, owner, name from repos where knot = ? and owner = ? and name = ?" + err := d.DB.QueryRow(query, knot, owner, name). + Scan(&repo.Knot, &repo.Owner, &repo.Name) + + if err != nil { + return nil, err + } + + return &repo, nil } -- tangled.sh