A new VM for every job
Every job gets its own VM, destroyed when the job ends.

Security
Track dependencies, control network access and manage permissions, with isolated VMs for every CI job.
Track production dependencies, versions and licenses with automatically updated SBOMs.
Spot copyleft and unknown licenses. Export CycloneDX, SPDX or JSON, and review previous scans by commit.
Read the SBOM docsLinked to its source commit
Control where builds connect with organization and repository rules enforced outside the VM. See allowed and blocked connections for each job.
Required service connections stay allowed, including GitHub Actions, Avrea caches and Azure Blob Storage.
Explore the egress firewallregistry.npmjs.orgAllowregistry.example.comAllowConnect to IP-restricted databases and APIs using static outbound IPs reserved for your organization.
Set up static IPsUse SAML SSO with your identity provider’s MFA and access policies.
Track access and configuration changes. Export continuously to S3-compatible storage or Google Cloud Storage, with retention you control.
Every job gets its own VM, destroyed when the job ends.
Caches are isolated by repository and encrypted in transit and at rest.
GitHub Actions cache entries cannot be overwritten. Integrity checks verify npm and Cargo packages.
Everyone, including admins, can only access repositories they can read on GitHub.
GitHub App tokens expire automatically. Targeted operations use only the repository permissions they need.
Manage SSH access to running jobs, with repository permissions and an audit trail.
SSH controlsSeparate administration, billing and everyday access with organization roles.
Roles and permissionsAutomatic session expiry and sign-out across all devices.
Account securityConnect runners to your private services through WireGuard, OpenVPN or Tailscale.
Network rules and limitsSend job logs to your OpenTelemetry collector.
Observability docs