feat(cli): accept CAPGO_IOS_PROVISIONING_MAP_BASE64 as alternative env var#2025
Conversation
…v var The provisioning map is a stringified JSON value, which is fragile to paste into CI secret stores (quotes, newlines, escaping). Accept a base64-encoded form alongside the raw JSON form so users can store it as a single opaque secret without manual escaping. Precedence: raw CAPGO_IOS_PROVISIONING_MAP wins if both are set. Companion change in capgo_builder accepts the same alternative on the fastlane side for users calling the API directly.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR adds base64-decoding support for iOS provisioning map credentials. The ChangesiOS Provisioning Map Base64 Support
Estimated Code Review Effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Review rate limit: 4/5 reviews remaining, refill in 12 minutes. Comment |
|



Summary
CAPGO_IOS_PROVISIONING_MAP_BASE64(base64-encoded JSON) anywhereCAPGO_IOS_PROVISIONING_MAP(raw JSON) is read in the CLI.CAPGO_IOS_PROVISIONING_MAPtakes precedence if both are set — fully backwards compatible.Why
The provisioning map is a stringified JSON value (
'{"com.example":{"profile":"...","name":"..."}}'). Storing that verbatim in CI secret stores is fragile — quotes, newlines, and shell escaping all conspire to corrupt it on the way through the runner. A base64 wrapper turns the secret into a single opaque blob that round-trips cleanly through GitHub Actions, GitLab CI, and similar.Companion PR in
capgo_buildermirrors the same fallback in the Fastlane template so users hitting the worker API directly (without the CLI) get the same convenience: https://github.com/Cap-go/capgo_builder/pull/new/feat/provisioning-map-base64Test plan
bun run typecheckbun run test:credentials— all 17 tests pass, including 2 new ones:CAPGO_IOS_PROVISIONING_MAP_BASE64 is base64-decoded to the JSON formCAPGO_IOS_PROVISIONING_MAP takes precedence over the BASE64 formFollow-up
cli/cloud-build/credentials.mdxandcli/cloud-build/configuration.mdxon the website to document the new var. Happy to do this in a separate PR once this lands.Summary by CodeRabbit