Docs menu
Docs Reference
GitHub Actions
Proxies in workflows with no password in repository secrets: the job trades its GitHub OIDC token for credentials.
Last verified: October 2026What it does
A job in GitHub Actions can use your Proxmint proxies without a proxy password in its repository secrets. GitHub signs a short-lived OIDC token for every job that names the repository it runs in. The job sends that token to Proxmint and gets back a proxy line of the account linked to the repository.
Use it to run end-to-end tests from real residential IPs, check how your site behaves in another country, or test geo-restricted features before they ship. Traffic through the proxy counts against your pack, like any other request.
Set it up
- Install the Proxmint GitHub App on your account or organization, for all repositories or only the ones that need proxies. It asks for no permissions beyond reading their names.
- GitHub sends you back to Proxmint to link the installation to your account. You can also link it later under Settings, GitHub Actions.
- Add the setup-proxy action to a workflow, and give the job
id-token: write.
Use it in a workflow
The action masks the password in the log and returns the line as url. Pass it only to the steps that need it: set as HTTPS_PROXY for the whole job, it would also send checkouts, caches and artifact uploads through your proxy. Its export-env: true input does exactly that, for jobs where every request should go out through the proxy.
Without the action
Any step can make the same call itself:
| Field | Values |
|---|---|
product | datacenter, residential, premium-residential, mobile. Default: the oldest product on the account |
country | A two-letter code such as us. Default: the targeting saved in the dashboard |
session | rotating (a new IP on every request, the default) or sticky |
sticky_minutes | How long a sticky session keeps its IP, 1 to 120. Default 30 |
Every field is optional. The answer is one line, in the same format as the dashboard:
| Status | Meaning |
|---|---|
401 | No token, or GitHub's token was refused: the job lacks permissions: id-token: write, or asked for another audience |
403 | The app is not installed on this repository, or its installation is not linked to an account |
404 | The account has no product of that kind yet |
429 | More than 60 requests a minute from one runner |
Who can get your proxies
- Only jobs in repositories the app is installed on, and only while that installation is linked to your account. Unlink it in Settings, or uninstall the app on GitHub, and the next request is refused.
- Anyone who can run a workflow in those repositories can get the line, the same as with a repository secret. Pull requests from forks get no OIDC token, so they cannot ask. Workflows triggered by
pull_request_targetcan, so never run code from a fork in one withid-token: write. - An installation is linked through GitHub sign-in, which proves you can reach it. One installation belongs to one Proxmint account.
- The token is only good for Proxmint: it carries our audience,
https://proxmint.com, and expires within minutes. If a proxy password leaks anyway, change it from the dashboard.
Good to know
- It works on GitHub-hosted and self-hosted runners on github.com. GitHub Enterprise Server, and enterprises that set their own OIDC issuer, are not supported yet.
- The gateway forwards to the usual web ports only; see port access. Some sites are never reachable: blocked websites.
- Scripts outside GitHub read the same credentials with an API key: customer API.