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.

Activity

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

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