Skip to content

[TEST PR -- do not review] Dev/mclayton/verify aw locks ci test - #437

Closed
Michelle Clayton (michelle-clayton-work) wants to merge 10 commits into
mainfrom
dev/mclayton/verify-aw-locks-ci-test
Closed

Michelle Clayton (michelle-clayton-work) wants to merge 10 commits into
mainfrom
dev/mclayton/verify-aw-locks-ci-test

Conversation

@michelle-clayton-work

Copy link
Copy Markdown
Contributor

No description provided.

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.
Rebased onto the latest #436 work (25db04b) so this exercises the current gate (porcelain untracked check + synced locks + dependabot ignore). Rewrites dotnet-port-api-nightly.lock.yml's setup pin to v0.82.0 while the compiler stays v0.79.8 -- the gate should recompile and flag it out of date.
@gdams

George Adams (gdams) commented Jul 17, 2026 •

Copy link
Copy Markdown
Member

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 .github/workflows/*.lock.yml files using a glob. I believe that dependabot has a way to exclude paths. It might make sense for us to write a tool in go-infra that we use to apply these changes to a whole bunch of repos.

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.
@michelle-clayton-work Michelle Clayton (michelle-clayton-work) changed the title Dev/mclayton/verify aw locks ci test [TEST PR -- do not review] Dev/mclayton/verify aw locks ci test Jul 20, 2026
@michelle-clayton-work
Michelle Clayton (michelle-clayton-work) marked this pull request as ready for review July 20, 2026 20:19
Copilot AI review requested due to automatic review settings July 20, 2026 20:19
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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-locks GitHub Actions workflow that recompiles agentic workflows with a pinned gh-aw version and fails on drift.
  • Update Dependabot GitHub Actions scanning to run from repo root while excluding *.lock.yml from updates.
  • Regenerate/update several *.lock.yml workflow 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.

Comment on lines +14 to +17
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants