forked from tangled.org/core
this repo has no description

spindle: add repo filter

Signed-off-by: oppiliappan <me@oppi.li>

oppi.li 3d33f3da 2a45e84f

verified
Changed files
+38
spindle
+20
spindle/db/repos.go
···
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
···
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
+
}
+18
spindle/server.go
···
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,