When using gh-aw in a GitHub organization with an IP allow list, workflows fail because the helper jobs (activation, safe_outputs, conclusion) are hardcoded to run on ubuntu-slim, which is a GitHub-hosted runner outside the org's allowed IP range.
The runs-on frontmatter field only applies to the main agent job, so there's no way to route the helper jobs to self-hosted runners that are within the allow list.
Steps to Reproduce
- Create a repository in a GitHub org that has an IP allow list configured
- Configure self-hosted runners (e.g., runner group
cpu-low) that are within the allowed IP range
- Create a workflow with
runs-on: { group: cpu-low } in the frontmatter
- Run
gh aw compile and trigger the workflow
Expected Behavior
All jobs in the compiled workflow should respect the runs-on configuration, or there should be a frontmatter option to configure the runner for helper jobs (e.g., runs-on-helper: or similar).
Actual Behavior
The main agent job correctly uses the custom runner group, but the activation, safe_outputs, and conclusion jobs are hardcoded to ubuntu-slim:
# In the compiled .lock.yml:
activation:
runs-on: ubuntu-slim # ← cannot be changed via frontmatter
agent:
runs-on:
group: cpu-low # ← respects frontmatter
safe_outputs:
runs-on: ubuntu-slim # ← cannot be changed
conclusion:
runs-on: ubuntu-slim # ← cannot be changed
This causes a 403 error when the helper jobs try to access the repository:
fatal: unable to access 'https://github.com/<org>/<repo>/': The requested URL returned error: 403
Workaround
Manually patching the compiled .lock.yml to replace runs-on: ubuntu-slim with the custom runner group works, but is fragile since gh aw compile overwrites the lock file.
A secondary issue arises: the gh-aw/actions/setup action assumes write access to /opt/gh-aw/, which GitHub-hosted runners allow but self-hosted runners typically don't. This requires runner admins to pre-create the directory (sudo mkdir -p /opt/gh-aw && sudo chmod 777 /opt/gh-aw).
Environment
gh-aw version: v0.50.4
- GitHub org with IP allow list enabled
When using gh-aw in a GitHub organization with an IP allow list, workflows fail because the helper jobs (
activation,safe_outputs,conclusion) are hardcoded to run onubuntu-slim, which is a GitHub-hosted runner outside the org's allowed IP range.The
runs-onfrontmatter field only applies to the mainagentjob, so there's no way to route the helper jobs to self-hosted runners that are within the allow list.Steps to Reproduce
cpu-low) that are within the allowed IP rangeruns-on: { group: cpu-low }in the frontmattergh aw compileand trigger the workflowExpected Behavior
All jobs in the compiled workflow should respect the
runs-onconfiguration, or there should be a frontmatter option to configure the runner for helper jobs (e.g.,runs-on-helper:or similar).Actual Behavior
The main
agentjob correctly uses the custom runner group, but theactivation,safe_outputs, andconclusionjobs are hardcoded toubuntu-slim:This causes a 403 error when the helper jobs try to access the repository:
Workaround
Manually patching the compiled
.lock.ymlto replaceruns-on: ubuntu-slimwith the custom runner group works, but is fragile sincegh aw compileoverwrites the lock file.A secondary issue arises: the
gh-aw/actions/setupaction assumes write access to/opt/gh-aw/, which GitHub-hosted runners allow but self-hosted runners typically don't. This requires runner admins to pre-create the directory (sudo mkdir -p /opt/gh-aw && sudo chmod 777 /opt/gh-aw).Environment
gh-awversion: v0.50.4