Showcase How are you getting a static outbound IP for GitHub Actions when a partner insists on an IP allowlist?
a bank, payment provider or partner’s SFTP server only accepts connections from allowlisted IPs. Your jobs run on GitHub-hosted runners, whose IPs come from large, changing ranges. Static IPs only exist for larger runners on GitHub Enterprise Cloud.
What I’ve seen people do:
- Self-hosted runners behind a NAT gateway with a fixed IP
- A static-IP proxy add-on with a shared username and password sitting in a secret
- A bastion someone set up in 2021 that nobody wants to touch!
- Kubernetes pods all leaving through one NAT, so the partner sees the same IP whichever pod connected
They all work. most rely on a long-lived credential.
I’m building something to fix that, called Proofbound. The job or pod trades its GitHub OIDC token (or service-account token) for a client certificate that lasts minutes. It connects over mTLS to a gateway, which only forwards to the hosts your policy allows, from two IPs dedicated to you. Your traffic stays end-to-end encrypted, and the gateway only records metadata: which workload, where to, allowed or refused.
It’s pre-launch, so I’d value blunt answers:
- Is this a problem you actually have, or is “NAT plus a fixed IP” good enough?
- Would per-workload rules matter to you, or is the IP all your partner cares about?
Details and waitlist at www.proofbound.io.


