From 22a53c7e555917c54d7289d5949800fafb354e7e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 03:24:11 +0000 Subject: [PATCH 1/4] Initial plan From 2e01a80cfda168889badd5df9a8902a7340e879d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 03:29:01 +0000 Subject: [PATCH 2/4] Add IgnoredQueryParameters to SetDefaultMatcherOptions and ignore api-version during playback Add IgnoredQueryParameters field to SetDefaultMatcherOptions in the recording package to support ignoring specific query parameters during playback matching. Configure the resourcemanager test proxy to ignore the api-version query parameter during playback, avoiding the need to re-record tests when only the API version changes. Co-authored-by: tadelesh <1726438+tadelesh@users.noreply.github.com> --- sdk/internal/recording/matchers.go | 27 ++++++++++--------- sdk/resourcemanager/internal/go.mod | 2 ++ sdk/resourcemanager/internal/go.sum | 2 -- .../internal/testutil/recording.go | 8 ++++++ 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/sdk/internal/recording/matchers.go b/sdk/internal/recording/matchers.go index 5e206e60f3b6..f0d1cec5ee9c 100644 --- a/sdk/internal/recording/matchers.go +++ b/sdk/internal/recording/matchers.go @@ -33,10 +33,11 @@ func SetBodilessMatcher(t *testing.T, options *MatcherOptions) error { type SetDefaultMatcherOptions struct { RecordingOptions - CompareBodies *bool - ExcludedHeaders []string - IgnoredHeaders []string - IgnoreQueryOrdering *bool + CompareBodies *bool + ExcludedHeaders []string + IgnoredHeaders []string + IgnoredQueryParameters []string + IgnoreQueryOrdering *bool } func (s *SetDefaultMatcherOptions) fillOptions() { @@ -98,15 +99,17 @@ func SetDefaultMatcher(t *testing.T, options *SetDefaultMatcherOptions) error { } marshalled, err := json.MarshalIndent(struct { - CompareBodies *bool `json:"compareBodies,omitempty"` - ExcludedHeaders string `json:"excludedHeaders,omitempty"` - IncludedHeaders string `json:"includedHeaders,omitempty"` - IgnoreQueryOrdering *bool `json:"ignoreQueryOrdering,omitempty"` + CompareBodies *bool `json:"compareBodies,omitempty"` + ExcludedHeaders string `json:"excludedHeaders,omitempty"` + IncludedHeaders string `json:"includedHeaders,omitempty"` + IgnoredQueryParameters string `json:"ignoredQueryParameters,omitempty"` + IgnoreQueryOrdering *bool `json:"ignoreQueryOrdering,omitempty"` }{ - CompareBodies: options.CompareBodies, - ExcludedHeaders: strings.Join(addDefaults(options.ExcludedHeaders), ","), - IncludedHeaders: strings.Join(options.IgnoredHeaders, ","), - IgnoreQueryOrdering: options.IgnoreQueryOrdering, + CompareBodies: options.CompareBodies, + ExcludedHeaders: strings.Join(addDefaults(options.ExcludedHeaders), ","), + IncludedHeaders: strings.Join(options.IgnoredHeaders, ","), + IgnoredQueryParameters: strings.Join(options.IgnoredQueryParameters, ","), + IgnoreQueryOrdering: options.IgnoreQueryOrdering, }, "", "") if err != nil { return err diff --git a/sdk/resourcemanager/internal/go.mod b/sdk/resourcemanager/internal/go.mod index 683b1b2b0717..c0762f307d1a 100644 --- a/sdk/resourcemanager/internal/go.mod +++ b/sdk/resourcemanager/internal/go.mod @@ -2,6 +2,8 @@ module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3 go 1.24.0 +replace github.com/Azure/azure-sdk-for-go/sdk/internal => ../../internal + require ( github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 diff --git a/sdk/resourcemanager/internal/go.sum b/sdk/resourcemanager/internal/go.sum index eb1cf6772e0a..8ffb171cc674 100644 --- a/sdk/resourcemanager/internal/go.sum +++ b/sdk/resourcemanager/internal/go.sum @@ -4,8 +4,6 @@ github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpz github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armdeployments v0.2.0 h1:bYq3jfB2x36hslKMHyge3+esWzROtJNk/4dCjsKlrl4= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armdeployments v0.2.0/go.mod h1:fewgRjNVE84QVVh798sIMFb7gPXPp7NmnekGnboSnXk= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 h1:Dd+RhdJn0OTtVGaeDLZpcumkIVCtA/3/Fo42+eoYvVM= diff --git a/sdk/resourcemanager/internal/testutil/recording.go b/sdk/resourcemanager/internal/testutil/recording.go index 776e10a27a27..546ce88b9ec9 100644 --- a/sdk/resourcemanager/internal/testutil/recording.go +++ b/sdk/resourcemanager/internal/testutil/recording.go @@ -35,6 +35,14 @@ func StartProxy(pathToPackage string) func() { if err != nil { panic(fmt.Sprintf("Failed to remove location header sanitizer: %v", err)) } + // ignore api-version query parameter during playback matching to avoid + // re-recording when only the API version changes + err = recording.SetDefaultMatcher(nil, &recording.SetDefaultMatcherOptions{ + IgnoredQueryParameters: []string{"api-version"}, + }) + if err != nil { + panic(fmt.Sprintf("Failed to set default matcher: %v", err)) + } return func() { err := recording.StopTestProxy(proxy) From c98e7e579fe8666221514d5b64aa6f7c0ac47b72 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 03:57:10 +0000 Subject: [PATCH 3/4] Separate sdk/internal/recording changes: revert sdk/resourcemanager/internal changes for follow-up PR Co-authored-by: tadelesh <1726438+tadelesh@users.noreply.github.com> --- sdk/resourcemanager/internal/go.mod | 2 -- sdk/resourcemanager/internal/go.sum | 2 ++ sdk/resourcemanager/internal/testutil/recording.go | 8 -------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/sdk/resourcemanager/internal/go.mod b/sdk/resourcemanager/internal/go.mod index c0762f307d1a..683b1b2b0717 100644 --- a/sdk/resourcemanager/internal/go.mod +++ b/sdk/resourcemanager/internal/go.mod @@ -2,8 +2,6 @@ module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3 go 1.24.0 -replace github.com/Azure/azure-sdk-for-go/sdk/internal => ../../internal - require ( github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 diff --git a/sdk/resourcemanager/internal/go.sum b/sdk/resourcemanager/internal/go.sum index 8ffb171cc674..eb1cf6772e0a 100644 --- a/sdk/resourcemanager/internal/go.sum +++ b/sdk/resourcemanager/internal/go.sum @@ -4,6 +4,8 @@ github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpz github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armdeployments v0.2.0 h1:bYq3jfB2x36hslKMHyge3+esWzROtJNk/4dCjsKlrl4= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armdeployments v0.2.0/go.mod h1:fewgRjNVE84QVVh798sIMFb7gPXPp7NmnekGnboSnXk= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 h1:Dd+RhdJn0OTtVGaeDLZpcumkIVCtA/3/Fo42+eoYvVM= diff --git a/sdk/resourcemanager/internal/testutil/recording.go b/sdk/resourcemanager/internal/testutil/recording.go index 546ce88b9ec9..776e10a27a27 100644 --- a/sdk/resourcemanager/internal/testutil/recording.go +++ b/sdk/resourcemanager/internal/testutil/recording.go @@ -35,14 +35,6 @@ func StartProxy(pathToPackage string) func() { if err != nil { panic(fmt.Sprintf("Failed to remove location header sanitizer: %v", err)) } - // ignore api-version query parameter during playback matching to avoid - // re-recording when only the API version changes - err = recording.SetDefaultMatcher(nil, &recording.SetDefaultMatcherOptions{ - IgnoredQueryParameters: []string{"api-version"}, - }) - if err != nil { - panic(fmt.Sprintf("Failed to set default matcher: %v", err)) - } return func() { err := recording.StopTestProxy(proxy) From 690a29df4549bd946ca211ae33afd1cdb15851a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Mar 2026 04:01:13 +0000 Subject: [PATCH 4/4] Add changelog entry for IgnoredQueryParameters in sdk/internal Co-authored-by: tadelesh <1726438+tadelesh@users.noreply.github.com> --- sdk/internal/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/internal/CHANGELOG.md b/sdk/internal/CHANGELOG.md index 6e4af19228b3..79010016e7b4 100644 --- a/sdk/internal/CHANGELOG.md +++ b/sdk/internal/CHANGELOG.md @@ -4,6 +4,8 @@ ### Features Added +* Added `IgnoredQueryParameters` field to `SetDefaultMatcherOptions` for specifying query parameters to ignore during playback matching + ### Breaking Changes ### Bugs Fixed