diff --git a/CHANGELOG.md b/CHANGELOG.md index 927ea3c1c..fe7df0281 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### Bug Fixes: +- fix(service-version): support autoclone when staging a service version. ([#1850](https://github.com/fastly/cli/pull/1850)) + ### Enhancements: ### Dependencies: diff --git a/pkg/commands/service/version/serviceversion_test.go b/pkg/commands/service/version/serviceversion_test.go index 28a4e5b6c..f5ebde299 100644 --- a/pkg/commands/service/version/serviceversion_test.go +++ b/pkg/commands/service/version/serviceversion_test.go @@ -322,6 +322,26 @@ func TestVersionStage(t *testing.T) { EnvVars: map[string]string{"FASTLY_SERVICE_ID": ""}, WantError: "error parsing arguments: required flag --version not provided", }, + { + Name: "validate --autoclone stages a clone of an active version", + Args: "--service-id 123 --version 1 --autoclone", + API: &mock.API{ + GetVersionFn: testutil.GetVersion, + CloneVersionFn: testutil.CloneVersionResult(4), + ActivateVersionFn: stageVersionOK, + }, + WantOutput: "Staged service 123 version 4", + }, + { + Name: "validate --autoclone stages a clone of a locked version", + Args: "--service-id 123 --version 2 --autoclone", + API: &mock.API{ + GetVersionFn: testutil.GetVersion, + CloneVersionFn: testutil.CloneVersionResult(4), + ActivateVersionFn: stageVersionOK, + }, + WantOutput: "Staged service 123 version 4", + }, { Args: "--service-id 123 --version 3", API: &mock.API{ diff --git a/pkg/commands/service/version/stage.go b/pkg/commands/service/version/stage.go index 0a73e53c4..c8c22c20c 100644 --- a/pkg/commands/service/version/stage.go +++ b/pkg/commands/service/version/stage.go @@ -20,6 +20,7 @@ type StageCommand struct { Input fastly.ActivateVersionInput serviceName argparser.OptionalServiceNameID serviceVersion argparser.OptionalServiceVersion + autoClone argparser.OptionalAutoClone } // NewStageCommand returns a usable command registered under the parent. @@ -45,6 +46,10 @@ func NewStageCommand(parent argparser.Registerer, g *global.Data) *StageCommand Dst: &c.serviceVersion.Value, Required: true, }) + c.RegisterAutoCloneFlag(argparser.AutoCloneFlagOpts{ + Action: c.autoClone.Set, + Dst: &c.autoClone.Value, + }) return &c } @@ -53,6 +58,7 @@ func (c *StageCommand) Exec(_ io.Reader, out io.Writer) error { serviceID, serviceVersion, err := argparser.ServiceDetails(argparser.ServiceDetailsOpts{ Active: optional.Of(false), Locked: optional.Of(false), + AutoCloneFlag: c.autoClone, APIClient: c.Globals.APIClient, Manifest: *c.Globals.Manifest, Out: out,