currently, knot's JetstreamClient only listens for known DIDs which are:
- knot owner
- new knot members added by knot owner
- new collaborators for repos using this knot
In most cases, this is fine and efficient because knot member is basically an invite-only relationship.
knot owner (source, root knot member)
|
v
repo owners (invited knot members)
|
v
repo collaborators (known DIDs mentioned by existing knot members)
The problem occurs when we ingesting sh.tangled.repo.pull records.1
If anonymous user creates a PR, that PR submission won't trigger the pipeline.
It's pretty hard to solve this with jetstream, but tap can help this kind of partial network backfill.
Also related: #335
this is intentional, the way pipelines will work for non-collaborators (in my head) is like so:
i don't think github-style approve-once-for-this-PR is a safe model (the PR could evolve to exfiltrate secrets). executions of pipelines on forks should also warn when the patch is modifying
.tangled/workflowsand request that the user triple-check the diff before execution.