feat: multi-org github app routing with yaml config - #1317
Conversation
|
Hi @lee2sh, thanks for the PR. I like this approach. Just to confirm, if you have a setup like us, we would do something like orgs:
- name: "*"
apps:
- app_id: 111
kms_key: projects/.../cryptoKeyVersions/1
- app_id: 112
kms_key: projects/.../cryptoKeyVersions/2
- app_id: 113
kms_key: projects/.../cryptoKeyVersions/3...etc? |
hi @joedborg, thanks for taking a look! I really appreciate your feedback. Yes, that config does exactly what you'd expect. The router stores Let me know if you have any more questions! |
c2ff9c4 to
b249689
Compare
ec7d8d7 to
9ecbadf
Compare
a7fe881 to
50c947d
Compare
|
🤖 AI-assisted review. Thanks @lee2sh -- nice approach. Wrapping the existing round-robin + quota managers into per-org It's conflicting with Happy to do a full review once it's rebased. Thanks for the contribution! |
Hello @jmeridth, thank you for your review! I'm currently travelling but will rebase as soon as I get decent internet. |
Multi-Org GitHub App Routing
Problem
octo-sts supports multiple GitHub Apps, but only as a flat pool for rate-limit scaling — all apps serve all orgs indiscriminately. There's no way to:
The env-var config (GITHUB_APP_IDS, KMS_KEYS) is structurally limited to a single credential type across all apps.
Solution
Introduce a YAML config file (pointed to by APP_CONFIG_FILE) that maps orgs to their dedicated app pools, each with per-app credential configuration:
Let me know what you guys think!