Skip to content

Add polyglot exports for mailpit#1184

Merged
aaronpowell merged 5 commits into
mainfrom
dapine/polyglot-export-mailpit
Apr 1, 2026
Merged

Add polyglot exports for mailpit#1184
aaronpowell merged 5 commits into
mainfrom
dapine/polyglot-export-mailpit

Conversation

@IEvangelist

Copy link
Copy Markdown
Contributor

Adds AspireExport coverage and a matching TypeScript validation apphost for mailpit.

Copilot AI review requested due to automatic review settings March 18, 2026 15:44
@github-actions

github-actions Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.sh | bash -s -- 1184

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.ps1) } 1184"

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds polyglot AspireExport coverage for the MailPit hosting integration, plus a new TypeScript ValidationAppHost under playground/ to validate the generated exports.

Changes:

  • Add [AspireExport] attributes to MailPit hosting extension methods and expose MailPit resource properties for polyglot consumption.
  • Introduce a TypeScript ValidationAppHost (tsconfig/package/apphost/runsettings/.aspire settings) for MailPit polyglot export validation.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/CommunityToolkit.Aspire.Hosting.MailPit/MailPitHostingExtension.cs Adds AspireExport annotations to hosting extension methods.
src/CommunityToolkit.Aspire.Hosting.MailPit/MailPitContainerResource.cs Exposes resource properties via AspireExport for polyglot access.
playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.MailPit/ValidationAppHost/tsconfig.json TypeScript configuration for the validation apphost.
playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.MailPit/ValidationAppHost/package.json Node package manifest/scripts for the validation apphost.
playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.MailPit/ValidationAppHost/package-lock.json Lockfile for reproducible installs.
playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.MailPit/ValidationAppHost/apphost.ts Validation script exercising exported APIs and exposed properties.
playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.MailPit/ValidationAppHost/apphost.run.json Run profile settings for the validation apphost.
playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.MailPit/ValidationAppHost/.aspire/settings.json Aspire polyglot settings pointing at MailPit package and apphost entrypoint.
Files not reviewed (1)
  • playground/polyglot/TypeScript/CommunityToolkit.Aspire.Hosting.MailPit/ValidationAppHost/package-lock.json: Language not supported

You can also share your feedback on Copilot code review. Take the survey.

