Stitch any CI into Tangled

knot: authorize pipeline triggers against persisted spindle state #48

Merged mitchellh.com
targeting main
Merged opened by and assigned to mitchellh.com
targeting main

Previously knot.go executed every sh.tangled.pipeline event the moment it arrived, ignoring the spindle_members and repos tables that jetstream.go has been mirroring from the AT Proto firehose.

The knot consumer now consults store.AuthorizePipelineActor before dispatching a trigger. The check has two gates: the triggers repo must have published a sh.tangled.repo record naming us as its spindle on the knot the event arrived from, and the publisher of that repo record must be either the spindle owner or a subject the owner vouched for via sh.tangled.spindle.member.

This pull request has no versions submitted yet.