diff --git a/CHANGELOG.md b/CHANGELOG.md index be9b0ad6e..6c962d32e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### Bug Fixes: +- fix(service): allow `service version validate` to use `FASTLY_SERVICE_ID`. + ### Enhancements: - feat(service/logging): add Log Explorer and Insights commands ([#1887](https://github.com/fastly/cli/pull/1887)) diff --git a/pkg/commands/service/version/serviceversion_test.go b/pkg/commands/service/version/serviceversion_test.go index f25f0e16b..ec3ea68a9 100644 --- a/pkg/commands/service/version/serviceversion_test.go +++ b/pkg/commands/service/version/serviceversion_test.go @@ -566,13 +566,24 @@ func TestVersionValidate(t *testing.T) { { Name: "validate missing --service-id flag", Args: "--version 1", - WantError: "error parsing arguments: required flag --service-id not provided", + EnvVars: map[string]string{"FASTLY_SERVICE_ID": ""}, + WantError: "error reading service: no service ID found", }, { Name: "validate missing --version flag", Args: "--service-id 123", WantError: "error parsing arguments: required flag --version not provided", }, + { + Name: "validate successful - FASTLY_SERVICE_ID env var fallback", + Args: "--version 1", + EnvVars: map[string]string{"FASTLY_SERVICE_ID": "123"}, + API: &mock.API{ + GetVersionFn: testutil.GetVersion, + ValidateVersionFn: validateVersionValid("All checks passed"), + }, + WantOutput: "Service 123 version 1 is valid: All checks passed", + }, { Name: "validate successful - valid version without message", Args: "--service-id 123 --version 1", diff --git a/pkg/commands/service/version/validate.go b/pkg/commands/service/version/validate.go index bcbfed55b..c413358d0 100644 --- a/pkg/commands/service/version/validate.go +++ b/pkg/commands/service/version/validate.go @@ -18,6 +18,7 @@ type ValidateCommand struct { argparser.JSONOutput input fastly.ValidateVersionInput + serviceName argparser.OptionalServiceNameID serviceVersion argparser.OptionalServiceVersion } @@ -35,7 +36,12 @@ func NewValidateCommand(parent argparser.Registerer, g *global.Data) *ValidateCo Description: argparser.FlagServiceIDDesc, Dst: &g.Manifest.Flag.ServiceID, Short: 's', - Required: true, + }) + c.RegisterFlag(argparser.StringFlagOpts{ + Action: c.serviceName.Set, + Name: argparser.FlagServiceName, + Description: argparser.FlagServiceNameDesc, + Dst: &c.serviceName.Value, }) c.RegisterFlag(argparser.StringFlagOpts{ Name: argparser.FlagVersionName, @@ -56,6 +62,7 @@ func (c *ValidateCommand) Exec(_ io.Reader, out io.Writer) error { APIClient: c.Globals.APIClient, Manifest: *c.Globals.Manifest, Out: out, + ServiceNameFlag: c.serviceName, ServiceVersionFlag: c.serviceVersion, VerboseMode: c.Globals.Flags.Verbose, })