Skip to content

Add multi-repo config support#39

Merged
psubocz merged 3 commits intomainfrom
feature/multirepo-config
Apr 20, 2026
Merged

Add multi-repo config support#39
psubocz merged 3 commits intomainfrom
feature/multirepo-config

Conversation

@psubocz
Copy link
Copy Markdown
Collaborator

@psubocz psubocz commented Apr 20, 2026

Summary

  • Adds optional url and token_file fields to per-runner config, enabling a single outrunner instance to serve multiple repositories
  • Runners without overrides fall back to global config values (fully backward compatible)
  • Scaleset clients are deduplicated by (url, token) pair — runners targeting the same repo share a single client
  • Validates at config load time that every runner has a reachable URL (global or per-runner)
  • Updates docs (configuration reference, CLI reference) and packaging config template

Test plan

  • Existing tests updated and passing
  • New tests for per-runner URL/token parsing, fallback to global, missing URL validation

psubocz added 3 commits April 20, 2026 11:52
Allow each runner to optionally specify its own url and token_file,
enabling a single outrunner instance to serve multiple repositories.
Runners without overrides fall back to the global config values.

Scaleset clients are deduplicated by (url, token) pair so runners
targeting the same repo share a single client.

Validation ensures every runner has a reachable URL (global or local).
Remove URL validation from LoadConfig — it broke --url-only users
since LoadConfig runs before CLI flags are considered. URL is now
validated at resolve time in main.go.

Fix misleading test name "flag beats everything" → "runner URL beats
flag" to match what the test actually asserts.

Sort runner names before iterating config.Runners map for
deterministic startup order and log output.
@psubocz psubocz merged commit 10abcd5 into main Apr 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant