<aside> 🛡️ A five-step, read-only audit card for a GitHub Actions workflow. It helps you write down what the workflow shows and what a maintainer must decide before the pull_request_target default block becomes permanent for public repositories.

</aside>

What this is—and is not

This card makes a review conversation easier. It does not run a workflow, detect every risk, verify a configuration, change an event policy, or give permission to use secrets.

Who needs it

A public-repository maintainer, a contributor who has permission to inspect a workflow, or a learner using a fictional/public example. Private and internal repositories are not affected by this particular GitHub default change.

Five-minute audit

  1. Open one authorised workflow file under .github/workflows. Record the file name and whether the repository is public, private, or unknown.
  2. Find the on: section. Write down every trigger. If pull_request_target does not appear, record “not found in this file”; do not call the repository safe.
  3. If pull_request_target appears, look for checkout, downloads, scripts, or actions that could use pull-request-controlled content. Write what you can see, not what you assume.
  4. Record visible permissions, secret references, and unknown repository settings. Do not paste real secret values into your card or an AI tool.
  5. Hand the card to the workflow owner or security reviewer before the November 9 brownout. Only they should decide whether to keep the default block or explicitly allow a narrowly targeted workflow.

Copy/paste audit card

WORKFLOW FILE:
REPOSITORY VISIBILITY: public / private / internal / unknown
TRIGGER(S):
pull_request_target IN THIS FILE: yes / no / unknown
PR-CONTROLLED CONTENT CHECKED OUT / DOWNLOADED / EXECUTED:
VISIBLE PERMISSIONS OR SECRET REFERENCES:
MISSING FACTS:
QUESTION FOR OWNER:
STOP / ESCALATE IF:
DATE REVIEWED:

Optional AI review prompt

If your YAML is public or explicitly authorised for the service you choose, use the complete Fork-Safe Workflow Review Prompt. It asks for missing facts and a human question, not an automatic fix.

Check before handoff