Dependabot
Run Dependabot update jobs on RunsOn Flex or Fleet self-hosted runners.
GitHub can run Dependabot update jobs on self-hosted runners for private repositories. The routing setup differs between Fleet and Flex.
Fleet#
Fleet runner scale sets use a single compound label. GitHub lets an organization owner configure Dependabot to target that custom label, such as:
runs-on/fleet=dependabot-x64/env=productionThe fleet name and environment must match a fleet in your Fleet configuration. GitHub creates the Dependabot job, so there is no workflow YAML to change.
Configure the label at the organization level:
- Open your organization’s Settings → Advanced Security → Global settings, or go directly to
https://github.com/organizations/<ORG>/settings/security_analysis. - Under Dependabot, edit Runner type and select Labeled runner.
- Enter the full Fleet label in Runner label.
- Optionally, enter the fleet’s runner group in Runner group name to restrict routing further.
- Save the runner selection.
GitHub announced organization-level custom labels for Dependabot in November 2025 ↗.
Flex#
Flex uses GitHub’s default dependabot runner label. Define a pool named exactly dependabot in your organization’s .github-private/.github/runs-on.yml file:
runners: small-x64: image: ubuntu24-full-x64 ram: 2 family: [t3] volume: gp3:30gb:125mbps:3000iops
pools: dependabot: env: production runner: small-x64 schedule: - name: default stopped: 2 hot: 0This example keeps two stopped instances ready for Dependabot jobs. Adjust the pool schedule for your workload. The RunsOn GitHub App must have access to the .github-private repository.
When RunsOn receives a job with the dependabot label, it expands the label internally to runs-on/pool=dependabot. Keep the organization runner label set to the default dependabot value when using this Flex integration.
Enable repositories#
In each private repository that should use RunsOn, open Settings → Advanced Security, or go directly to https://github.com/<ORG>/<REPO>/settings/security_analysis, and enable Dependabot on self-hosted runners.
After you enable this setting, Dependabot jobs wait for a runner with the configured label. A misspelled label or missing pool leaves jobs queued indefinitely. GitHub does not run Dependabot updates from public repositories on self-hosted runners.