[ResourceName] string name,
int? httpPort = null,
int? smtpPort = null)
{
Comment on lines +1 to 4
#pragma warning disable ASPIREATS001 // AspireExport is experimental

namespace Aspire.Hosting.ApplicationModel;

"type": "module",
"scripts": {
"start": "aspire run",
"build": "tsc",
Comment on lines +4 to 6
#pragma warning disable ASPIREATS001 // AspireExport is experimental

namespace Aspire.Hosting;
IEvangelist and others added 4 commits March 30, 2026 09:50
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@IEvangelist IEvangelist force-pushed the dapine/polyglot-export-mailpit branch from 5e31c6e to e4d650c Compare March 30, 2026 15:43
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Complexity Health
CommunityToolkit.Aspire.GoFeatureFlag 100% 100% 44
CommunityToolkit.Aspire.Hosting.ActiveMQ 88% 48% 95
CommunityToolkit.Aspire.Hosting.ActiveMQ.MassTransit 100% 100% 15
CommunityToolkit.Aspire.Hosting.Adminer 89% 70% 20
CommunityToolkit.Aspire.Hosting.Azure.Dapr 28% 5% 38
CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis 60% 50% 20
CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder 100% 100% 11
CommunityToolkit.Aspire.Hosting.Azure.Extensions 64% 30% 27
CommunityToolkit.Aspire.Hosting.Bun 96% 83% 14
CommunityToolkit.Aspire.Hosting.Dapr 47% 26% 557
CommunityToolkit.Aspire.Hosting.DbGate 96% 62% 12
CommunityToolkit.Aspire.Hosting.Deno 98% 85% 22
CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions 100% 94% 30
CommunityToolkit.Aspire.Hosting.Flagd 79% 100% 16
CommunityToolkit.Aspire.Hosting.Flyway 88% 100% 6
CommunityToolkit.Aspire.Hosting.GoFeatureFlag 98% 73% 18
CommunityToolkit.Aspire.Hosting.GoFeatureFlag.ApiService 100% 100% 3
CommunityToolkit.Aspire.Hosting.Golang 59% 46% 45
CommunityToolkit.Aspire.Hosting.Java 86% 75% 207
CommunityToolkit.Aspire.Hosting.Java.ApiApp 65% 50% 11
CommunityToolkit.Aspire.Hosting.Java.WebApp 25% 18% 59
CommunityToolkit.Aspire.Hosting.JavaScript.Extensions 97% 83% 158
CommunityToolkit.Aspire.Hosting.k6 70% 10% 8
CommunityToolkit.Aspire.Hosting.k6.ApiService 61% 67% 13
CommunityToolkit.Aspire.Hosting.Keycloak.Extensions 100% 100% 11
CommunityToolkit.Aspire.Hosting.KurrentDB 86% 88% 19
CommunityToolkit.Aspire.Hosting.LavinMQ 90% 83% 18
CommunityToolkit.Aspire.Hosting.LavinMQ.MassTransit 100% 100% 15
CommunityToolkit.Aspire.Hosting.MailPit 91% 100% 13
CommunityToolkit.Aspire.Hosting.McpInspector 88% 60% 99
CommunityToolkit.Aspire.Hosting.McpInspector.McpServer 89% 100% 2
CommunityToolkit.Aspire.Hosting.Meilisearch 95% 85% 30
CommunityToolkit.Aspire.Hosting.Meilisearch.ApiService 82% 100% 15
CommunityToolkit.Aspire.Hosting.Minio 99% 91% 32
CommunityToolkit.Aspire.Hosting.Minio.ApiService 98% 92% 15
CommunityToolkit.Aspire.Hosting.MongoDB.Extensions 95% 90% 10
CommunityToolkit.Aspire.Hosting.MySql.Extensions 98% 93% 37
CommunityToolkit.Aspire.Hosting.Ngrok 48% 32% 96
CommunityToolkit.Aspire.Hosting.Ollama 77% 67% 267
CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector 79% 70% 42
CommunityToolkit.Aspire.Hosting.PapercutSmtp 100% 100% 9
CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions 98% 91% 43
CommunityToolkit.Aspire.Hosting.PowerShell 75% 53% 91
CommunityToolkit.Aspire.Hosting.Python.Extensions 46% 31% 44
CommunityToolkit.Aspire.Hosting.RavenDB 63% 46% 118
CommunityToolkit.Aspire.Hosting.RavenDB.ApiService 21% 33% 16
CommunityToolkit.Aspire.Hosting.Redis.Extensions 100% 71% 14
CommunityToolkit.Aspire.Hosting.Rust 94% 83% 8
CommunityToolkit.Aspire.Hosting.Sftp 86% 70% 16
CommunityToolkit.Aspire.Hosting.Sftp.ApiService 94% 100% 10
CommunityToolkit.Aspire.Hosting.Solr 88% 100% 19
CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects 70% 62% 141
CommunityToolkit.Aspire.Hosting.Sqlite 90% 93% 24
CommunityToolkit.Aspire.Hosting.SqlServer.Extensions 98% 93% 37
CommunityToolkit.Aspire.Hosting.Stripe 50% 17% 119
CommunityToolkit.Aspire.Hosting.SurrealDb 71% 54% 210
CommunityToolkit.Aspire.Hosting.SurrealDb.ApiService 81% 52% 299
CommunityToolkit.Aspire.Hosting.Umami 98% 75% 9
CommunityToolkit.Aspire.Hosting.Zitadel 97% 86% 31
CommunityToolkit.Aspire.KurrentDB 97% 95% 33
CommunityToolkit.Aspire.MassTransit.RabbitMQ 100% 100% 24
CommunityToolkit.Aspire.Meilisearch 97% 96% 38
CommunityToolkit.Aspire.Microsoft.Data.Sqlite 94% 85% 26
CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite 68% 67% 117
CommunityToolkit.Aspire.Minio.Client 93% 87% 67
CommunityToolkit.Aspire.OllamaSharp 78% 74% 76
CommunityToolkit.Aspire.RavenDB.Client 98% 78% 87
CommunityToolkit.Aspire.Sftp 94% 94% 54
CommunityToolkit.Aspire.Sqlite.Api 93% 90% 68
CommunityToolkit.Aspire.SurrealDb 99% 85% 39
Summary 75% (6851 / 9100) 58% (1937 / 3347) 4057

Minimum allowed line rate is 60%

@aaronpowell aaronpowell merged commit 2c04d88 into main Apr 1, 2026
353 of 362 checks passed
@aaronpowell aaronpowell deleted the dapine/polyglot-export-mailpit branch April 1, 2026 00:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants