Skip to main content
ironrun’s CI mode injects secrets for trusted runs and blocks untrusted ones — fork pull requests cannot trick your workflow into handing out production credentials. No special configuration is needed: the trust check is automatic based on GitHub’s event context, and secrets are redacted from all CI output before they can appear in job logs.

Trust model

ironrun inspects the GitHub Actions event context and decides automatically whether to inject secrets: Fork PRs are blocked because GitHub Actions exposes repository secrets to jobs triggered by pull_request from the same repo but not from forks. ironrun enforces the same boundary at the command level, ensuring a fork-authored workflow file cannot be modified to exfiltrate credentials.

Using the GitHub Action step

The generalized-labs/ironrun@v0 action installs ironrun and runs a policy command in one step. Add it to any job:

Inputs

Outputs

Using outputs in later steps

Using the binary directly

If you prefer to install ironrun yourself and run it in a plain run step, use go install:
This works in any job regardless of the action. The ironrun.yml policy is read from the repository root by default.

Full workflow example

No special CI configuration is needed to enable the fork-PR protection. ironrun reads GitHub’s event context automatically and blocks untrusted runs with ErrCIUntrusted. The protection is on by default.
Setting IRONRUN_ALLOW_PRT=1 disables fork protection for pull_request_target events. Use this only if you fully understand the security implications — pull_request_target runs with write access to the base repository, and enabling secret injection for fork-authored code in that context is a known attack surface.