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).

معلومات المصدر

المستودع
dotnet/install-scripts
آخر نشاط في المصدر
٦ مايو ٢٠٢٦ في ٠٢:٠١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢١٢
التفرعات
١٢٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
3 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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.
عرض على GitHub