Skip to content

feat(scripts): enhance on-create.sh to install actionlint and PowerShell modules#500

Merged
WilliamBerryiii merged 4 commits intomicrosoft:mainfrom
andrewDoing:fix/497-498-499-devcontainer-setup
Feb 13, 2026
Merged

feat(scripts): enhance on-create.sh to install actionlint and PowerShell modules#500
WilliamBerryiii merged 4 commits intomicrosoft:mainfrom
andrewDoing:fix/497-498-499-devcontainer-setup

Conversation

@andrewDoing
Copy link
Copy Markdown
Contributor

Pull Request

Description

  • add architecture checks for actionlint installation
  • verify actionlint tarball integrity before extraction
  • install PowerShell modules for YAML processing

I am on an apple silicon mac and I encountered these issues while creating the devcontainer.

Related Issue(s)

Closes #497
Closes #498
Closes #499

Type of Change

Select all that apply:

Code & Documentation:

  • Bug fix (non-breaking change fixing an issue)

Infrastructure & Configuration:

  • DevContainer configuration

Note for AI Artifact Contributors:

  • Agents: Research, indexing/referencing other project (using standard VS Code GitHub Copilot/MCP tools), planning, and general implementation agents likely already exist. Review .github/agents/ before creating new ones.
  • Skills: Must include both bash and PowerShell scripts. See Skills.
  • Model Versions: Only contributions targeting the latest Anthropic and OpenAI models will be accepted. Older model versions (e.g., GPT-3.5, Claude 3) will be rejected.
  • See Agents Not Accepted and Model Version Requirements.

Other:

  • Script/automation (.ps1, .sh, .py)

Sample Prompts (for AI Artifact Contributions)

User Request:

Execution Flow:

Output Artifacts:

Success Indicators:

For detailed contribution requirements, see:

Testing

I reopened and built the devcontainer to verify these changes worked.

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable)
  • Tests added for new functionality (if applicable)

AI Artifact Contributions

  • Used /prompt-analyze to review contribution
  • Addressed all feedback from prompt-builder review
  • Verified contribution follows common standards and type-specific requirements

Required Automated Checks

The following validation commands must pass before merging:

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps

Security Considerations

  • This PR does not contain any sensitive or NDA information
  • Any new dependencies have been reviewed for security issues
  • Security-related scripts follow the principle of least privilege

Additional Notes

@andrewDoing andrewDoing requested a review from a team as a code owner February 12, 2026 19:57
Copilot AI review requested due to automatic review settings February 12, 2026 19:57
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 12, 2026

Codecov Report

❌ Patch coverage is 75.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 83.39%. Comparing base (e6cee85) to head (28dc0fe).

Files with missing lines Patch % Lines
scripts/linting/Invoke-PSScriptAnalyzer.ps1 75.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #500      +/-   ##
==========================================
- Coverage   83.43%   83.39%   -0.05%     
==========================================
  Files          20       20              
  Lines        3507     3510       +3     
==========================================
+ Hits         2926     2927       +1     
- Misses        581      583       +2     
Flag Coverage Δ
pester 83.39% <75.00%> (-0.05%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
scripts/linting/Invoke-PSScriptAnalyzer.ps1 89.15% <75.00%> (-0.85%) ⬇️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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

This pull request enhances the devcontainer setup to resolve missing dependencies for local development. It addresses three reported issues where fresh devcontainer environments failed to run validation commands due to missing tools and directories. The PR adds actionlint installation with multi-architecture support (amd64/arm64), installs the PowerShell-Yaml module for frontmatter validation, creates the logs directory during container setup, and adds defensive directory creation in the PSScriptAnalyzer wrapper.

Changes:

  • Added actionlint 1.7.7 installation with architecture detection and SHA256 verification for both amd64 and arm64
  • Installed PowerShell-Yaml module during container creation for YAML frontmatter parsing
  • Created logs directory in post-create script to prevent path errors in linting scripts
  • Added directory existence check in Invoke-PSScriptAnalyzer.ps1 before writing output files

Reviewed changes

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

File Description
.devcontainer/scripts/on-create.sh Added actionlint installation with multi-arch support and PowerShell module installation
.devcontainer/scripts/post-create.sh Created logs directory to ensure it exists for validation scripts
scripts/linting/Invoke-PSScriptAnalyzer.ps1 Added defensive directory creation before writing output files

- update actionlint to v1.7.10 to match CI workflow version
- add actionlint installation to copilot-setup-steps.yml for parity
- add arm64 architecture support for gitleaks installation
- fix PowerShell-Yaml module casing to match codebase convention
- use dynamic path for psscriptanalyzer summary output

🔧 - Generated by Copilot
Copilot AI review requested due to automatic review settings February 12, 2026 21:21
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

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

@WilliamBerryiii
Copy link
Copy Markdown
Member

Thank you for this contribution, @andrewDoing! 🎉 Your changes to the devcontainer setup — adding architecture-aware actionlint installation, tarball integrity verification, and PowerShell module support — improve the experience for contributors on Apple Silicon and strengthen the setup's reliability across platforms. We appreciate you taking the time to identify and fix all three issues.

@WilliamBerryiii WilliamBerryiii merged commit 67585f5 into microsoft:main Feb 13, 2026
18 checks passed
@andrewDoing andrewDoing deleted the fix/497-498-499-devcontainer-setup branch February 13, 2026 02:20
WilliamBerryiii pushed a commit that referenced this pull request Feb 13, 2026
🤖 I have created a release *beep* *boop*
---


##
[2.3.0](hve-core-v2.2.0...hve-core-v2.3.0)
(2026-02-13)


### ✨ Features

* **agents:** add GitHub backlog management pipeline
([#448](#448))
([2b4d123](2b4d123))
* **docs:** define inactivity closure policies for issues and PRs
([#452](#452))
([5e710fd](5e710fd))
* **extension:** implement collection-based plugin distribution system
([#439](#439))
([3156d98](3156d98))
* **instructions:** replace EVEN/ODD hardcoding with runtime milestone
discovery protocol
([#486](#486))
([ae95eb2](ae95eb2))
* **plugin:** support Copilot CLI plugin generation from collection
manifests ([#496](#496))
([e6cee85](e6cee85))
* **scripts:** enhance on-create.sh to install actionlint and PowerShell
modules ([#500](#500))
([67585f5](67585f5))


### 🐛 Bug Fixes

* **docs:** replace broken relative link with inline code reference
([#465](#465))
([8133b36](8133b36))
* **instructions:** prevent local-only paths from leaking into GitHub
issues ([#489](#489))
([497d2fe](497d2fe))
* **workflows:** prevent release-please infinite loop on main branch
([#470](#470))
([134bdd6](134bdd6))
* **workflows:** remove release-please skip guard that prevents tag
creation ([#511](#511))
([5e53271](5e53271))


### 📚 Documentation

* **agents:** add GitHub Backlog Manager documentation and agent catalog
([#503](#503))
([5e818ce](5e818ce))
* align CONTRIBUTING.md with docs/contributing/ guides
([#445](#445))
([73ef6aa](73ef6aa))


### ♻️ Refactoring

* **scripts:** refactor dev-tools and lib scripts to use CIHelpers
module ([#482](#482))
([fdf9145](fdf9145))
* **scripts:** standardize PowerShell entry point guard pattern
([#477](#477))
([6b84a8e](6b84a8e))


### 🔧 Maintenance

* **config:** standardize action mappings in artifact-retention.yml
([#487](#487))
([7927db2](7927db2))
* **deps-dev:** bump cspell from 9.6.2 to 9.6.4 in the npm-dependencies
group ([#461](#461))
([c788095](c788095))
* **deps:** bump actions/setup-python from 5.1.1 to 6.2.0 in the
github-actions group
([#462](#462))
([69ef3c9](69ef3c9))
* **security:** add SBOM artifact retention policy
([#479](#479))
([8031557](8031557)),
closes [#453](#453)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: hve-core-release-please[bot] <254602402+hve-core-release-please[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

5 participants