feat(#62): DRY OAuth support for all providers in provision_auth
Apra Fleet is an open-source MCP server
Brought to you by:
apralabs
Originally created by: kumaakh
ProviderAdapter with oauthCredentialFiles(), oauthSettingsMerge(), and oauthEnvVarsToUnset() — provider-generic OAuth interfacesettings.json (no overwrite), unsets GEMINI_API_KEY from remote shell profilesnull/[]provision_auth: branching is now api_key → provisionApiKey, oauthCredentialFiles() → provisionOAuthCopy, else collectOobApiKey — zero hardcoded provider pathsremove_member: loops provider.oauthCredentialFiles() for cleanupdeepMergeJson / readRemoteJson helpers in os-commands.tsmember_detail / list_members: auth mode shows oauth, api-key, or warning when both presentprovision_auth on Gemini member (no api_key) copies all 3 OAuth files and merges settings.jsonprovision_auth on Claude member unchangedremove_member cleans up OAuth files for any providermember_detail shows correct auth modeCloses [#62]
🤖 Generated with Claude Code
Originally posted by: kumaakh
Merged into integration/schema-oauth
Ticket changed by: kumaakh