Commit 085a38b
feat(workflow): add copilot-setup-steps.yml for Coding Agent environment (#398)
## Description
Adds `copilot-setup-steps.yml` workflow to bridge the devcontainer
environment to GitHub Actions runners for Copilot Coding Agent. The
workflow pre-installs Node.js 20, Python 3.11, and PowerShell modules to
match local development capabilities, enabling agents to use the same
npm scripts for validation in the cloud environment.
- Created `.github/workflows/copilot-setup-steps.yml` with SHA-pinned
actions for `checkout`, `setup-node`, and `setup-python`
- Added tool verification step confirming availability of `node`, `npm`,
`python3`, `pwsh`, and `shellcheck`
- Updated `.github/copilot-instructions.md` with new "Coding Agent
Environment" section documenting pre-installed tools and npm script
usage
- Applied minimal `contents: read` permissions following principle of
least privilege
## Related Issue(s)
Closes #388
## Type of Change
Select all that apply:
**Code & Documentation:**
- [ ] Bug fix (non-breaking change fixing an issue)
- [x] New feature (non-breaking change adding functionality)
- [ ] Breaking change (fix or feature causing existing functionality to
change)
- [ ] Documentation update
**Infrastructure & Configuration:**
- [x] GitHub Actions workflow
- [ ] Linting configuration (markdown, PowerShell, etc.)
- [ ] Security configuration
- [ ] DevContainer configuration
- [ ] Dependency update
**AI Artifacts:**
- [ ] Reviewed contribution with `prompt-builder` agent and addressed
all feedback
- [ ] Copilot instructions (`.github/instructions/*.instructions.md`)
- [ ] Copilot prompt (`.github/prompts/*.prompt.md`)
- [ ] Copilot agent (`.github/agents/*.agent.md`)
**Other:**
- [ ] Script/automation (`.ps1`, `.sh`, `.py`)
- [ ] Other (please describe):
## Sample Prompts (for AI Artifact Contributions)
N/A - only updated copilot-instructions.md for the cloud agent.
## Testing
- Workflow triggers on push/PR to its own path for validation
- Tool verification step confirms all dependencies are available
- npm scripts listed via `npm run --list` for agent reference
## Checklist
### Required Checks
- [ ] Documentation is updated (if applicable) - This will be a
follow-up PR to update documentation after workflow is merged and
verified
- [x] Files follow existing naming conventions
- [x] Changes are backwards compatible (if applicable)
- [ ] Tests added for new functionality (if applicable)
### AI Artifact Contributions
- [x] Copilot instructions (`.github/instructions/*.instructions.md`)
### Required Automated Checks
The following validation commands must pass before merging:
- [x] Markdown linting: `npm run lint:md`
- [x] Spell checking: `npm run spell-check`
- [ ] Frontmatter validation: `npm run lint:frontmatter`
- [x] Link validation: `npm run lint:md-links`
- [ ] PowerShell analysis: `npm run lint:ps`
## Security Considerations
- [x] This PR does not contain any sensitive or NDA information
- [ ] Any new dependencies have been reviewed for security issues
- [x] Security-related scripts follow the principle of least privilege
## Additional Notes
The workflow uses SHA-pinned actions for security:
- `actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd` (v4.2.2)
- `actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238` (v4.1.0)
- `actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f`
(v5.1.1)
The job is named `copilot-setup-steps` as required by GitHub Copilot
documentation for automatic recognition.
**Intentionally excluded or leveraged from runners:**
- **gitleaks** - Secret scanning runs in CI workflows via
`security-scan.yml`, following the principle that security validation
belongs in the pipeline, not the agent's editing environment. GitHub's
push protection provides an additional layer of defense.
- **shellcheck** - Pre-installed on ubuntu-latest runners (v0.9.0-1), no
explicit installation needed.
- **Pester 5.7.1** - Pre-installed on GitHub-hosted runners, no explicit
installation needed.
---------
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Bill Berry <[email protected]>1 parent de43e73 commit 085a38b
2 files changed
Lines changed: 96 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
| 94 | + | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
0 commit comments