Skip to content

Self Fix PRs never run CI, so automated security fixes cannot merge on their own #1253

Description

@sonukapoor

Note: this is an in-house item already being handled by the maintainer - not open for contribution. Filed for tracking only.

Pull requests opened by the Self Fix workflow never run CI, so they cannot be shown to be green and sit at BLOCKED until a human merges them with admin.

What happens

GitHub deliberately does not trigger workflows for pull requests created with the default GITHUB_TOKEN, to prevent a workflow from recursively triggering itself. The Self Fix workflow uses that token, so its PRs arrive with zero checks.

Observed on #1250, the automated brace-expansion fix on 2026-09-30: opened 06:05, zero checks, BLOCKED, merged by hand about two hours later.

Why it matters beyond the inconvenience

The automation works well. It detected a new advisory overnight, validated the fix versions, applied them within the declared ranges and opened a PR with a before-and-after finding count, all before anyone looked. That is exactly what we tell adopters the tool does.

But the fix cannot land on its own, so the window between an advisory publishing and it being resolved is however long it takes someone to notice a bot PR. During that window every other open PR shows a red self-scan, which is the problem #1252 addresses from the other end.

It is also a gap in a feature we advertise. Adopters using fix: true with create-pr: true in their own workflows will hit exactly this, and nothing in our docs warns them.

Options

  • a fine-grained PAT or a GitHub App token on the Self Fix workflow, so its PRs trigger workflows normally
  • workflow_run as a second stage, which works but adds a moving part
  • leave it, accept the manual step, and document the behaviour for adopters using the Action's create-pr input

⚠ The token options carry a real supply-chain tradeoff on a project whose whole pitch is supply-chain safety. A long-lived credential with write access, stored as a repository secret, is precisely the kind of thing we tell people to be careful about. That argues for either the workflow_run route or simply documenting it, rather than the convenient answer.

Worth deciding rather than drifting, since it affects both our own release hygiene and what adopters experience.

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

    enhancementNew feature or requestin-houseMaintainer-handled internal work - not open for contribution

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions