Skip to content

Add integration code owner workflow#1460

Open
aaronpowell wants to merge 2 commits into
mainfrom
aaronpowell-code-owner-workflows
Open

Add integration code owner workflow#1460
aaronpowell wants to merge 2 commits into
mainfrom
aaronpowell-code-owner-workflows

Conversation

@aaronpowell

Copy link
Copy Markdown
Member

N/A (no linked issue provided)

Adds PR-based automation for new integration submissions so code owner assignment is only handled after a PR is ready for review. The workflow detects newly added integration packages and example folders from the PR, prompts the author with /codeowner-accept and /codeowner-reject, confirms the response, and opens or updates a separate PR to add the matching CODEOWNERS entries when ownership is accepted.

The update-codeowners.mjs helper centralizes the CODEOWNERS mutation so the workflow can reuse the repository's existing pattern safely, including conflict detection and support for multiple example folders or package IDs. It also tags @CommunityToolkit/aspire-owners when the accepting author is not currently an org member.

PR Checklist

  • Created a feature/dev branch in your fork (vs. submitting directly from a commit on main)
  • Based off latest main branch of toolkit
  • PR doesn't include merge commits (always rebase on top of our main, if needed)
  • New integration (N/A)
    • Docs are written (N/A)
    • Added description of major feature to project description for NuGet package (4000 total character limit, so don't push entire description over that) (N/A)
  • Tests for the changes have been added (for bug fixes / features) (if applicable) (N/A - workflow automation only)
  • Contains NO breaking changes
  • Every new API (including internal ones) has full XML docs
  • Code follows all style conventions

Other information

This intentionally uses pull_request_target plus a draft check so the prompt only appears on non-draft PRs and when a draft transitions to ready for review. The workflow derives integration metadata directly from PR file paths instead of requiring extra issue-template fields.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 8, 2026 04:52
@github-actions

github-actions Bot commented Jul 8, 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 -- 1460

Or

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

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 GitHub Actions automation to prompt new integration PR authors about becoming CODEOWNERS and, upon acceptance, opens/updates a separate PR that updates CODEOWNERS via a shared Node helper script.

Changes:

  • Introduces an integration-codeowner workflow that prompts on ready-for-review PRs and handles /codeowner-accept or /codeowner-reject issue comments.
  • Adds .github/scripts/update-codeowners.mjs to safely append CODEOWNERS entries with conflict detection and multi-folder/package support.
Show a summary per file
File Description
.github/workflows/integration-codeowner.yml Adds the PR prompt + comment-driven automation that creates/updates a CODEOWNERS PR.
.github/scripts/update-codeowners.mjs Implements deterministic CODEOWNERS mutation logic (validation + conflict detection + append block).

Review details

  • Files reviewed: 2/2 changed files
  • Comments generated: 3
  • Review effort level: Low

Comment thread .github/workflows/integration-codeowner.yml
Comment thread .github/workflows/integration-codeowner.yml
Comment thread .github/scripts/update-codeowners.mjs
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Complexity Health
CommunityToolkit.Aspire.Bitwarden.SecretManager 54% 38% 52
CommunityToolkit.Aspire.DuckDB.Api 99% 100% 13
CommunityToolkit.Aspire.DuckDB.NET.Data 67% 77% 32
CommunityToolkit.Aspire.GoFeatureFlag 100% 97% 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 56% 46% 26
CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder 85% 83% 18
CommunityToolkit.Aspire.Hosting.Azure.Extensions 64% 30% 27
CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager 59% 51% 777
CommunityToolkit.Aspire.Hosting.Bun 88% 69% 20
CommunityToolkit.Aspire.Hosting.Dapr 43% 25% 648
CommunityToolkit.Aspire.Hosting.DbGate 96% 62% 12
CommunityToolkit.Aspire.Hosting.Dbx 94% 59% 68
CommunityToolkit.Aspire.Hosting.Deno 95% 85% 24
CommunityToolkit.Aspire.Hosting.DuckDB 98% 90% 16
CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions 100% 94% 30
CommunityToolkit.Aspire.Hosting.Flagd 80% 100% 16
CommunityToolkit.Aspire.Hosting.Flyway 88% 100% 6
CommunityToolkit.Aspire.Hosting.GoFeatureFlag 80% 50% 24
CommunityToolkit.Aspire.Hosting.GoFeatureFlag.ApiService 100% 100% 3
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 92% 83% 190
CommunityToolkit.Aspire.Hosting.K3s 76% 58% 316
CommunityToolkit.Aspire.Hosting.k6 70% 10% 8
CommunityToolkit.Aspire.Hosting.k6.ApiService 64% 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.Logto 73% 67% 24
CommunityToolkit.Aspire.Hosting.MailPit 91% 100% 13
CommunityToolkit.Aspire.Hosting.McpInspector 85% 60% 100
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 88% 81% 18
CommunityToolkit.Aspire.Hosting.MySql.Extensions 94% 88% 44
CommunityToolkit.Aspire.Hosting.Ngrok 55% 43% 106
CommunityToolkit.Aspire.Hosting.Ollama 77% 67% 267
CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector 79% 70% 42
CommunityToolkit.Aspire.Hosting.PapercutSmtp 100% 100% 9
CommunityToolkit.Aspire.Hosting.Perl 85% 76% 745
CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions 91% 87% 54
CommunityToolkit.Aspire.Hosting.PowerShell 76% 59% 107
CommunityToolkit.Aspire.Hosting.Python.Extensions 46% 31% 44
CommunityToolkit.Aspire.Hosting.RavenDB 69% 49% 131
CommunityToolkit.Aspire.Hosting.RavenDB.ApiService 0% 0% 16
CommunityToolkit.Aspire.Hosting.Redis.Extensions 92% 68% 22
CommunityToolkit.Aspire.Hosting.Rust 96% 90% 13
CommunityToolkit.Aspire.Hosting.RustFs 83% 66% 108
CommunityToolkit.Aspire.Hosting.SeaweedFS 88% 80% 49
CommunityToolkit.Aspire.Hosting.Sftp 90% 62% 15
CommunityToolkit.Aspire.Hosting.Sftp.ApiService 94% 100% 10
CommunityToolkit.Aspire.Hosting.Solr 88% 100% 19
CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects 68% 59% 146
CommunityToolkit.Aspire.Hosting.Sqlite 88% 93% 25
CommunityToolkit.Aspire.Hosting.SqlServer.Extensions 86% 79% 48
CommunityToolkit.Aspire.Hosting.Squad 92% 79% 95
CommunityToolkit.Aspire.Hosting.Stripe 50% 17% 119
CommunityToolkit.Aspire.Hosting.SurrealDb 89% 74% 208
CommunityToolkit.Aspire.Hosting.SurrealDb.ApiService 85% 62% 236
CommunityToolkit.Aspire.Hosting.Umami 98% 75% 9
CommunityToolkit.Aspire.Hosting.Zitadel 97% 86% 31
CommunityToolkit.Aspire.KurrentDB 97% 95% 33
CommunityToolkit.Aspire.Logto.Client 53% 62% 38
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 71% 73% 117
CommunityToolkit.Aspire.Minio.Client 93% 87% 67
CommunityToolkit.Aspire.OllamaSharp 78% 74% 76
CommunityToolkit.Aspire.RavenDB.Client 89% 73% 87
CommunityToolkit.Aspire.SeaweedFS.Client 95% 86% 93
CommunityToolkit.Aspire.Sftp 83% 76% 54
CommunityToolkit.Aspire.Sqlite.Api 93% 93% 68
CommunityToolkit.Aspire.SurrealDb 87% 73% 40
SeaweedFS.ApiService 100% 100% 15
Summary 76% (11976 / 15841) 62% (3433 / 5549) 6634

@aaronpowell aaronpowell deployed to azure-artifacts July 8, 2026 05:23 — with GitHub Actions Active
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.

2 participants