MCPcopy Create free account
hub / github.com/auth0/auth0-cli / pickTwoVersions

Function pickTwoVersions

internal/cli/actions.go:756–834  ·  view source on GitHub ↗
(versions []*management.ActionVersion)

Source from the content-addressed store, hash-verified

754}
755
756func pickTwoVersions(versions []*management.ActionVersion) (int, int, error) {
757 if len(versions) < 2 {
758 return 0, 0, fmt.Errorf("need at least 2 versions to compare, found only %d version. Create more versions to enable comparison", len(versions))
759 }
760
761 // Build version options with clear labels showing version numbers, IDs, and deployment status.
762 versionOptions := make([]string, len(versions))
763 versionNumbers := make([]int, len(versions))
764
765 for i, v := range versions {
766 versionNumbers[i] = v.Number
767 deployedStatus := ""
768 if v.Deployed {
769 deployedStatus = " [DEPLOYED]"
770 } else {
771 deployedStatus = " [DRAFT]"
772 }
773
774 versionID := *v.ID
775
776 versionOptions[i] = fmt.Sprintf("v%d (%s)%s", v.Number, versionID, deployedStatus)
777 }
778
779 var fromVersionStr, toVersionStr string
780
781 // Ask for first version (baseline).
782 if err := prompt.AskOne(&survey.Question{
783 Name: "fromVersion",
784 Prompt: &survey.Select{
785 Message: "Select the first version (baseline):",
786 Options: versionOptions,
787 },
788 Validate: survey.Required,
789 }, &fromVersionStr); err != nil {
790 return 0, 0, handleInputError(err)
791 }
792
793 // Find the selected "from" version number.
794 var selectedFromVersion int
795 for i, option := range versionOptions {
796 if option == fromVersionStr {
797 selectedFromVersion = versionNumbers[i]
798 break
799 }
800 }
801
802 // Build filtered options for "to" version (excluding the already selected "from" version).
803 var filteredToOptions []string
804 var filteredToNumbers []int
805 for i, option := range versionOptions {
806 if versionNumbers[i] != selectedFromVersion {
807 filteredToOptions = append(filteredToOptions, option)
808 filteredToNumbers = append(filteredToNumbers, versionNumbers[i])
809 }
810 }
811
812 // Ask for second version (comparison target) - only show remaining options.
813 if err := prompt.AskOne(&survey.Question{

Callers 1

diffActionCmdFunction · 0.85

Calls 3

AskOneFunction · 0.92
handleInputErrorFunction · 0.85
ErrorfMethod · 0.80

Tested by

no test coverage detected