Support environment variable expansion in runner token and URL

What does this MR do?

Allow using $VAR or ${VAR} syntax in the token and url fields of runner configuration. This enables storing sensitive values in environment variables instead of hardcoding them in config.toml.

Why was this MR needed?

This is useful for:

  • Kubernetes deployments where tokens are mounted from secrets
  • Docker deployments where tokens are passed as environment variables
  • Avoiding secrets in version-controlled configuration files

What's the best way to test this MR?

Example config.toml:

  [[runners]]
    name = "runner-1"
    url = "$GITLAB_URL"
    token = "${RUNNER_TOKEN_1}"

  [[runners]]
    name = "runner-2"
    url = "$GITLAB_URL"
    token = "${RUNNER_TOKEN_2}"

What are the relevant issue numbers?

Edited by Igor

Merge request reports

Loading