Repository navigation
[TEST PR -- do not review] Dev/mclayton/verify aw locks ci test - #437
Michelle Clayton (michelle-clayton-work) wants to merge 10 commits into
Conversation
The *.lock.yml files are generated by 'gh aw compile' and embed a github/gh-aw-actions/setup pin in lockstep with require() calls to the .cjs scripts that action installs. A Dependabot bump of that pin inside a generated lock desynced them and broke the porting workflows. This gate recompiles with the pinned gh-aw version and fails on any lock drift, so out-of-sync locks can't merge again.
- Use 'git status --porcelain' instead of 'git diff --exit-code' so a newly generated but uncommitted (untracked) *.lock.yml also fails the gate, not just modifications to tracked files. - Recompile go-api-consistency-review.lock.yml (setup pin v0.82.0 -> v0.79.8) so all four locks are in sync, avoiding a merge-queue blocker when this gate lands.
Recompiles the 3 porting locks to revert Dependabot's actions/checkout v7.0.0 bump (#439) back to the compiler-pinned v6.0.3, clearing the drift the gate flagged. Also ignores the compiler-managed actions (checkout, download-artifact, github-script, setup-node, upload-artifact) in the generated lock files so Dependabot stops re-drifting them; advance these via gh-aw compiler upgrades instead.
06baf2d to
55b418b
Compare
|
Michelle Clayton (@michelle-clayton-work) this wasn't really what I had in mind. I was thinking of telling the dependabot config to ignore all |
Replace the per-action ignore list with an exclude-paths glob that skips the compiler-managed .github/workflows/*.lock.yml files, per review feedback. Dependabot no longer scans the generated locks (whose pins are version-locked to the gh-aw compiler), while hand-authored workflows continue to receive updates. Switch directory to / so the root-relative glob resolves correctly.
… into dev/mclayton/verify-aw-locks-ci-test
Bump the simulated setup-pin drift marker (v0.82.0 -> v0.83.0) so the push produces a pull_request synchronize event touching a *.lock.yml path, which the gate's path filter requires. Lock stays out of sync with the pinned compiler (v0.79.8), so the gate is expected to FAIL.
There was a problem hiding this comment.
Pull request overview
This PR adds CI enforcement to ensure Agentic Workflow generated *.lock.yml files remain in sync with the pinned gh aw compiler version, and updates Dependabot configuration to avoid modifying generated lock files.
Changes:
- Add a new
verify-aw-locksGitHub Actions workflow that recompiles agentic workflows with a pinnedgh-awversion and fails on drift. - Update Dependabot GitHub Actions scanning to run from repo root while excluding
*.lock.ymlfrom updates. - Regenerate/update several
*.lock.ymlworkflow artifacts to match the pinned compiler version.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/verify-aw-locks.yml | Adds a CI gate that recompiles and checks generated lock workflows for drift. |
| .github/workflows/go-api-consistency-review.lock.yml | Updates generated lock content/action pins to match the pinned compiler version. |
| .github/workflows/dotnet-port-fixes-nightly.lock.yml | Updates generated lock content/action pins to match the pinned compiler version. |
| .github/workflows/dotnet-port-api-nightly.lock.yml | Updates generated lock content, but currently contains an inconsistent gh-aw-actions/setup pin vs compiler version. |
| .github/workflows/dotnet-code-portability-nightly.lock.yml | Updates generated lock content/action pins to match the pinned compiler version. |
| .github/dependabot.yml | Switches GitHub Actions updates to directory: / and excludes generated *.lock.yml paths. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| paths: | ||
| - '.github/workflows/*.md' | ||
| - '.github/workflows/*.lock.yml' | ||
| merge_group: |
| @@ -1,5 +1,5 @@ | |||
| # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"51584925c506091fa21f99b23e486748742a50132f19580860b29c1e27328434","body_hash":"bb36433b52028317df752526bd2498e041a4f302bf8d5e2a991124b4b52de5f9","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","agent_model":"gpt-5.4","engine_versions":{"copilot":"1.0.60"}} | |||
| # gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]} | |||
| # gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"2ad2a516e432f0a0000cfaed33d262a380f9e58f","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]} | |||
| # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | ||
| # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| # - github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8 | ||
| # - github/gh-aw-actions/setup@2ad2a516e432f0a0000cfaed33d262a380f9e58f # v0.82.0 |
| - name: Setup Scripts | ||
| id: setup | ||
| uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8 | ||
| uses: github/gh-aw-actions/setup@2ad2a516e432f0a0000cfaed33d262a380f9e58f # v0.82.0 |
| - name: Setup Scripts | ||
| id: setup | ||
| uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8 | ||
| uses: github/gh-aw-actions/setup@2ad2a516e432f0a0000cfaed33d262a380f9e58f # v0.82.0 |
| - name: Setup Scripts | ||
| id: setup | ||
| uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8 | ||
| uses: github/gh-aw-actions/setup@2ad2a516e432f0a0000cfaed33d262a380f9e58f # v0.82.0 |
| - name: Setup Scripts | ||
| id: setup | ||
| uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8 | ||
| uses: github/gh-aw-actions/setup@2ad2a516e432f0a0000cfaed33d262a380f9e58f # v0.82.0 |
| - name: Setup Scripts | ||
| id: setup | ||
| uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8 | ||
| uses: github/gh-aw-actions/setup@2ad2a516e432f0a0000cfaed33d262a380f9e58f # v0.82.0 |
No description provided.