feat(integrations): setup-spec batch 9 — AWS, GitHub, Kubernetes, Twilio (#4168)#4229
Conversation
…hared setup Finish #4168 by moving the last four setup handlers onto IntegrationSetupSpec so CLI and wizard persist to store, keyring, and .env the same way. - add SetupMode pickers for AWS auth and Kubernetes kubeconfig source - keep GitHub browser OAuth collection; persist via apply_setup - collect Twilio SMS fields flat; reshape in classify/verifier for nested sms - extend env round-trip coverage for the new specs
Greptile code reviewThis repo uses Greptile for automated review. Before merge, aim for Confidence Score: 5/5 with zero unresolved review threads — see CONTRIBUTING.md. Run a review — add a PR comment with: Give it ~5-10 minutes (sometimes longer) for results, then fix feedback and re-trigger until you reach Confidence Score: 5/5. Optional: automate with the greploop skill. |
Greptile SummaryMigrates the remaining AWS, GitHub, Kubernetes, and Twilio setup handlers to the shared setup flow.
Confidence Score: 5/5The PR appears safe to merge with no blocking failures remaining in the Kubernetes secret-storage fix. The inline kubeconfig is routed to keyring storage, removed from plaintext Important Files Changed
Reviews (2): Last reviewed commit: "fix(integrations): keyring-route inline ..." | Re-trigger Greptile |
Address Greptile P1 and CodeQL/code-quality review on #4229. - classify KUBECONFIG_CONTENT as sensitive so apply_setup writes it to the keyring instead of plaintext .env (path-only KUBECONFIG stays public) - mark the inline kubeconfig SetupField secret for masked prompts - use a single setup_flow import style in the GitHub setup tests
|
@greptile review |
The configurator no longer imports sync_env_values/upsert_integration; patch setup_flow writers and expect keyring-routed auth token + comma toolsets string.
|
🎉 MERGED! @muddlebee just shipped something. The diff gods are pleased. 🙌 👋 Join us on Discord - OpenSRE : hang out, contribute, or hunt for features and issues. Everyone's welcome. |

Fixes #4168
Describe the changes you have made in this PR -
Final setup-spec batch: migrate the last four remaining
integrations setuphandlers onto the sharedapply_setupflow so CLI and wizard write store + keyring +.envthe same way.SetupModefor IAM role vs access keys; region always-on; verifier wrapper nests static keys forAWSIntegrationConfigSetupModefor kubeconfig file path vs inline YAML; either/or still enforced by the probe verifiershape_twilio_credentialsused by classify/setup verifier for the nestedsmsmodelGITHUB_SETUPspec; CLI/wizard keep browser OAuth + rich repo-scope validation, then persist throughapply_setup(token → keyring)smsassertionAfter this PR: 45 of 45 setup handlers are on the shared flow.
Demo/Screenshot for feature changes and bug fixes -
Code Understanding and AI Usage
Did you use AI assistance (ChatGPT, Claude, Copilot, etc.) to write any part of this code?
If you used AI assistance:
Explain your implementation approach:
Issue #4168 was about store-only CLI setup vs three-tier wizard writes. Batches 1–8 migrated 40 integrations; these four were left because they needed mode pickers, nested credential reshaping, or custom pre-collection (GitHub browser OAuth).
Approaches considered:
apply_setupwith nested-credential support — rejected; Better Stack already keeps list-ish values as strings and normalizes on read.SetupMode+ verifier reshape + optionalfinalizealready cover these cases._run_spec_setup— would drop browser OAuth and the rich repo-scope report.Chosen approach: declare specs like prior batches; keep GitHub’s interactive collection custom and hand values to
apply_setupafter the existing validation report. Twilio/AWS flatten for env vars and reshape only at verify/classify boundaries so store and catalog stay compatible.Key pieces:
integrations/{aws,github,kubernetes,twilio}/setup.py,shape_*helpers, wizardconfigure_from_specfor AWS, GitHub wizard persist path.Checklist before requesting a review
Note: Please check Allow edits from maintainers if you would like us to assist in the PR.