From e02e1d443ab38c37468d6a78e29e56aad15a93c2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 05:07:29 +0000 Subject: [PATCH 1/4] Initial plan From 120d3339a33db3def78e2d858044592abc5d99c1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 05:33:31 +0000 Subject: [PATCH 2/4] Add deployed compute resources and endpoints to pipeline deployment summary For both Azure Container Apps and Azure App Service deployments, the pipeline summary now includes each compute resource name and its public endpoint URL (or "No public endpoints" if none are configured). This makes it immediately visible to users whether their services are publicly accessible after deployment. Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .../AzureContainerAppResource.cs | 2 ++ .../AzureAppServiceWebSiteResource.cs | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs index 40e5dc5f26d..c4d222377db 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs +++ b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs @@ -61,10 +61,12 @@ public AzureContainerAppResource(string name, Action e.IsExternal); + var printResourceSummary = new PipelineStep { Name = $"print-{targetResource.Name}-summary", @@ -61,8 +63,18 @@ public AzureAppServiceWebSiteResource(string name, Action Date: Fri, 6 Feb 2026 05:45:47 +0000 Subject: [PATCH 3/4] Remove emoji from summary keys and add Docker Compose endpoint summary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the emoji prefix (🖥️) from pipeline summary keys in AzureContainerAppResource and AzureAppServiceWebSiteResource. Add ctx.Summary.Add() calls to DockerComposeServiceResource.PrintEndpointsAsync() so Docker Compose deployments also show compute resources and their endpoints (or "No public endpoints") in the deployment summary. Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .../AzureContainerAppResource.cs | 4 ++-- .../AzureAppServiceWebSiteResource.cs | 4 ++-- src/Aspire.Hosting.Docker/DockerComposeServiceResource.cs | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs index c4d222377db..b7f9cc9c184 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs +++ b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs @@ -61,12 +61,12 @@ public AzureContainerAppResource(string name, Action $"[{e}]({e})")); context.ReportingStep.Log(LogLevel.Information, $"Successfully deployed **{TargetResource.Name}** to {endpointList}.", enableMarkdown: true); + context.Summary.Add(TargetResource.Name, string.Join(", ", endpoints)); } else { @@ -353,6 +355,7 @@ private async Task PrintEndpointsAsync(PipelineStepContext context, DockerCompos context.ReportingStep.Log(LogLevel.Information, $"Successfully deployed **{TargetResource.Name}** to Docker Compose environment **{environment.Name}**.", enableMarkdown: true); + context.Summary.Add(TargetResource.Name, "No public endpoints"); } } From dbb2fdbad48d8bfa0ca7041a896a082d461c74f6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 6 Feb 2026 16:29:49 +0000 Subject: [PATCH 4/4] Address PR review feedback: move endpoint check inside step lambda and simplify App Service Move the anyPublicEndpoints check inside the step Action lambda in AzureContainerAppResource so endpoints are evaluated at execution time, not step creation time (addresses @eerhardt's feedback). For AzureAppServiceWebSiteResource, remove the conditional entirely since App Service always has a public endpoint at its .azurewebsites.net URL. This restores the original always-show-URL behavior, avoids unnecessary async resolution when there are no public endpoints, and addresses both @eerhardt's and Copilot code review's feedback. Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com> --- .../AzureContainerAppResource.cs | 9 +------- .../AzureAppServiceWebSiteResource.cs | 22 +++---------------- 2 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs index b7f9cc9c184..b310485b85e 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs +++ b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppResource.cs @@ -39,13 +39,6 @@ public AzureContainerAppResource(string name, Action(); - if (!targetResource.TryGetEndpoints(out var endpoints)) - { - endpoints = []; - } - - var anyPublicEndpoints = endpoints.Any(e => e.IsExternal); - var printResourceSummary = new PipelineStep { Name = $"print-{targetResource.Name}-summary", @@ -56,7 +49,7 @@ public AzureContainerAppResource(string name, Action e.IsExternal)) { var endpoint = $"https://{targetResource.Name.ToLowerInvariant()}.{domainValue}"; diff --git a/src/Aspire.Hosting.Azure.AppService/AzureAppServiceWebSiteResource.cs b/src/Aspire.Hosting.Azure.AppService/AzureAppServiceWebSiteResource.cs index d75258421ea..c71e4f3312e 100644 --- a/src/Aspire.Hosting.Azure.AppService/AzureAppServiceWebSiteResource.cs +++ b/src/Aspire.Hosting.Azure.AppService/AzureAppServiceWebSiteResource.cs @@ -39,13 +39,6 @@ public AzureAppServiceWebSiteResource(string name, Action(); - if (!targetResource.TryGetEndpoints(out var endpoints)) - { - endpoints = []; - } - - var anyPublicEndpoints = endpoints.Any(e => e.IsExternal); - var printResourceSummary = new PipelineStep { Name = $"print-{targetResource.Name}-summary", @@ -63,18 +56,9 @@ public AzureAppServiceWebSiteResource(string name, Action