diff --git a/.github/aw/actions-lock.json b/.github/aw/actions-lock.json index 655fa72..fb712f8 100644 --- a/.github/aw/actions-lock.json +++ b/.github/aw/actions-lock.json @@ -1,5 +1,10 @@ { "entries": { + "bootc-dev/actions/bootc-ubuntu-setup@main": { + "repo": "bootc-dev/actions/bootc-ubuntu-setup", + "version": "main", + "sha": "40859f0934be02542d553a24e8384c693e43e4a8" + }, "github/gh-aw-actions/setup-cli@v0.90.1": { "repo": "github/gh-aw-actions/setup-cli", "version": "v0.90.1", diff --git a/.github/workflows/ci-triage.lock.yml b/.github/workflows/ci-triage.lock.yml index 2d242a3..00ce70b 100644 --- a/.github/workflows/ci-triage.lock.yml +++ b/.github/workflows/ci-triage.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"8da1bb804961d98c133f044de7091d60e4778419b2496e093144074ea40953ff","body_hash":"bbc01afd40fdde602c9ba84569a6468ae4d5b44231402f2f9fb1b19b4573613c","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"53e74be513976af5ad091e96db5d78c57d425a2049b22f524b1c144234a399a5","body_hash":"bbc01afd40fdde602c9ba84569a6468ae4d5b44231402f2f9fb1b19b4573613c","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"},"agent_image_runner":"ubuntu-26.04"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_APP_PRIVATE_KEY","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/create-github-app-token","sha":"bcd2ba49218906704ab6c1aa796996da409d3eb1","version":"v3.2.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27","digest":"sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27@sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27","digest":"sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27@sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27","digest":"sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27@sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.27","digest":"sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.27@sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e","pinned_image":"ghcr.io/github/gh-aw-node@sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e"},{"image":"ghcr.io/github/github-mcp-server:v1.12.2","digest":"sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6","pinned_image":"ghcr.io/github/github-mcp-server:v1.12.2@sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6"}],"mcp_servers":[{"name":"github","tools":["get_commit","get_file_contents","get_latest_release","get_me","get_pull_request","get_pull_request_comments","get_pull_request_diff","get_pull_request_files","get_pull_request_review_comments","get_pull_request_reviews","get_pull_request_status","get_release_by_tag","get_tag","issue_read","list_branches","list_commits","list_issue_types","list_issues","list_pull_requests","list_releases","list_starred_repositories","list_tags","pull_request_read","search_code","search_issues","search_pull_requests","search_repositories"]},{"name":"safeoutputs","tools":["add_comment","missing_data","missing_tool","noop","workflow_rerun"]}]} # This file was automatically generated by gh-aw (v0.90.1). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # @@ -413,7 +413,7 @@ jobs: agent: needs: activation if: needs.activation.outputs.daily_ai_credits_exceeded != 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: actions: read contents: read @@ -502,6 +502,11 @@ jobs: evidence_tmp="/tmp/gh-aw/agent_execution.json.tmp" printf '{"version":1,"component":"agent","run_id":%s,"run_attempt":%s,"state":"not_started"}\n' "$GITHUB_RUN_ID" "$GITHUB_RUN_ATTEMPT" > "$evidence_tmp" mv "$evidence_tmp" "/tmp/gh-aw/agent_execution.json" + - name: Setup Node.js + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: '24' + package-manager-cache: false - name: Create gh-aw temp directory run: bash "${RUNNER_TEMP}/gh-aw/actions/create_gh_aw_tmp_dir.sh" - name: Configure gh CLI for GitHub Enterprise @@ -1567,7 +1572,7 @@ jobs: - activation - agent if: always() && needs.agent.result != 'skipped' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read timeout-minutes: 10 @@ -2003,7 +2008,7 @@ jobs: - agent - detection if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'workflow_rerun') - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: actions: read contents: read diff --git a/.github/workflows/ci-triage.md b/.github/workflows/ci-triage.md index d6445b8..ce31dea 100644 --- a/.github/workflows/ci-triage.md +++ b/.github/workflows/ci-triage.md @@ -104,6 +104,8 @@ permissions: issues: read pull-requests: read +runs-on: ubuntu-26.04 + tools: # The agent runs in a sandboxed container. Keep the write-capable Actions # token isolated in the custom safe-output job rather than restricting the @@ -137,6 +139,9 @@ tools: integrity-proxy: false safe-outputs: + # The detection job defaults to ubuntu-latest rather than following runs-on. + threat-detection: + runs-on: ubuntu-26.04 github-app: client-id: ${{ vars.GH_AW_APP_CLIENT_ID }} private-key: ${{ secrets.GH_AW_APP_PRIVATE_KEY }} diff --git a/.github/workflows/drafter.lock.yml b/.github/workflows/drafter.lock.yml index 9db64c8..d4dd3c9 100644 --- a/.github/workflows/drafter.lock.yml +++ b/.github/workflows/drafter.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"b3dc3b4c7981ad11bc68429f0c64f0f8fbbf28d7885910b30f7aeb89986f0c50","body_hash":"f04f240220f34ea76a677f7217bbeea2604823f741319cc9c87a141e943bd37e","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"}} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_APP_PRIVATE_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/create-github-app-token","sha":"bcd2ba49218906704ab6c1aa796996da409d3eb1","version":"v3.2.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"},{"repo":"github/gh-aw-actions/setup-cli","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27","digest":"sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27@sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27","digest":"sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27@sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27","digest":"sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27@sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.27","digest":"sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.27@sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e","pinned_image":"ghcr.io/github/gh-aw-node@sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e"},{"image":"ghcr.io/github/github-mcp-server:v1.12.2","digest":"sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6","pinned_image":"ghcr.io/github/github-mcp-server:v1.12.2@sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6"}],"mcp_servers":[{"name":"github","tools":["issue_read","list_issue_types","list_issues","search_issues"]},{"name":"safeoutputs","tools":["create_pull_request","missing_data","missing_tool","noop"]}]} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"7a469579966db0a11a8676563c73331261e7a99ce627789156bceef875e38cea","body_hash":"f04f240220f34ea76a677f7217bbeea2604823f741319cc9c87a141e943bd37e","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"},"agent_image_runner":"ubuntu-26.04"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_APP_PRIVATE_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/create-github-app-token","sha":"bcd2ba49218906704ab6c1aa796996da409d3eb1","version":"v3.2.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"bootc-dev/actions/bootc-ubuntu-setup","sha":"40859f0934be02542d553a24e8384c693e43e4a8","version":"main"},{"repo":"github/gh-aw-actions/setup","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"},{"repo":"github/gh-aw-actions/setup-cli","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27","digest":"sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27@sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27","digest":"sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27@sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27","digest":"sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27@sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.27","digest":"sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.27@sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e","pinned_image":"ghcr.io/github/gh-aw-node@sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e"},{"image":"ghcr.io/github/github-mcp-server:v1.12.2","digest":"sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6","pinned_image":"ghcr.io/github/github-mcp-server:v1.12.2@sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6"}],"mcp_servers":[{"name":"github","tools":["issue_read","list_issue_types","list_issues","search_issues"]},{"name":"safeoutputs","tools":["create_pull_request","missing_data","missing_tool","noop"]}]} # This file was automatically generated by gh-aw (v0.90.1). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # # ___ _ _ @@ -52,6 +52,7 @@ # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 +# - bootc-dev/actions/bootc-ubuntu-setup@40859f0934be02542d553a24e8384c693e43e4a8 # main # - github/gh-aw-actions/setup-cli@7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1 # v0.90.1 # - github/gh-aw-actions/setup@7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1 # v0.90.1 # @@ -421,7 +422,7 @@ jobs: add_working_label: needs: pre_activation if: needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: issues: write steps: @@ -452,7 +453,7 @@ jobs: agent: needs: activation if: needs.activation.outputs.daily_ai_credits_exceeded != 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read issues: read @@ -540,6 +541,11 @@ jobs: uses: github/gh-aw-actions/setup-cli@7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1 # v0.90.1 with: version: 'v0.90.1' + - name: Setup Node.js + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: '24' + package-manager-cache: false - name: Create gh-aw temp directory run: bash "${RUNNER_TEMP}/gh-aw/actions/create_gh_aw_tmp_dir.sh" - name: Configure gh CLI for GitHub Enterprise @@ -551,11 +557,8 @@ jobs: with: name: activation path: /tmp/gh-aw - - name: Install just - run: | - set -euo pipefail - sudo apt-get update -q - sudo apt-get install -y -q just + - name: Bootc Ubuntu setup + uses: bootc-dev/actions/bootc-ubuntu-setup@40859f0934be02542d553a24e8384c693e43e4a8 # main - name: Configure Git credentials env: @@ -1590,7 +1593,7 @@ jobs: - activation - agent if: always() && needs.agent.result != 'skipped' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read timeout-minutes: 10 @@ -1900,7 +1903,7 @@ jobs: - pre_activation - safe_outputs if: always() && needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: issues: write steps: diff --git a/.github/workflows/drafter.md b/.github/workflows/drafter.md index 3f51c45..33ee33a 100644 --- a/.github/workflows/drafter.md +++ b/.github/workflows/drafter.md @@ -15,6 +15,7 @@ permissions: contents: read issues: read +runs-on: ubuntu-26.04 imports: - shared/defaults.md # just and the gh-aw CLI, for recompiling lock files @@ -25,6 +26,9 @@ tools: toolsets: [issues] safe-outputs: + # The detection job defaults to ubuntu-latest rather than following runs-on. + threat-detection: + runs-on: ubuntu-26.04 github-app: client-id: ${{ vars.GH_AW_APP_CLIENT_ID }} private-key: ${{ secrets.GH_AW_APP_PRIVATE_KEY }} @@ -67,7 +71,7 @@ jobs: add_working_label: needs: pre_activation if: needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: issues: write steps: @@ -104,7 +108,7 @@ jobs: # PRs -- a bare `if: always()` there was found to strip a *different*, # still-running workflow's label out from under it. if: always() && needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: issues: write steps: diff --git a/.github/workflows/fix.lock.yml b/.github/workflows/fix.lock.yml index 6834422..5c378b1 100644 --- a/.github/workflows/fix.lock.yml +++ b/.github/workflows/fix.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"12cb25be45a713cd50e410ed9cc634b6827873484b8773b07cfa1c4acfb32ea4","body_hash":"37cbc9a96d1b7966caa5a78dbdce53a0d58b0cafdb1f9d3aca7ec850340ab4e7","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"}} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_APP_PRIVATE_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/create-github-app-token","sha":"bcd2ba49218906704ab6c1aa796996da409d3eb1","version":"v3.2.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"},{"repo":"github/gh-aw-actions/setup-cli","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27","digest":"sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27@sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27","digest":"sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27@sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27","digest":"sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27@sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.27","digest":"sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.27@sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e","pinned_image":"ghcr.io/github/gh-aw-node@sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e"},{"image":"ghcr.io/github/github-mcp-server:v1.12.2","digest":"sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6","pinned_image":"ghcr.io/github/github-mcp-server:v1.12.2@sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6"}],"has_pull_request":true,"mcp_servers":[{"name":"github","tools":["get_commit","get_file_contents","get_latest_release","get_me","get_pull_request","get_pull_request_comments","get_pull_request_diff","get_pull_request_files","get_pull_request_review_comments","get_pull_request_reviews","get_pull_request_status","get_release_by_tag","get_tag","issue_read","list_branches","list_commits","list_issue_types","list_issues","list_pull_requests","list_releases","list_starred_repositories","list_tags","pull_request_read","search_code","search_issues","search_pull_requests","search_repositories"]},{"name":"safeoutputs","tools":["add_comment","missing_data","missing_tool","noop","push_to_pull_request_branch","remove_labels"]}]} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"d7de6ea0c6f6367897d8ebf5f07a8c560ee928a543d8c5424c168f0dcd229a60","body_hash":"37cbc9a96d1b7966caa5a78dbdce53a0d58b0cafdb1f9d3aca7ec850340ab4e7","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"},"agent_image_runner":"ubuntu-26.04"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_APP_PRIVATE_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/create-github-app-token","sha":"bcd2ba49218906704ab6c1aa796996da409d3eb1","version":"v3.2.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"bootc-dev/actions/bootc-ubuntu-setup","sha":"40859f0934be02542d553a24e8384c693e43e4a8","version":"main"},{"repo":"github/gh-aw-actions/setup","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"},{"repo":"github/gh-aw-actions/setup-cli","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27","digest":"sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27@sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27","digest":"sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27@sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27","digest":"sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27@sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.27","digest":"sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.27@sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e","pinned_image":"ghcr.io/github/gh-aw-node@sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e"},{"image":"ghcr.io/github/github-mcp-server:v1.12.2","digest":"sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6","pinned_image":"ghcr.io/github/github-mcp-server:v1.12.2@sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6"}],"has_pull_request":true,"mcp_servers":[{"name":"github","tools":["get_commit","get_file_contents","get_latest_release","get_me","get_pull_request","get_pull_request_comments","get_pull_request_diff","get_pull_request_files","get_pull_request_review_comments","get_pull_request_reviews","get_pull_request_status","get_release_by_tag","get_tag","issue_read","list_branches","list_commits","list_issue_types","list_issues","list_pull_requests","list_releases","list_starred_repositories","list_tags","pull_request_read","search_code","search_issues","search_pull_requests","search_repositories"]},{"name":"safeoutputs","tools":["add_comment","missing_data","missing_tool","noop","push_to_pull_request_branch","remove_labels"]}]} # This file was automatically generated by gh-aw (v0.90.1). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # # ___ _ _ @@ -52,6 +52,7 @@ # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 +# - bootc-dev/actions/bootc-ubuntu-setup@40859f0934be02542d553a24e8384c693e43e4a8 # main # - github/gh-aw-actions/setup-cli@7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1 # v0.90.1 # - github/gh-aw-actions/setup@7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1 # v0.90.1 # @@ -429,7 +430,7 @@ jobs: add_working_label: needs: pre_activation if: needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: @@ -460,7 +461,7 @@ jobs: agent: needs: activation if: needs.activation.outputs.daily_ai_credits_exceeded != 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read issues: read @@ -549,6 +550,11 @@ jobs: uses: github/gh-aw-actions/setup-cli@7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1 # v0.90.1 with: version: 'v0.90.1' + - name: Setup Node.js + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: '24' + package-manager-cache: false - name: Create gh-aw temp directory run: bash "${RUNNER_TEMP}/gh-aw/actions/create_gh_aw_tmp_dir.sh" - name: Configure gh CLI for GitHub Enterprise @@ -560,11 +566,8 @@ jobs: with: name: activation path: /tmp/gh-aw - - name: Install just - run: | - set -euo pipefail - sudo apt-get update -q - sudo apt-get install -y -q just + - name: Bootc Ubuntu setup + uses: bootc-dev/actions/bootc-ubuntu-setup@40859f0934be02542d553a24e8384c693e43e4a8 # main - name: Configure Git credentials env: @@ -1623,7 +1626,7 @@ jobs: - activation - agent if: always() && needs.agent.result != 'skipped' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read timeout-minutes: 10 @@ -1937,7 +1940,7 @@ jobs: - pre_activation - safe_outputs if: always() && needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: diff --git a/.github/workflows/fix.md b/.github/workflows/fix.md index c1c52cd..c7f70b2 100644 --- a/.github/workflows/fix.md +++ b/.github/workflows/fix.md @@ -46,6 +46,7 @@ permissions: issues: read pull-requests: read +runs-on: ubuntu-26.04 imports: - shared/defaults.md # just and the gh-aw CLI, for recompiling lock files @@ -56,6 +57,9 @@ tools: toolsets: [default] safe-outputs: + # The detection job defaults to ubuntu-latest rather than following runs-on. + threat-detection: + runs-on: ubuntu-26.04 github-app: client-id: ${{ vars.GH_AW_APP_CLIENT_ID }} private-key: ${{ secrets.GH_AW_APP_PRIVATE_KEY }} @@ -91,7 +95,7 @@ jobs: add_working_label: needs: pre_activation if: needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: @@ -129,7 +133,7 @@ jobs: # (see above) remove the cross-workflow collision; this condition is # defense-in-depth against the same class of bug recurring. if: always() && needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: diff --git a/.github/workflows/queue-triage.lock.yml b/.github/workflows/queue-triage.lock.yml index 51181b8..f538fc7 100644 --- a/.github/workflows/queue-triage.lock.yml +++ b/.github/workflows/queue-triage.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"94d754acf49478ad6d505113b7b9770be92b4f6630b17b52ed32ba6820cf9fb4","body_hash":"8c4b72760f21ec2da10d8cad5ff6f8e5e51976a085f29104e79562bdfb620466","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"3b658f2b6eb4c8c8abcc51456c41970e35c517da24edba69bd35615868dd043a","body_hash":"8c4b72760f21ec2da10d8cad5ff6f8e5e51976a085f29104e79562bdfb620466","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"},"agent_image_runner":"ubuntu-26.04"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_APP_PRIVATE_KEY","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/create-github-app-token","sha":"bcd2ba49218906704ab6c1aa796996da409d3eb1","version":"v3.2.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27","digest":"sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27@sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27","digest":"sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27@sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27","digest":"sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27@sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.27","digest":"sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.27@sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e","pinned_image":"ghcr.io/github/gh-aw-node@sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e"},{"image":"ghcr.io/github/github-mcp-server:v1.12.2","digest":"sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6","pinned_image":"ghcr.io/github/github-mcp-server:v1.12.2@sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6"}],"mcp_servers":[{"name":"github","tools":["get_commit","get_file_contents","get_latest_release","get_me","get_pull_request","get_pull_request_comments","get_pull_request_diff","get_pull_request_files","get_pull_request_review_comments","get_pull_request_reviews","get_pull_request_status","get_release_by_tag","get_tag","issue_read","list_branches","list_commits","list_issue_types","list_issues","list_pull_requests","list_releases","list_starred_repositories","list_tags","pull_request_read","search_code","search_issues","search_pull_requests","search_repositories"]},{"name":"safeoutputs","tools":["add_comment","missing_data","missing_tool","noop","update_issue","workflow_rerun"]}]} # This file was automatically generated by gh-aw (v0.90.1). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # @@ -409,7 +409,7 @@ jobs: agent: needs: activation if: needs.activation.outputs.daily_ai_credits_exceeded != 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: actions: read contents: read @@ -498,6 +498,11 @@ jobs: evidence_tmp="/tmp/gh-aw/agent_execution.json.tmp" printf '{"version":1,"component":"agent","run_id":%s,"run_attempt":%s,"state":"not_started"}\n' "$GITHUB_RUN_ID" "$GITHUB_RUN_ATTEMPT" > "$evidence_tmp" mv "$evidence_tmp" "/tmp/gh-aw/agent_execution.json" + - name: Setup Node.js + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: '24' + package-manager-cache: false - name: Create gh-aw temp directory run: bash "${RUNNER_TEMP}/gh-aw/actions/create_gh_aw_tmp_dir.sh" - name: Configure gh CLI for GitHub Enterprise @@ -1817,7 +1822,7 @@ jobs: - activation - agent if: always() && needs.agent.result != 'skipped' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read timeout-minutes: 10 @@ -2253,7 +2258,7 @@ jobs: - agent - detection if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'workflow_rerun') - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: actions: read contents: read diff --git a/.github/workflows/queue-triage.md b/.github/workflows/queue-triage.md index 2ac171b..1a9230b 100644 --- a/.github/workflows/queue-triage.md +++ b/.github/workflows/queue-triage.md @@ -96,6 +96,8 @@ permissions: issues: read pull-requests: read +runs-on: ubuntu-26.04 + tools: # The agent runs in a sandboxed container. Keep the write-capable Actions # token isolated in the custom safe-output job rather than restricting the @@ -119,6 +121,9 @@ tools: trusted-users: ["cgwaltersbot[bot]"] safe-outputs: + # The detection job defaults to ubuntu-latest rather than following runs-on. + threat-detection: + runs-on: ubuntu-26.04 github-app: client-id: ${{ vars.GH_AW_APP_CLIENT_ID }} private-key: ${{ secrets.GH_AW_APP_PRIVATE_KEY }} diff --git a/.github/workflows/review.lock.yml b/.github/workflows/review.lock.yml index b9d130b..e44d24b 100644 --- a/.github/workflows/review.lock.yml +++ b/.github/workflows/review.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"c664fc238c62db8cbe43f0537398df2a7414f50aa558d39b60d42a0a03c4830f","body_hash":"7653b9c1f85484a23b8e6041d62c203cd4b83a3f25da040e1619f620d1a952af","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"f227d6bc13e9b12c01233e2a70d01842416d8b7957db5e2a701d007f0ec28c43","body_hash":"7653b9c1f85484a23b8e6041d62c203cd4b83a3f25da040e1619f620d1a952af","compiler_version":"v0.90.1","strict":true,"agent_id":"claude","agent_model":"claude-opus-5-5","engine_versions":{"claude":"2.1.285"},"agent_image_runner":"ubuntu-26.04"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_APP_PRIVATE_KEY","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/create-github-app-token","sha":"bcd2ba49218906704ab6c1aa796996da409d3eb1","version":"v3.2.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"7c1d4b7ab319216ef4a931cc3dcb0d7245144ff1","version":"v0.90.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27","digest":"sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.28.27@sha256:8d14865f96d57d9b4f22b30b3e148d2d926384f0aa543a139f15593e450f0e90"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27","digest":"sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.28.27@sha256:b767b95ad787fae126e0224e547e31daa22950aaa4f03c34e1224f3ce80f314e"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27","digest":"sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.28.27@sha256:c89d35cbc15c1c8614cc01da321a26a0685a71b51858965ce6fdd78252df64a9"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.27","digest":"sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.27@sha256:c9474061446b0c6f9958f3ddce83561217f1fa7f82d6058b2cbf1242bac472d0"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e","pinned_image":"ghcr.io/github/gh-aw-node@sha256:bac2192f6374d6262116399b34fc5e143d576f82719e90a18261cae7480f4d4e"},{"image":"ghcr.io/github/github-mcp-server:v1.12.2","digest":"sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6","pinned_image":"ghcr.io/github/github-mcp-server:v1.12.2@sha256:508a0857ec762b1ab1cece29193345b501fab1dd9d1228a7b617062954cecac6"}],"has_pull_request":true,"mcp_servers":[{"name":"github","tools":["get_commit","get_file_contents","get_latest_release","get_me","get_pull_request","get_pull_request_comments","get_pull_request_diff","get_pull_request_files","get_pull_request_review_comments","get_pull_request_reviews","get_pull_request_status","get_release_by_tag","get_tag","issue_read","list_branches","list_commits","list_issue_types","list_issues","list_pull_requests","list_releases","list_starred_repositories","list_tags","pull_request_read","search_code","search_issues","search_pull_requests","search_repositories"]},{"name":"safeoutputs","tools":["add_labels","missing_data","missing_tool","noop","remove_labels","submit_pull_request_review"]}]} # This file was automatically generated by gh-aw (v0.90.1). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # @@ -425,7 +425,7 @@ jobs: add_working_label: needs: pre_activation if: needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: @@ -456,7 +456,7 @@ jobs: agent: needs: activation if: needs.activation.outputs.daily_ai_credits_exceeded != 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read issues: read @@ -541,6 +541,11 @@ jobs: evidence_tmp="/tmp/gh-aw/agent_execution.json.tmp" printf '{"version":1,"component":"agent","run_id":%s,"run_attempt":%s,"state":"not_started"}\n' "$GITHUB_RUN_ID" "$GITHUB_RUN_ATTEMPT" > "$evidence_tmp" mv "$evidence_tmp" "/tmp/gh-aw/agent_execution.json" + - name: Setup Node.js + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: '24' + package-manager-cache: false - name: Create gh-aw temp directory run: bash "${RUNNER_TEMP}/gh-aw/actions/create_gh_aw_tmp_dir.sh" - name: Configure gh CLI for GitHub Enterprise @@ -1592,7 +1597,7 @@ jobs: - activation - agent if: always() && needs.agent.result != 'skipped' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read timeout-minutes: 10 @@ -1906,7 +1911,7 @@ jobs: - pre_activation - safe_outputs if: always() && needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: diff --git a/.github/workflows/review.md b/.github/workflows/review.md index b3ac5f6..a8ae185 100644 --- a/.github/workflows/review.md +++ b/.github/workflows/review.md @@ -16,6 +16,7 @@ permissions: issues: read pull-requests: read +runs-on: ubuntu-26.04 imports: - shared/defaults.md tools: @@ -28,6 +29,9 @@ tools: trusted-users: ["${{ vars.GH_AW_APP_BOT_SLUG }}"] safe-outputs: + # The detection job defaults to ubuntu-latest rather than following runs-on. + threat-detection: + runs-on: ubuntu-26.04 github-app: client-id: ${{ vars.GH_AW_APP_CLIENT_ID }} private-key: ${{ secrets.GH_AW_APP_PRIVATE_KEY }} @@ -48,7 +52,7 @@ jobs: add_working_label: needs: pre_activation if: needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: @@ -79,7 +83,7 @@ jobs: # never started from clearing an in-progress signal it never set. See # fix.md's equivalent job for the live incident this defends against. if: always() && needs.pre_activation.outputs.activated == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: pull-requests: write steps: diff --git a/.github/workflows/shared/workflow-rerun.md b/.github/workflows/shared/workflow-rerun.md index bb3ff91..1d1384c 100644 --- a/.github/workflows/shared/workflow-rerun.md +++ b/.github/workflows/shared/workflow-rerun.md @@ -18,7 +18,7 @@ safe-outputs: transient infrastructure failure. Choose failed to rerun only failed jobs, or all to rerun every job. The target run is derived from this workflow's trigger and cannot be selected by the agent. - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: actions: read contents: read diff --git a/.github/workflows/shared/workflow-tools.md b/.github/workflows/shared/workflow-tools.md index 129cd7e..c261c7e 100644 --- a/.github/workflows/shared/workflow-tools.md +++ b/.github/workflows/shared/workflow-tools.md @@ -1,5 +1,5 @@ --- -description: just and the gh-aw CLI for recompiling lock files, installed before the agent starts +description: just (via bootc-ubuntu-setup) and the gh-aw CLI for recompiling lock files, installed before the agent starts # Tools the drafter and fix agents need to recompile lock files # (`just setup && just compile`). They're installed on the runner before the # agent starts because the agent can't install them from inside the AWF @@ -15,10 +15,10 @@ runtimes: gh-aw: {} # Custom steps run outside the sandbox, after checkout; see # https://github.github.com/gh-aw/reference/steps-jobs/ +# bootc-ubuntu-setup is the org's standard host setup; it installs just +# (among other things) and fails on runners other than Ubuntu 24.04/26.04, +# so importing workflows run on ubuntu-26.04. steps: - - name: Install just - run: | - set -euo pipefail - sudo apt-get update -q - sudo apt-get install -y -q just + - name: Bootc Ubuntu setup + uses: bootc-dev/actions/bootc-ubuntu-setup@main ---