Repository navigation
Move printers, validation, saved login and iOS version detection out of command-executor - #72
Merged
Merged
Conversation
…of command-executor command-executor keeps the commands; the helpers move by concern: - ui/printers.ts: table and JSON output - utils/validation-utils.ts: input checks - auth/connection.ts: the saved login file and getSdk - utils/ios-utils.ts: iOS app version detection, next to gradle-utils - types/index.ts: the metrics interfaces getSdk drops its unused headers parameter. No behaviour change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ashirman
approved these changes
Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 2 of the CLI restructuring (REV-139). There's no behaviour change.
command-executor.tskeeps the commands and release flows; helpers move out by concern, and the file goes from 1,885 to about 1,260 lines.Changes
ui/printers.tsformatDate,printTableandprintJson. Only the sixprint*entry points are exported.utils/validation-utils.tsthrowForInvalidEmail,throwForInvalidSemverRange,throwForInvalidOutputFormat,isCommandOptionSpecifiedauth/connection.ts~/.revopush.config: read, write, delete), the CLI version header, andgetSdkwith its handler that deletes an expired loginutils/ios-utils.tsInfo.plist, falling back to the Xcode project. It sits next toutils/gradle-utils.ts, which does the same for Android.types/index.tsUpdateMetricsWithTotalActiveandPackageWithMetricsexportkeywords and line wrapping.getSdkdrops itsheadersparameter. It always used its ownCLI_HEADERSconstant, which is now private toauth/connection.ts.auth/rather thansession/, because "session" already means server sessions here (revopush session ls, theSessiontype).validation-utils.tsmatches the other*-utils.tsfiles inutils/.Verification
tsc,npm run lint(0 problems) andnpm run format:checkare clean.mainand from this branch, run against a local fake server with 45 commands. These include reading, writing and deleting the saved login file, every table and JSON printer, and validation errors. Output, exit codes and server requests are identical.mainon 10 generated iOS projects:Info.plist;$(MARKETING_VERSION)with an Xcode project;X-CodePush-CLI-Versionstill readspackage.jsoncorrectly from the new folder.Found during review and tracked in REV-144:
registermay pass its server URL into the wrong parameter; an unused parameter ininitiateExternalAuthenticationAsync; and three identical version types to merge.🤖 Generated with Claude Code