(cli *cli)
| 527 | } |
| 528 | |
| 529 | func diffActionCmd(cli *cli) *cobra.Command { |
| 530 | var inputs struct { |
| 531 | ID string |
| 532 | version1 int |
| 533 | version2 int |
| 534 | } |
| 535 | |
| 536 | cmd := &cobra.Command{ |
| 537 | Use: "diff [action-id]", |
| 538 | Short: "Show diff between two versions of an Actions", |
| 539 | Args: cobra.MaximumNArgs(1), |
| 540 | Long: "Show code difference between two versions of an Actions", |
| 541 | Example: `auth0 actions diff |
| 542 | auth0 actions diff <action-id>`, |
| 543 | RunE: func(cmd *cobra.Command, args []string) error { |
| 544 | ctx := context.Background() |
| 545 | if len(args) == 0 { |
| 546 | if err := actionID.Pick(cmd, &inputs.ID, cli.actionPickerOptions); err != nil { |
| 547 | return err |
| 548 | } |
| 549 | } else { |
| 550 | inputs.ID = args[0] |
| 551 | } |
| 552 | |
| 553 | // Fetch all versions (paginate). |
| 554 | var allVersions []*management.ActionVersion |
| 555 | page := 0 |
| 556 | perPage := 50 |
| 557 | for { |
| 558 | queryParams := []management.RequestOption{ |
| 559 | management.Parameter("page", fmt.Sprintf("%d", page)), |
| 560 | management.Parameter("per_page", fmt.Sprintf("%d", perPage)), |
| 561 | } |
| 562 | |
| 563 | versionsResp, err := cli.api.Action.Versions(ctx, inputs.ID, queryParams...) |
| 564 | if err != nil { |
| 565 | return err |
| 566 | } |
| 567 | |
| 568 | allVersions = append(allVersions, versionsResp.Versions...) |
| 569 | |
| 570 | // Check if we've retrieved all available versions using the total count. |
| 571 | if len(allVersions) >= versionsResp.Total { |
| 572 | break |
| 573 | } |
| 574 | page++ |
| 575 | } |
| 576 | |
| 577 | var err error |
| 578 | inputs.version1, inputs.version2, err = pickTwoVersions(allVersions) |
| 579 | if err != nil { |
| 580 | return err |
| 581 | } |
| 582 | |
| 583 | var code1, code2 string |
| 584 | for _, v := range allVersions { |
| 585 | if v.Number == inputs.version1 { |
| 586 | code1 = v.GetCode() |
no test coverage detected