Skip to content

Port CI analysis Copilot skill and default it to aspnetcore#65464

Merged
wtgodbe merged 3 commits into
mainfrom
copilot/bring-ci-analysis-to-aspnetcore
Feb 18, 2026
Merged

Port CI analysis Copilot skill and default it to aspnetcore#65464
wtgodbe merged 3 commits into
mainfrom
copilot/bring-ci-analysis-to-aspnetcore

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 18, 2026

  • You've read the Contributor Guide and Code of Conduct.
  • You've included unit or integration tests for your change, where applicable.
  • You've included inline docs for your change, where applicable.
  • There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.

Bring runtime ci-analysis skill to aspnetcore defaults

Description

This ports the ci-analysis Copilot skill from dotnet/runtime into this repo and adjusts the default experience to target dotnet/aspnetcore out of the box.

  • Skill import

    • Added .github/skills/ci-analysis/ with:
      • SKILL.md
      • scripts/Get-CIStatus.ps1
      • references/* docs used by the skill
  • AspNetCore-first defaults (explicit modifications)

    • Updated default repository references from dotnet/runtime to dotnet/aspnetcore in:
      • SKILL.md quick-start + parameter table
      • scripts/Get-CIStatus.ps1 parameter defaults/help text/examples
      • references/sql-tracking.md SQL default repo example
  • Review-feedback updates for aspnetcore-specific guidance

    • Replaced ActiveIssue guidance with SkipOnHelix and QuarantinedTest in SKILL.md
    • Updated references/azdo-helix-reference.md to aspnetcore pipeline IDs/names:
      • 83 - aspnetcore-ci
      • 86 - aspnetcore-quarantined-pr
      • 87 - aspnetcore-components-e2e
      • 318 - aspnetcore-template-tests-pr
    • Updated area owners link to https://github.com/dotnet/aspnetcore/blob/main/docs/area-owners.md
    • Updated Azure CLI YAML example to https://github.com/dotnet/aspnetcore/blob/main/.azure/pipelines/ci-public.yml
  • Behavioral impact

    • Invoking the skill/script without -Repository now analyzes aspnetcore PRs/builds by default; runtime/sdk/roslyn remain supported via explicit -Repository.
# Before
[string]$Repository = "dotnet/runtime"

# After
[string]$Repository = "dotnet/aspnetcore"

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: wtgodbe <14283640+wtgodbe@users.noreply.github.com>
Copilot AI changed the title [WIP] Bring CI analysis skill to ASP.NET Core Port CI analysis Copilot skill and default it to aspnetcore Feb 18, 2026
Copilot AI requested a review from wtgodbe February 18, 2026 19:30
@github-actions github-actions Bot added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Feb 18, 2026
Copy link
Copy Markdown
Member

@wtgodbe wtgodbe left a comment

Choose a reason for hiding this comment

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

Please make the requested changes to reference aspnetcore rather than runtime

Comment thread .github/skills/ci-analysis/SKILL.md Outdated
Comment thread .github/skills/ci-analysis/references/azdo-helix-reference.md Outdated
Comment thread .github/skills/ci-analysis/references/azdo-helix-reference.md Outdated
Comment thread .github/skills/ci-analysis/references/azure-cli.md Outdated
Co-authored-by: wtgodbe <14283640+wtgodbe@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Feb 18, 2026

Please make the requested changes to reference aspnetcore rather than runtime

Updated in commit c7f2785. I applied the requested aspnetcore-focused reference changes across the reviewed skill docs.

Copilot AI requested a review from wtgodbe February 18, 2026 19:47
@wtgodbe wtgodbe marked this pull request as ready for review February 18, 2026 20:08
Copilot AI review requested due to automatic review settings February 18, 2026 20:08
@wtgodbe wtgodbe requested a review from a team as a code owner February 18, 2026 20:08
@wtgodbe wtgodbe merged commit 74725c1 into main Feb 18, 2026
13 checks passed
@wtgodbe wtgodbe deleted the copilot/bring-ci-analysis-to-aspnetcore branch February 18, 2026 20:08
@dotnet-policy-service dotnet-policy-service Bot added this to the 11.0-preview2 milestone Feb 18, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Ports the ci-analysis Copilot skill into aspnetcore and updates defaults/documentation so CI triage targets dotnet/aspnetcore out of the box.

Changes:

  • Added the Get-CIStatus.ps1 CI triage script (AzDO + Helix + optional known-issue correlation) with aspnetcore-first defaults.
  • Added skill documentation (SKILL.md) describing usage patterns and recommendations.
  • Added reference guides covering investigation workflows (SQL tracking, manual investigation, Helix artifacts, Azure CLI, build progression, etc.).

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
.github/skills/ci-analysis/scripts/Get-CIStatus.ps1 Adds the CI analysis script and sets default repository/org/project behavior.
.github/skills/ci-analysis/SKILL.md Documents how to use the skill/script and interpret outputs.
.github/skills/ci-analysis/references/azdo-helix-reference.md Reference info for AzDO/Helix concepts and aspnetcore pipeline IDs.
.github/skills/ci-analysis/references/azure-cli.md Azure CLI fallback guidance for deeper AzDO investigation.
.github/skills/ci-analysis/references/binlog-comparison.md Workflow for comparing MSBuild binlogs between passing/failing runs.
.github/skills/ci-analysis/references/build-progression-analysis.md Workflow for correlating failures across a PR’s build history.
.github/skills/ci-analysis/references/delegation-patterns.md Patterns for delegating mechanical CI data gathering to subagents.
.github/skills/ci-analysis/references/helix-artifacts.md Guide to locating and interpreting Helix work item artifacts (binlogs, results, dumps).
.github/skills/ci-analysis/references/manual-investigation.md Manual fallback steps when script output is insufficient.
.github/skills/ci-analysis/references/sql-tracking.md SQL schema and queries for tracking failures/known-issue mapping during investigations.

param(
[string]$TestName = "",
[string]$ErrorMessage = "",
[string]$Repository = $script:Repository,
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

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

Show-KnownIssues defaults -Repository to $script:Repository, but this script never sets $script:Repository. That means calls like Show-KnownIssues ... end up passing $null into Search-KnownIssues, and gh issue list --repo $Repository will fail. Default this parameter to the script’s param() $Repository value (or a literal default), or assign $script:Repository = $Repository early and use that consistently.

Suggested change
[string]$Repository = $script:Repository,
[string]$Repository = $env:GITHUB_REPOSITORY,

Copilot uses AI. Check for mistakes.
Comment on lines +111 to +115
[int]$MaxJobs = 5,
[int]$MaxFailureLines = 50,
[int]$TimeoutSec = 30,
[int]$ContextLines = 0,
[switch]$NoCache,
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

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

-ContextLines is documented and exposed as a top-level parameter but isn’t used anywhere, so changing it has no effect. Wire this through to Extract-BuildErrors (and any other log extraction) so the output matches the parameter contract (including the documented default of 0).

Copilot uses AI. Check for mistakes.
function Extract-BuildErrors {
param(
[string]$LogContent,
[int]$Context = 5
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

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

Extract-BuildErrors defaults Context to 5, which conflicts with the script’s -ContextLines default of 0 and (currently) causes context lines to be included even when the user didn’t request them. Consider defaulting Context to 0 and passing the top-level -ContextLines value explicitly when calling this helper.

Suggested change
[int]$Context = 5
[int]$Context = 0

Copilot uses AI. Check for mistakes.

## Examining Pipeline YAML

All dotnet repos that use arcade put their pipeline definitions under `eng/pipelines/`. Use `az pipelines show` to find the YAML file path, then fetch it:
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

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

The statement that all dotnet repos using Arcade keep pipeline YAML under eng/pipelines/ isn’t accurate for this repo (aspnetcore uses .azure/pipelines/, and eng/pipelines/ doesn’t exist here). Please soften/reword this to avoid sending users to a non-existent directory, while still mentioning eng/pipelines/ as common in other repos/VMR.

Suggested change
All dotnet repos that use arcade put their pipeline definitions under `eng/pipelines/`. Use `az pipelines show` to find the YAML file path, then fetch it:
In many dotnet repos that use Arcade (and in the VMR), pipeline definitions are kept under `eng/pipelines/`, but individual repos may use different locations (for example, this repo uses `.azure/pipelines/`). Use `az pipelines show` to find the YAML file path, then fetch it:

Copilot uses AI. Check for mistakes.
Comment on lines +61 to +62
| `-SearchMihuBot` | Search MihuBot for related issues |

Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

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

-SearchMihuBot triggers calls to a third-party endpoint (mihubot.xyz) with derived search terms/context from failures. The SKILL docs currently don’t mention the external data transfer; please add an explicit note/warning here so users understand what’s being sent and can make an informed choice (and consider suggesting it only for public repos/logs).

Suggested change
| `-SearchMihuBot` | Search MihuBot for related issues |
| `-SearchMihuBot` | Search MihuBot for related issues (see note below about external data transfer) |
> ⚠️ **Privacy note for `-SearchMihuBot`:** Enabling this option sends derived search terms and brief context about CI failures (e.g., test names, error messages, and basic repository/PR identifiers) to a third-party service at `mihubot.xyz` to look up related issues. Avoid using this flag with private or sensitive repositories/logs unless this data sharing is acceptable under your security and privacy requirements; it is generally safest to use it only with public repos and non-sensitive CI output.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants