From ba4de6d4c16c733b7815233bc89944b380f89409 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Fri, 28 Feb 2025 16:51:27 +0000 Subject: [PATCH 1/4] fix: request body for preview is empty --- tools/cli/internal/apiversion/version.go | 6 +++--- tools/cli/internal/cli/split/split.go | 3 +++ tools/cli/internal/openapi/filter/operations.go | 2 +- tools/cli/internal/openapi/filter/versioning.go | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/cli/internal/apiversion/version.go b/tools/cli/internal/apiversion/version.go index b72fd726a4..49dfe6c0b9 100644 --- a/tools/cli/internal/apiversion/version.go +++ b/tools/cli/internal/apiversion/version.go @@ -32,7 +32,8 @@ type APIVersion struct { } const ( - dateFormat = "2006-01-02" + dateFormat = "2006-01-02" + previewDate = "3000-01-01" ) var contentPattern = regexp.MustCompile(`application/vnd\.atlas\.((\d{4})-(\d{2})-(\d{2})|preview)\+(.+)`) @@ -57,7 +58,6 @@ func (v *APIVersion) newVersion(version string, date time.Time) { v.versionDate = date if IsPreviewStabilityLevel(version) { - v.versionDate = time.Now().AddDate(10, 0, 0) // set preview date to the future v.stabilityVersion = PreviewStabilityLevel } } @@ -119,7 +119,7 @@ func WithFullContent(contentType string, contentValue *openapi3.MediaType) Optio func DateFromVersion(version string) (time.Time, error) { if IsPreviewStabilityLevel(version) { - return time.Now(), nil + return time.Parse(dateFormat, previewDate) } return time.Parse(dateFormat, version) } diff --git a/tools/cli/internal/cli/split/split.go b/tools/cli/internal/cli/split/split.go index df6e697fab..575833e6a0 100644 --- a/tools/cli/internal/cli/split/split.go +++ b/tools/cli/internal/cli/split/split.go @@ -51,6 +51,9 @@ func (o *Opts) Run() error { } for _, version := range versions { + if version != "private-preview-charts-dashboards" { + continue + } filteredOAS, err := o.filter(specInfo.Spec, version) if err != nil { return err diff --git a/tools/cli/internal/openapi/filter/operations.go b/tools/cli/internal/openapi/filter/operations.go index b5f435fb0c..b31d3ca0d3 100644 --- a/tools/cli/internal/openapi/filter/operations.go +++ b/tools/cli/internal/openapi/filter/operations.go @@ -17,7 +17,7 @@ import ( "github.com/getkin/kin-openapi/openapi3" ) -// Filter: OperationsFilter is a filter that removes the x-xgen-owner-team extension from operations +// OperationsFilter is a filter that removes the x-xgen-owner-team extension from operations // and moves the x-sunset extension to the operation level. type OperationsFilter struct { oas *openapi3.T diff --git a/tools/cli/internal/openapi/filter/versioning.go b/tools/cli/internal/openapi/filter/versioning.go index 67cb3322ca..223e92ceeb 100644 --- a/tools/cli/internal/openapi/filter/versioning.go +++ b/tools/cli/internal/openapi/filter/versioning.go @@ -11,6 +11,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + package filter import ( @@ -21,7 +22,7 @@ import ( "github.com/mongodb/openapi/tools/cli/internal/apiversion" ) -// Filter: VersioningFilter is a filter that modifies the OpenAPI spec by removing operations and responses +// VersioningFilter is a filter that modifies the OpenAPI spec by removing operations and responses // that are not supported by the target version. type VersioningFilter struct { oas *openapi3.T From 2e5ce621751202cc42ce1cf3661925aed327d0e4 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Fri, 28 Feb 2025 16:52:01 +0000 Subject: [PATCH 2/4] Update split.go --- tools/cli/internal/cli/split/split.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/cli/internal/cli/split/split.go b/tools/cli/internal/cli/split/split.go index 575833e6a0..df6e697fab 100644 --- a/tools/cli/internal/cli/split/split.go +++ b/tools/cli/internal/cli/split/split.go @@ -51,9 +51,6 @@ func (o *Opts) Run() error { } for _, version := range versions { - if version != "private-preview-charts-dashboards" { - continue - } filteredOAS, err := o.filter(specInfo.Spec, version) if err != nil { return err From 20b54d30d7a59e08c5cf8ac845052e9f133aeac7 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Fri, 28 Feb 2025 16:59:43 +0000 Subject: [PATCH 3/4] Update version_test.go --- tools/cli/internal/apiversion/version_test.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/cli/internal/apiversion/version_test.go b/tools/cli/internal/apiversion/version_test.go index d5e3649c8b..cbe9bd5f47 100644 --- a/tools/cli/internal/apiversion/version_test.go +++ b/tools/cli/internal/apiversion/version_test.go @@ -312,6 +312,18 @@ func TestApiVersion_GreaterThan(t *testing.T) { version2: "2023-01-02", expected: false, }, + { + name: "not greater", + version1: "preview", + version2: "preview", + expected: false, + }, + { + name: "not greater", + version1: "private-preview-charts-dashboards", + version2: "private-preview-charts-dashboards", + expected: false, + }, } for _, tt := range testCases { From 0a2b43595bc6704aa0e8643f64cf17ed1afa0815 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Fri, 28 Feb 2025 17:03:55 +0000 Subject: [PATCH 4/4] revert changes on the comments --- tools/cli/internal/openapi/filter/operations.go | 2 +- tools/cli/internal/openapi/filter/versioning.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/cli/internal/openapi/filter/operations.go b/tools/cli/internal/openapi/filter/operations.go index b31d3ca0d3..b5f435fb0c 100644 --- a/tools/cli/internal/openapi/filter/operations.go +++ b/tools/cli/internal/openapi/filter/operations.go @@ -17,7 +17,7 @@ import ( "github.com/getkin/kin-openapi/openapi3" ) -// OperationsFilter is a filter that removes the x-xgen-owner-team extension from operations +// Filter: OperationsFilter is a filter that removes the x-xgen-owner-team extension from operations // and moves the x-sunset extension to the operation level. type OperationsFilter struct { oas *openapi3.T diff --git a/tools/cli/internal/openapi/filter/versioning.go b/tools/cli/internal/openapi/filter/versioning.go index 223e92ceeb..8a06b6299c 100644 --- a/tools/cli/internal/openapi/filter/versioning.go +++ b/tools/cli/internal/openapi/filter/versioning.go @@ -22,7 +22,7 @@ import ( "github.com/mongodb/openapi/tools/cli/internal/apiversion" ) -// VersioningFilter is a filter that modifies the OpenAPI spec by removing operations and responses +// Filter: VersioningFilter is a filter that modifies the OpenAPI spec by removing operations and responses // that are not supported by the target version. type VersioningFilter struct { oas *openapi3.T