diff --git a/store.go b/store.go index 132eaa0..2f0bf02 100644 --- a/store.go +++ b/store.go @@ -264,8 +264,8 @@ func (s *store) AuthorizePipelineActor( var n int if err := s.db.QueryRowContext(ctx, `SELECT COUNT(*) FROM repos - WHERE did = ? AND name = ? AND knot = ? AND spindle = ?`, - repoOwnerDID, repoName, knot, hostname, + WHERE did = ? AND (name = ? OR rkey = ?) AND knot = ? AND spindle = ?`, + repoOwnerDID, repoName, repoName, knot, hostname, ).Scan(&n); err != nil { return false, "", fmt.Errorf("count repo claim: %w", err) } diff --git a/store_test.go b/store_test.go index fdb0b67..faeb103 100644 --- a/store_test.go +++ b/store_test.go @@ -521,6 +521,20 @@ func TestAuthorizePipelineActor(t *testing.T) { t.Fatalf("got ok=%v err=%v; want ok=true", ok, err) } }) + + t.Run("repo record key matches trigger repo when name is empty", func(t *testing.T) { + s := newTestStore(t) + const rkeyName = "woodyfm-site" + if err := s.UpsertRepo(ctx, owner, rkeyName, + knot, "", hostname, "", "t"); err != nil { + t.Fatal(err) + } + ok, _, err := s.AuthorizePipelineActor(ctx, + hostname, knot, owner, owner, rkeyName) + if err != nil || !ok { + t.Fatalf("got ok=%v err=%v; want ok=true", ok, err) + } + }) } // countRows is a small SELECT COUNT(*) helper used by lifecycle tests