diff --git a/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html b/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html
index 964dc98f..dd2c7869 100644
--- a/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html
+++ b/appview/pages/templates/repo/pulls/fragments/summarizedPullHeader.html
@@ -17,7 +17,7 @@
{{ $latestRound := .LastRoundNumber }}
{{ $lastSubmission := index .Submissions $latestRound }}
{{ $commentCount := len $lastSubmission.Comments }}
- {{ if $pipeline }}
+ {{ if and $pipeline $pipeline.Id }}
{{ template "repo/pipelines/fragments/pipelineSymbol" $pipeline }}
diff --git a/appview/state/knotstream.go b/appview/state/knotstream.go
index e5b490c0..9616a49e 100644
--- a/appview/state/knotstream.go
+++ b/appview/state/knotstream.go
@@ -140,6 +140,22 @@ func ingestPipeline(d *db.DB, source ec.Source, msg ec.Message) error {
return fmt.Errorf("empty repo: nsid %s, rkey %s", msg.Nsid, msg.Rkey)
}
+ // does this repo have a spindle configured?
+ repos, err := db.GetRepos(
+ d,
+ db.FilterEq("did", record.TriggerMetadata.Repo.Did),
+ db.FilterEq("name", record.TriggerMetadata.Repo.Repo),
+ )
+ if err != nil {
+ return fmt.Errorf("failed to look for repo in DB: nsid %s, rkey %s, %w", msg.Nsid, msg.Rkey, err)
+ }
+ if len(repos) != 1 {
+ return fmt.Errorf("incorrect number of repos returned: %d (expected 1)", len(repos))
+ }
+ if repos[0].Spindle == "" {
+ return fmt.Errorf("repo does not have a spindle configured yet: nsid %s, rkey %s", msg.Nsid, msg.Rkey)
+ }
+
// trigger info
var trigger db.Trigger
var sha string