Skip to content

ci.yml never runs on fork pull requests: every external contribution has merged without the validate job #52

Description

@imran-siddique

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions