diff --git a/.github/workflows/validate-descriptions.yml b/.github/workflows/validate-descriptions.yml index a9a0d36d..f5b9f226 100644 --- a/.github/workflows/validate-descriptions.yml +++ b/.github/workflows/validate-descriptions.yml @@ -33,4 +33,4 @@ jobs: - name: Validate description with redocly uses: fluximus-prime/redocly-cli-github-action@v1 with: - args: 'lint test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/${{ matrix.descriptions }} --skip-rule operation-4xx-response --skip-rule no-server-trailing-slash --skip-rule no-unused-components --skip-rule security-defined --skip-rule info-license-url --skip-rule info-license --skip-rule no-empty-servers --skip-rule operation-summary --skip-rule tag-description --max-problems 1000' \ No newline at end of file + args: 'lint test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/${{ matrix.descriptions }} --max-problems 1000 --config redocly.yaml' \ No newline at end of file diff --git a/.redocly.lint-ignore.yaml b/.redocly.lint-ignore.yaml deleted file mode 100644 index 8fd42493..00000000 --- a/.redocly.lint-ignore.yaml +++ /dev/null @@ -1,160 +0,0 @@ -# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API. -# Suppresses the error "The 'type' field must be defined when the 'nullable' field is used" per this comment https://github.com/Redocly/redocly-cli/issues/925#issuecomment-2355005587. -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.json: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.V3.1.json: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Empty.OpenApi.json: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Empty.OpenApi.V3.1.json: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.json: - no-server-example.com: - - '#/servers/0/url' - struct: - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.DocumentClass/properties/Document/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.DocumentTagRel/properties/Document/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.DocumentTagRel/properties/Tag/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library/properties/LibraryParent/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType/properties/MasterLibraryType/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType/properties/ParentLibraryTypes/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library/properties/Type/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library/properties/SourceFolder/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document/properties/Library/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document/properties/LastRevisionFile/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document/properties/SourceDocument/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Revision.Revision/properties/Document/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.App.DTO.RevisionDto/properties/Document/anyOf/1/nullable -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.V3.1.json: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.json: - struct: - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location/properties/City/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person/properties/HomeAddress/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person/properties/BestFriend/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.AirportLocation/allOf/1/properties/EmergencyAuthority/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport/properties/Location/anyOf/1/nullable - - >- - #/paths/~1GetNearestAirport(lat={lat},lon={lon})/get/responses/200/content/application~1json/schema/anyOf/1/nullable - - >- - #/paths/~1GetPersonWithMostFriends()/get/responses/200/content/application~1json/schema/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager/allOf/1/properties/BossOffice/anyOf/1/nullable - - >- - #/components/responses/GetFavoriteAirlineResponse/content/application~1json/schema/anyOf/1/nullable - - >- - #/paths/~1Me~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Hire/post/requestBody/content/application~1json/schema/properties/hire/anyOf/1/nullable - - >- - #/paths/~1NewComePeople~1{UserName}~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Hire/post/requestBody/content/application~1json/schema/properties/hire/anyOf/1/nullable - - >- - #/paths/~1People~1{UserName}~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Hire/post/requestBody/content/application~1json/schema/properties/hire/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Event/allOf/1/properties/OccursAt/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Flight/allOf/1/properties/Airline/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Flight/allOf/1/properties/From/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Flight/allOf/1/properties/To/anyOf/1/nullable -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.V3.1.yaml: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Basic.OpenApi.yaml: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Empty.OpenApi.V3.1.yaml: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Empty.OpenApi.yaml: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.V3.1.yaml: - no-server-example.com: - - '#/servers/0/url' -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/Multiple.Schema.OpenApi.yaml: - no-server-example.com: - - '#/servers/0/url' - struct: - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.DocumentClass/properties/Document/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.DocumentTagRel/properties/Document/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.DocumentTagRel/properties/Tag/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library/properties/LibraryParent/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType/properties/MasterLibraryType/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.LibraryType/properties/ParentLibraryTypes/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library/properties/Type/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Library.Library/properties/SourceFolder/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document/properties/Library/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document/properties/LastRevisionFile/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Document.Document/properties/SourceDocument/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.BusinessLogic.Entities.Revision.Revision/properties/Document/anyOf/1/nullable - - >- - #/components/schemas/Siterra.Documents.App.DTO.RevisionDto/properties/Document/anyOf/1/nullable -test/Microsoft.OpenAPI.OData.Reader.Tests/Resources/TripService.OpenApi.yaml: - struct: - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location/properties/City/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person/properties/HomeAddress/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person/properties/BestFriend/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.AirportLocation/allOf/1/properties/EmergencyAuthority/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airport/properties/Location/anyOf/1/nullable - - >- - #/paths/~1GetNearestAirport(lat={lat},lon={lon})/get/responses/200/content/application~1json/schema/anyOf/1/nullable - - >- - #/paths/~1GetPersonWithMostFriends()/get/responses/200/content/application~1json/schema/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager/allOf/1/properties/BossOffice/anyOf/1/nullable - - >- - #/components/responses/GetFavoriteAirlineResponse/content/application~1json/schema/anyOf/1/nullable - - >- - #/paths/~1Me~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Hire/post/requestBody/content/application~1json/schema/properties/hire/anyOf/1/nullable - - >- - #/paths/~1NewComePeople~1{UserName}~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Hire/post/requestBody/content/application~1json/schema/properties/hire/anyOf/1/nullable - - >- - #/paths/~1People~1{UserName}~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Manager~1Microsoft.OData.Service.Sample.TrippinInMemory.Models.Hire/post/requestBody/content/application~1json/schema/properties/hire/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Event/allOf/1/properties/OccursAt/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Flight/allOf/1/properties/Airline/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Flight/allOf/1/properties/From/anyOf/1/nullable - - >- - #/components/schemas/Microsoft.OData.Service.Sample.TrippinInMemory.Models.Flight/allOf/1/properties/To/anyOf/1/nullable diff --git a/redocly.yaml b/redocly.yaml new file mode 100644 index 00000000..423d5aeb --- /dev/null +++ b/redocly.yaml @@ -0,0 +1,15 @@ +extends: + - recommended + +rules: + operation-4xx-response: off + nullable-type-sibling: off + no-server-example.com: off + no-server-trailing-slash: off + no-unused-components: off + security-defined: off + info-license-url: off + info-license: off + no-empty-servers: off + operation-summary: off + tag-description: off \ No newline at end of file