Skip to content

Make no-run recovery populate the release PR check rollup #63

Description

@forkwright

Finding

The reusable release-PR healer cannot recover a required workflow once its fallback produces a completed workflow_dispatch run. It defines only action_required runs as approvable, but defines any run at the head SHA as satisfying workflow presence. A completed dispatch is therefore neither approvable nor eligible for another repair action, and its jobs do not populate the pull request’s statusCheckRollup.

Evidence

Why this matters

A release PR that enters the no-run fallback remains blocked with an absent required context. Scheduled invocations repeatedly recognize the empty rollup but cannot create an approvable, PR-associated run. The fleet reusable therefore does not satisfy its stated guarantee for this state, and each caller inherits a release stall that automation cannot clear.

Desired correction

Make workflow presence mean a run that can populate the target PR’s rollup, and replace the dispatch fallback with a mechanism that creates the actual PR-associated required workflow run. Correct the workflow and script contract so no completed manual dispatch can suppress recovery. Do not synthesize or spoof the required context.

Done when:

  • A regression fixture starts with no held PR run, one completed successful workflow_dispatch run, and an empty PR rollup; the healer does not classify that state as present or healed.
  • An end-to-end probe starts with an open release PR missing a real required workflow context and proves that one healer cycle causes that workflow’s genuine context to appear in statusCheckRollup.
  • A repeated cycle is idempotent after the real PR-associated context exists, and the caller contract advertises only the states the executable probe proves.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggithub_actionsPull requests that update GitHub Actions code

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions