ci.yml is active and triggers on pull_request, but it has never run on a pull request from a fork. Every external contribution to this repository has merged, or is waiting to merge, with no test job, no schema validation and no append-only check.
Evidence
The last twelve ci.yml runs, by event and branch:
| Event |
Branch |
Result |
| push |
main |
success |
| pull_request |
docs/project-sponsor-roles |
success |
| pull_request |
security/bind-producer-ident |
success |
| pull_request |
fix/publish-anchor-doc-urls |
success |
| pull_request |
fix/pypi-metadata-public-url |
success |
| pull_request |
agent/document-digest-contex |
success |
Every pull_request run is a branch on this repository. There is not one fork-PR run in the list.
Check-runs by head SHA, comparing same-repo PRs against fork PRs:
| PR |
Author / head |
Checks |
| #45 |
agentrust-io/trace-registry |
validate=success, gate=success |
| #44 |
agentrust-io/trace-registry |
validate=success, gate=success |
| #47 |
action-state-group/trace-registry (fork) |
gate only |
| #49 |
fork |
gate only |
| #51 |
fork |
gate only |
There are also zero runs in action_required on those branches, so this is not workflows waiting on approval. The runs are never created.
Why this matters here specifically
This repository anchors Trust Records. The validate job is not decoration: it runs python -m unittest discover -s tests -v, tools/validate_registry.py, tools/check_append_only.py, and a trace-verify CLI smoke test against a committed inclusion proof. Those are the checks that would catch a broken Merkle leaf construction or a non-append-only registry write.
#47 merged on 25 August with none of them, and it changed anchor-leaf and signing-layer canonicalization. #49 merged today on a maintainer's local test run (182 passed against 168 on main) rather than on CI, which is not a control anyone else can reproduce or audit. #51 is open and touches the same aggregator core.
The org is not the cause: cmcp reports 13 checks on a fork PR from an external contributor, so fork-PR workflows run elsewhere in agentrust-io. This is a setting on this repository.
Suggested fix
Settings, Actions, General, "Fork pull request workflows from outside collaborators": set it to require approval rather than disallow, so runs are at least created and a maintainer can release them. That matches how cmcp behaves today, where held runs show up as action_required and can be approved.
If the intent is deliberately to keep fork code from executing here, then the honest alternative is to say so and require an equivalent check before merge, rather than merging external changes to anchoring code with nothing run against them. Adding a pull_request_target trigger is not the answer for a job that installs the PR's own dependencies and runs its tests.
Acceptance
A fork PR to this repository shows a validate check, and it fails when the branch breaks check_append_only.py or the unit tests.
ci.ymlis active and triggers onpull_request, but it has never run on a pull request from a fork. Every external contribution to this repository has merged, or is waiting to merge, with no test job, no schema validation and no append-only check.Evidence
The last twelve
ci.ymlruns, by event and branch:docs/project-sponsor-rolessecurity/bind-producer-identfix/publish-anchor-doc-urlsfix/pypi-metadata-public-urlagent/document-digest-contexEvery
pull_requestrun is a branch on this repository. There is not one fork-PR run in the list.Check-runs by head SHA, comparing same-repo PRs against fork PRs:
agentrust-io/trace-registryvalidate=success,gate=successagentrust-io/trace-registryvalidate=success,gate=successaction-state-group/trace-registry(fork)gateonlygateonlygateonlyThere are also zero runs in
action_requiredon those branches, so this is not workflows waiting on approval. The runs are never created.Why this matters here specifically
This repository anchors Trust Records. The
validatejob is not decoration: it runspython -m unittest discover -s tests -v,tools/validate_registry.py,tools/check_append_only.py, and atrace-verifyCLI smoke test against a committed inclusion proof. Those are the checks that would catch a broken Merkle leaf construction or a non-append-only registry write.#47 merged on 25 August with none of them, and it changed anchor-leaf and signing-layer canonicalization. #49 merged today on a maintainer's local test run (182 passed against 168 on main) rather than on CI, which is not a control anyone else can reproduce or audit. #51 is open and touches the same aggregator core.
The org is not the cause:
cmcpreports 13 checks on a fork PR from an external contributor, so fork-PR workflows run elsewhere inagentrust-io. This is a setting on this repository.Suggested fix
Settings, Actions, General, "Fork pull request workflows from outside collaborators": set it to require approval rather than disallow, so runs are at least created and a maintainer can release them. That matches how
cmcpbehaves today, where held runs show up asaction_requiredand can be approved.If the intent is deliberately to keep fork code from executing here, then the honest alternative is to say so and require an equivalent check before merge, rather than merging external changes to anchoring code with nothing run against them. Adding a
pull_request_targettrigger is not the answer for a job that installs the PR's own dependencies and runs its tests.Acceptance
A fork PR to this repository shows a
validatecheck, and it fails when the branch breakscheck_append_only.pyor the unit tests.