From 3cdc5b63fef9a7840d6552748a382363a948718b Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Mon, 10 Aug 2020 18:34:33 -0400 Subject: [PATCH 1/8] Fix GET /Administration/Logs response type [APIDeploy] --- build/Version.props | 2 +- .../Controllers/AdministrationController.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Version.props b/build/Version.props index 7cc39eb49a..57d90c627f 100644 --- a/build/Version.props +++ b/build/Version.props @@ -4,7 +4,7 @@ 4.4.4 2.0.0 - 7.2.1 + 7.2.2 8.2.0 5.2.3 0.4.0 diff --git a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs index d689416fa9..bb68d12467 100644 --- a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs +++ b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs @@ -374,7 +374,7 @@ namespace Tgstation.Server.Host.Controllers /// An IO error occurred while downloading. [HttpGet(Routes.Logs + "/{*path}")] [TgsAuthorize(AdministrationRights.DownloadLogs)] - [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(typeof(LogFile), 200)] [ProducesResponseType(typeof(ErrorMessage), 409)] public async Task GetLog(string path, CancellationToken cancellationToken) { From 5ef12329be56164fa49b0536704a037bcc14f590 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 11 Aug 2020 13:09:36 -0400 Subject: [PATCH 2/8] Fix discord mention sanitization --- .../Components/Chat/Providers/DiscordProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs index a660d927d7..1fc24f9760 100644 --- a/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs +++ b/src/Tgstation.Server.Host/Components/Chat/Providers/DiscordProvider.cs @@ -57,7 +57,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers /// /// The mention provided by the Discord library /// The normalized mention - static string NormalizeMentions(string fromDiscord) => fromDiscord.Replace(" fromDiscord.Replace("<@!", "<@", StringComparison.Ordinal); /// /// Construct a From 719b64bffa456ed1ff91de8b6a5a4c6be60e7193 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 11 Aug 2020 13:09:53 -0400 Subject: [PATCH 3/8] Version bump to 4.4.5 --- build/Version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Version.props b/build/Version.props index 57d90c627f..e1941bbc85 100644 --- a/build/Version.props +++ b/build/Version.props @@ -2,7 +2,7 @@ - 4.4.4 + 4.4.5 2.0.0 7.2.2 8.2.0 From 2c40ae4cc4d036e37aa182d19deae24f326791f6 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 11 Aug 2020 13:50:57 -0400 Subject: [PATCH 4/8] General package update --- .../.config/dotnet-tools.json | 4 ++-- .../Tgstation.Server.Host.csproj | 20 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Tgstation.Server.Host/.config/dotnet-tools.json b/src/Tgstation.Server.Host/.config/dotnet-tools.json index d6051bacfe..79d13146a3 100644 --- a/src/Tgstation.Server.Host/.config/dotnet-tools.json +++ b/src/Tgstation.Server.Host/.config/dotnet-tools.json @@ -3,10 +3,10 @@ "isRoot": true, "tools": { "dotnet-ef": { - "version": "3.1.5", + "version": "3.1.7", "commands": [ "dotnet-ef" ] } } -} \ No newline at end of file +} diff --git a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj index ba065d5aa6..cad2b4d249 100644 --- a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj +++ b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj @@ -48,20 +48,20 @@ - - - + + + all runtime; build; native; contentfiles; analyzers - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -81,12 +81,12 @@ - + - + From be4bf16bbbd7873fe3dc36f39a5fea5b044234c2 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 11 Aug 2020 13:53:58 -0400 Subject: [PATCH 5/8] Add OpenAPI license and contact --- .../Core/SwaggerConfiguration.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs b/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs index 674ba28987..9eabef29e9 100644 --- a/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs +++ b/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs @@ -128,7 +128,17 @@ namespace Tgstation.Server.Host.Core new OpenApiInfo { Title = "TGS API", - Version = ApiHeaders.Version.Semver().ToString() + Version = ApiHeaders.Version.Semver().ToString(), + License = new OpenApiLicense + { + Name = "AGPL-3.0", + Url = new Uri("https://github.com/tgstation/tgstation-server/blob/dev/LICENSE") + }, + Contact = new OpenApiContact + { + Name = "/tg/station 13", + Url = new Uri("https://github.com/tgstation") + } }); // Important to do this before applying our own filters From a78ea4341782403e5e3961146247962009a8a8e3 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 11 Aug 2020 14:00:12 -0400 Subject: [PATCH 6/8] Add OpenAPI description --- src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs b/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs index 9eabef29e9..d46bceadb9 100644 --- a/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs +++ b/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs @@ -138,7 +138,8 @@ namespace Tgstation.Server.Host.Core { Name = "/tg/station 13", Url = new Uri("https://github.com/tgstation") - } + }, + Description = "A production scale tool for BYOND server management" }); // Important to do this before applying our own filters From 14e86942f152b4729afda29af825714bfa3ba10a Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 11 Aug 2020 14:30:12 -0400 Subject: [PATCH 7/8] Fix nullable reference issue in API spec API to 7.2.3 --- build/Version.props | 2 +- .../Core/SwaggerConfiguration.cs | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/build/Version.props b/build/Version.props index e1941bbc85..dc9f5daceb 100644 --- a/build/Version.props +++ b/build/Version.props @@ -4,7 +4,7 @@ 4.4.5 2.0.0 - 7.2.2 + 7.2.3 8.2.0 5.2.3 0.4.0 diff --git a/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs b/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs index d46bceadb9..2266298ef6 100644 --- a/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs +++ b/src/Tgstation.Server.Host/Core/SwaggerConfiguration.cs @@ -147,6 +147,9 @@ namespace Tgstation.Server.Host.Core swaggerGenOptions.IncludeXmlComments(assemblyDocumentationPath); swaggerGenOptions.IncludeXmlComments(apiDocumentationPath); + // nullable stuff + swaggerGenOptions.UseAllOfToExtendReferenceSchemas(); + swaggerGenOptions.OperationFilter(); swaggerGenOptions.DocumentFilter(); swaggerGenOptions.SchemaFilter(); @@ -348,15 +351,18 @@ namespace Tgstation.Server.Host.Core // Nothing is required schema.Required.Clear(); - if (!schema.Enum?.Any() ?? false) - return; - // Could be nullable type, make sure to get the right one - Type enumType = context.Type.IsConstructedGenericType + Type nonNullableType = context.Type.IsConstructedGenericType ? context.Type.GenericTypeArguments.First() : context.Type; - OpenApiEnumVarNamesExtension.Apply(schema, enumType); + if (nonNullableType != context.Type) + schema.Nullable = true; + + if (!schema.Enum?.Any() ?? false) + return; + + OpenApiEnumVarNamesExtension.Apply(schema, nonNullableType); } } }