Conversation
- Pin all GitHub Actions to commit SHAs to prevent supply chain attacks - Add version comments (e.g., "# v6") for Dependabot compatibility - Add explicit permissions blocks to all jobs (least-privilege) - Replace unmaintained qsnyder/action-wxt with direct curl to Webex API - Add input sanitization for notification message content
- Add workflow_call trigger to test.yml for reusability - Add test job in release.yml that calls test.yml before build - Skip notifications when invoked via workflow_call
Syncs .gitignore with release/pyats-integration-v1.1-beta branch
This reverts commit 9057edf.
This reverts commit 380019a.
|
Hey @oboehmer, thank you for the PR — I had an agent do a quick review and it flagged the following before merge. Things that need adjustment:
What do you think? P.S. — This comment was drafted using voice-to-text via Claude Code. If the tone comes across as overly direct or terse, please know that's just how it tends to phrase things. No offense or criticism is intended — this is purely an objective technical review of the PR. Thanks for understanding! 🙂 |
Description
Harden GitHub Actions workflows based on security audit findings. This PR implements supply chain attack prevention and least-privilege permissions
It also adds release gating to ensure tests pass before publishing (not related to security findings).
Closes
Related Issue(s)
Type of Change
Test Framework Affected
Network as Code (NaC) Architecture Affected
Platform Tested
Key Changes
permissionsblocks added to all jobs (contents: reador{})qsnyder/action-wxtwith directcurlto Webex API, including input sanitizationrelease.ymlnow callstest.ymlas a reusable workflow before building/publishingrelease/pyats-integration-v1.1-betabranchTesting Done
pytest/pre-commit run -a)Test Commands Used
pushed a tag along with a failing test (380019a).
buildstep was skippedChecklist
pre-commit run -apasses)Screenshots (if applicable)
Additional Notes
Security improvements:
# v6) enable Dependabot to still track and propose updatespermissions: {}on notification job grants zero permissions (most restrictive)contents: writefor legitimate dependabot lock file updatesWebex curl migration:
qsnyder/action-wxtwas unmaintained (last commit 2022, no releases)jq -Rsprevents JSON injection from commit messages