Skip to main content

validate-install-scripts

Open validation PRs in key .NET repos to test install script changes against their CI. Use this skill when asked to validate install scripts, open validation PRs, or check/close validation PRs. Supports two modes: 'open' (create PRs) and 'check-close' (verify CI and close).

Source facts

Repository
dotnet/install-scripts
Last source activity
May 6, 2026 at 02:01
Detected SKILL.md language
English
Stars
212
Forks
121

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
validate-install-scripts
description
Open validation PRs in key .NET repos to test install script changes against their CI. Use this skill when asked to validate install scripts, open validation PRs, or check/close validation PRs. Supports two modes: 'open' (create PRs) and 'check-close' (verify CI and close).
# Validate Install Scripts in Key Repos This skill automates the "Validation in Key Repos" step of the install scripts release process. It opens draft PRs titled `[DO NOT MERGE] Install Scripts Update Validation PR` in key .NET repos that replace the production install script URL with a raw GitHub URL pointing to a specific commit. ## Prerequisites - The `gh` CLI must be authenticated with permissions to create branches and PRs in the target repos. - The commit SHA must exist in the `dotnet/install-scripts` repository on GitHub. - If the user lacks push access to a target repo, the scripts automatically fork and create cross-fork PRs. ## Usage ### Mode 1: Open Validation PRs Ask the user for the commit SHA, then run: ```powershell pwsh .github/skills/validate-install-scripts/Open-ValidationPRs.ps1 -CommitSha "<sha>" ``` To target specific repos only: ```powershell pwsh .github/skills/validate-install-scripts/Open-ValidationPRs.ps1 -CommitSha "<sha>" -Repos @("arcade", "sdk") ``` ### Mode 2: Check CI Status and Close PRs Ask the user for the same commit SHA used to open the PRs, then run: ```powershell pwsh .github/skills/validate-install-scripts/Close-ValidationPRs.ps1 -CommitSha "<sha>" ``` To auto-close without prompting: ```powershell pwsh .github/skills/validate-install-scripts/Close-ValidationPRs.ps1 -CommitSha "<sha>" -AutoClose ``` ## Target Repositories - `dotnet/aspnetcore` - `dotnet/arcade` - `dotnet/sdk` - `dotnet/runtime` - `dotnet/winforms` ## What the Scripts Do Both scripts use the `gh` CLI and GitHub's Git Data API. The open script: 1. Verifies the commit exists in `dotnet/install-scripts` 2. For each target repo: - Checks push access; if denied, forks the repo automatically - Creates a branch named `validate-install-scripts/<short-sha>` - Fetches `eng/common/tools.sh` and `eng/common/tools.ps1` - Replaces the production URL with the raw GitHub URL for the given commit - Creates an atomic commit (both files in one commit) via the Git Data API - Opens a draft PR The close script: 1. Finds open validation PRs by branch name (handles both direct and fork-based PRs) 2. Checks CI status on each 3. Closes PRs where all checks have passed, reports pending/failed ones ## URL Replacements In `eng/common/tools.sh`: ``` https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh → https://raw.githubusercontent.com/dotnet/install-scripts/<COMMIT_SHA>/src/dotnet-install.sh ``` In `eng/common/tools.ps1`: ``` https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1 → https://raw.githubusercontent.com/dotnet/install-scripts/<COMMIT_SHA>/src/dotnet-install.ps1 ``` ## Notes - PRs are opened as **drafts** with `[DO NOT MERGE]` title to prevent accidental merge. - File content is round-tripped through base64 to preserve exact bytes (no trailing whitespace changes). - The branch name `validate-install-scripts/<short-sha>` correlates open and check-close modes. - CI run times vary: Arcade ~30 min, Runtime can take several hours.
View on GitHub