Skip to content

Commit 3ec8065

Browse files
committed
chore: merge branch with main
2 parents eb5a8db + e73aa96 commit 3ec8065

35 files changed

+263
-66
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* @irvinesunday @darrelmiller @gavinbarron @millicentachieng @MaggieKimani1 @andrueastman @baywet
1+
* @microsoft/openapi-write

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "2.0.0-preview.15"
2+
".": "2.0.0-preview.16"
33
}

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## [2.0.0-preview.16](https://github.com/microsoft/OpenAPI.NET/compare/v2.0.0-preview.15...v2.0.0-preview.16) (2025-03-20)
4+
5+
6+
### Bug Fixes
7+
8+
* always serialize security schemes in components ([3aac661](https://github.com/microsoft/OpenAPI.NET/commit/3aac661ca2e8050136c423f2835fcdd3a9096482))
9+
* always serialize security schemes in components ([a765acf](https://github.com/microsoft/OpenAPI.NET/commit/a765acf380135694bbd4d1336bd4beddef6ef808))
10+
311
## [2.0.0-preview.15](https://github.com/microsoft/OpenAPI.NET/compare/v2.0.0-preview.14...v2.0.0-preview.15) (2025-03-18)
412

513

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<PackageProjectUrl>https://github.com/Microsoft/OpenAPI.NET</PackageProjectUrl>
1313
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
1414
<PackageTags>OpenAPI .NET</PackageTags>
15-
<Version>2.0.0-preview.15</Version>
15+
<Version>2.0.0-preview.16</Version>
1616
</PropertyGroup>
1717
<!-- https://github.com/clairernovotny/DeterministicBuilds#deterministic-builds -->
1818
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">

src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
</PackageReference>
3939
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
4040
<PackageReference Include="Microsoft.OData.Edm" Version="8.2.3" />
41-
<PackageReference Include="Microsoft.OpenApi.OData" Version="2.0.0-preview.10" />
41+
<PackageReference Include="Microsoft.OpenApi.OData" Version="2.0.0-preview.12" />
4242
<PackageReference Include="Microsoft.OpenApi.ApiManifest" Version="2.0.0-preview3" />
4343
<PackageReference Include="System.CommandLine.Hosting" Version="0.4.0-alpha.22272.1" />
4444
</ItemGroup>

src/Microsoft.OpenApi.Hidi/OpenApiService.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,10 @@ private static async Task<ReadResult> ParseOpenApiAsync(string openApiFile, bool
438438
var sb = new StringBuilder();
439439
document.SerializeAsV3(new OpenApiYamlWriter(new StringWriter(sb)));
440440

441-
var doc = OpenApiDocument.Parse(sb.ToString(), format).Document;
441+
var settings = new OpenApiReaderSettings();
442+
settings.AddYamlReader();
443+
444+
var doc = OpenApiDocument.Parse(sb.ToString(), format, settings).Document;
442445

443446
return doc;
444447
}

src/Microsoft.OpenApi.Workbench/Microsoft.OpenApi.Workbench.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFramework>net8.0-windows</TargetFramework>
44
<OutputType>WinExe</OutputType>
@@ -9,7 +9,7 @@
99
<NoWarn>NU1903</NoWarn>
1010
</PropertyGroup>
1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.13.2">
12+
<PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.13.61">
1313
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1414
<PrivateAssets>all</PrivateAssets>
1515
</PackageReference>

src/Microsoft.OpenApi/Attributes/TrimmingAttributes.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

4-
#nullable enable
5-
64
// This collection of attribute definitions are helpers for accessing trim-related attributes in
75
// projects targeting .NET 6 or lower. Since the trimmer queries for these attributes by name, having
86
// these attributes source included is sufficient for the trimmer to recognize them. For more information

src/Microsoft.OpenApi/Extensions/OpenApiTypeMapper.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ namespace Microsoft.OpenApi.Extensions
1414
/// </summary>
1515
public static class OpenApiTypeMapper
1616
{
17-
#nullable enable
1817
/// <summary>
1918
/// Maps a JsonSchema data type to an identifier.
2019
/// </summary>
@@ -75,8 +74,6 @@ internal static string ToSingleIdentifier(this JsonSchemaType schemaType)
7574
return schemaType.ToIdentifiersInternal().Single();
7675
}
7776

78-
#nullable restore
79-
8077
/// <summary>
8178
/// Converts a schema type's identifier into the enum equivalent
8279
/// </summary>

src/Microsoft.OpenApi/Models/OpenApiComponents.cs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Linq;
67
using Microsoft.OpenApi.Interfaces;
78
using Microsoft.OpenApi.Models.Interfaces;
89
using Microsoft.OpenApi.Models.References;
910
using Microsoft.OpenApi.Writers;
1011

11-
#nullable enable
12-
1312
namespace Microsoft.OpenApi.Models
1413
{
1514
/// <summary>
@@ -110,7 +109,7 @@ public void SerializeAsV31(IOpenApiWriter writer)
110109
// however if they have cycles, then we will need a component rendered
111110
if (writer.GetSettings().InlineLocalReferences)
112111
{
113-
RenderComponents(writer, (writer, element) => element.SerializeAsV31(writer));
112+
RenderComponents(writer, (writer, element) => element.SerializeAsV31(writer), OpenApiSpecVersion.OpenApi3_1);
114113
return;
115114
}
116115

@@ -148,7 +147,7 @@ public void SerializeAsV3(IOpenApiWriter writer)
148147
// however if they have cycles, then we will need a component rendered
149148
if (writer.GetSettings().InlineLocalReferences)
150149
{
151-
RenderComponents(writer, (writer, element) => element.SerializeAsV3(writer));
150+
RenderComponents(writer, (writer, element) => element.SerializeAsV3(writer), OpenApiSpecVersion.OpenApi3_0);
152151
return;
153152
}
154153

@@ -315,14 +314,27 @@ private void SerializeInternal(IOpenApiWriter writer, OpenApiSpecVersion version
315314
writer.WriteEndObject();
316315
}
317316

318-
private void RenderComponents(IOpenApiWriter writer, Action<IOpenApiWriter, IOpenApiSerializable> callback)
317+
private void RenderComponents(IOpenApiWriter writer, Action<IOpenApiWriter, IOpenApiSerializable> callback, OpenApiSpecVersion version)
319318
{
320319
var loops = writer.GetSettings().LoopDetector.Loops;
321320
writer.WriteStartObject();
322321
if (loops.TryGetValue(typeof(OpenApiSchema), out var schemas))
323322
{
324323
writer.WriteOptionalMap(OpenApiConstants.Schemas, Schemas, callback);
325324
}
325+
// always render security schemes as inlining of security requirement objects is not allowed in the spec
326+
if (SecuritySchemes is not null && SecuritySchemes.Any())
327+
{
328+
writer.WriteOptionalMap(
329+
OpenApiConstants.SecuritySchemes,
330+
SecuritySchemes,
331+
(w, key, component) =>
332+
{
333+
if (version is OpenApiSpecVersion.OpenApi3_1)
334+
component.SerializeAsV31(writer);
335+
component.SerializeAsV3(writer);
336+
});
337+
}
326338
writer.WriteEndObject();
327339
}
328340

0 commit comments

Comments
 (0)